文档详情

单片机原理与接口技术实验教程汇总.doc

发布:2018-05-09约1.12万字共26页下载文档
文本预览下载声明
单片机原理及接口技术 (实验教程) 动力装置电控所 编 哈尔滨工程大学 前言 单片机是一款功能强大的实用工具,其本身的性质就决定了学习单片机最为有效的途径—实践。而实践的缺乏同时也是造成大多数人学习单片机比较困难的主要原因。本实验课程设置的目的旨在部分解决上述问题,为同学们提供相关实验设备,通过实践的方式解决理论学习中存在的疑惑,以期达到整个课程设置的目的:帮助同学们完成单片机入门知识的学习。 实验预习及实验步骤请参考第一章实验手册 实验课程分数分配请参考第二章考核方式 相关软件以及驱动安装请参考第三章实验箱使用说明 第一章 实验手册 实验一 单片机通用输入输出端口应用实验 (一)实验目的 1、熟悉实验箱的组成与使用。 2、掌握程序的下载与调试的基本流程。 3、了解单片机通用端口工作的基本原理。 (二)实验器材 主机 试验箱组件 接插线 (三)实验说明 本实验旨在通过使用GPIO(通用输入输出端口)检测拨码开关状态和点亮LED小灯的形式使学生了解单片机工作的基本原理。 (四)实验原理 1、LED原理 如下图所示,8个LED(D1—D8)一端接VCC5,另一端接三极管(RQ1—RQ8)的集电结。三极管发射结接地,基区经电阻(RD1—RD8)接插孔D-JK。16个插孔每两个一组,分别对应8个LED,同组的两个插孔等价。由三极管的工作原理可知。将插孔,即三极管的基区电压接低。使得三极管集电节反相偏置,LED正向导通后点亮。 图1-1 LED原理图 2、拨码开关原理 如图所示四个拨码开关(K1—K4),“1”脚接地,“3”脚悬空,“2”脚一方面经1K电阻与VCC-Input连接,另一方面与插孔K-JK相连。通过拨动拨码开关改变插孔K-JK的输出电平。当“2”脚与“1”脚连接时,插孔K-JK被拉低。当“2”脚与“3”脚连接时,插孔K-JK被置高。 图1-2 拨码开关原理图 (五)实验步骤 1、安装CodeWarrior5.0(上课前务必安装好)。 2、由实验指导老师介绍实验原理,注意事项。 3、连接下载器与主机,参考本教程第三章第二节的步骤3、4安装下载器的相关驱动。 5、将子版上PB端口的8个插针分别与8个调试小灯(D-JK)相连,将拨码开关K4与子板上PA的第0端口相连。 图1-3 实物连线图 5、连接烧写器与目标板。 7、经指导老师检测无误后上电。 8、在CodeWarrior开发环境中打开实验资料/程序/CodeWarrior5.0编写/Project01GPIO,并将编译无误的程序烧写到目标板中。 9、点击全速运行按钮后拨动拨码开关,观察LED灯亮灭变化。 12、修改代码改变LED灯的点亮逻辑,诸如左边四个与右边四个交替点亮,或是8个灯交叉点亮。 10、关掉电源,从子板上拔掉下载器。 11、重新上电,拨动拨码开关,再次观察实验现象。 (六)程序流程图 图1-5 程序流程图 (七)源程序代码 void main(void) { /* put your own code here */ byte k=0, temp=0; int i=0, j=0; //变量声明 //配置端口方向寄存器 DDRB = 0xFF; //PortB全为输出 DDRA = 0xFE; //PortA的第0端口为输入 EnableInterrupts; for(;;) { if((PORTA 0x01) 0)//如果PortA的第0端口为高 { for(i=0; i1000; i++) for(j=0; j1000; j++);//软件延时 PORTB = ~PORTB; //将PortB端口数据寄存器值按位取反 } else//如果PortA的第0端口为低 { for(k=0; k8;k++) { temp = 0x01 k;//逻辑左移k位 PORTB = temp; //赋值PortB端口数据寄存器 for(i=0; i1000; i++) for(j=0; j500; j++);//软件延时 } } } /* wait forever */ /* please make sure that you never leave this function */ } 实验二 输入捕捉和PWM输出模块编程实验 (一)实验目的 1、了解TIM(ECT)与PWM模块的基本工
显示全部
相似文档