单片机原理与接口技术实验指导书

  • 格式:doc
  • 大小:12.51 MB
  • 文档页数:50

机械电子工程专业《单片机原理与接口技术》课程实验指导书撰写人:审定人:目录第一部分绪论 (1)第二部分基本实验指导 (2)实验一 (2)实验二 (9)实验三 (11)实验四 (14)实验五 (17)实验六 (19)实验七 (21)实验八 (23)第三部分扩展实验实验九 (26)实验十 (30)实验十一 (35)第一部分绪论本指导书是根据《单片机原理与接口技术》课程实验教学大纲编写的,适用于机械电子工程专业。

一、本课程实验的作用与任务本课程的实践性较强,安排适当的上机可以帮助学生理解教学内容,锻炼动手能力和综合设计能力。

二、本课程实验的基础知识熟悉Keil软件的使用,学习过单片机原理与接口技术及有一定的电路常识。

三、本课程实验教学项目及其教学要求第二部分基本实验指导实验一单片机C51程序设计集成开发环境应用一、实验目的1. 了解集成开发环境Keil Vision3文件管理的特点。

2. 学会使用开发环境新建文件、编辑、编译程序。

3. 掌握开发环境程序设计相关设置及其意义。

二、实验要求实现单片机P1连接的LED发光二极管实现流水灯功能。

三、实验原理1. 熟练操作开发环境。

2. 利用C51相关知识,编写简单程序,生成可执行文件。

3. 记录编译错误信息,总结错误原因,写出解决办法。

四、主要仪器及耗材计算机一台,Keil软件一套,STC-ISP V38A烧写软件一套,开发板一套。

五、实验内容与步骤一)实验内容:认识Keil Vision3;新建工程、文件;工程参数设置;程序编辑、编译及调试。

二)实验步骤:1.启动软件Keil Vision3,界面如下图:2.菜单操作Project>New Project,在出现的对话框中输入工程名称,设计保存路径,然后保存。

3.出现CPU选择对话框,选择所用的单片机,单击确定。

4.出现加入启动代码文件对话框,单击是。

下图为建立完工程后的界面:5.菜单操作Project>Options for target “Target 1”或者直接在左侧的Target 1文件夹图标上单击右键,选择Options for target “Target 1”,出现下图所示的Options for target “Target 1”对话框。

在Target标签下设置晶振频率、编译模式、ROM大小等,在Output标签下设置目标文件路径,是否产生可执行文件及是否产生其他信息。

6.点击File>New菜单或则点击新建图标,然后保存,设置保存路径,注意保存文件格式为:文件名.ASM。

7.在文件管理窗口中右键单击“Source Group 1”,选择“Add Files to Group ‘Source Group 1’”,选中刚刚新建的程序文件,点“Add”即可把文件加入到工程中。

8.文件管理窗口中双击任何文件名即可把该文件打开,在右边的工作区中可以编辑源程序。

9.程序编辑完成后单击图标编译,编译通过后的界面下图所示。

输出窗口中为编译信息,若有错误,系统提示错误类型及所在的行,根据此信息进行调试,直至程序编译正确通过。

六、实验注意事项仿真软件Keil可以运行汇编和C程序,注意加入文件的格式,特别注意后缀名是否符合要求。

七、思考题1.如何改变程序运行速度?2.为什么要选择芯片类型?不同类型对调试程序有何影响?实验二定时器/计数器程序设计实验一、实验目的1. 了解定时器/计数器在单片机开发中的重要作用。

2. 通过本次实验掌握单片机定时器/计数器的编程方法。

3.在应用中巩固学生编程相关知识,对单片机编程的程序结构有初步的了解,对单片机完成控制功能的过程有初步的了解二、实验要求用定时器定时方法实现流水灯功能,流水灯跳动频率为1秒。

三、实验原理单片机的计数器/定时器接收到一个脉冲,相应的寄存器加一(假设采用定时器0的方式0,用到寄存器是TH0,TL0),首先TL0+1,如果TL0溢出(即TL0>0FFH),那么TH0+1,TL0=0,如此循环下去,如果TH0>0FFH 且TL0>0FFH 则计数器/定时器溢出,TF0=1,如果开中断的话,向CPU发出中断申请信号。

如果THx=0,TLx=0 那么可以计数65536,如果计其他数值的数,改变THx,TLx的值即可,比如THx=0,TLx=100 就可以计数65436.如果计数脉冲是周期固定的标准脉冲,就成了定时器;假定单片机的晶振是12MHz,机器周期是1us,单片机把把机器周期1us的信号送到计数器/定时器端口(内部连接),就可以定时了。

如果THx=0,TLx=0 那么可以定时65536*T 机器周期=65536*1us=65.536ms,改名THx和TLx的值可以定时0~65.536ms。

计数器/定时器有三种方式,方式0、方式1和方式3,其中方式0是13位计数器/定时器,是MCS-51单片机为了兼容MCS-48单片机,这种方式计数/定时值计算复杂,可以用方式1代替,方式1是16位计数器/定时器,如果用作连续计数或定时,记得重新载入THx、TLx的值,方式2是8位计数器/定时器,可自动重载计数/定时值,可用作连续计数或定时的场合;方式3占用两个计数器/定时器,而且都只能用8位,这种方式较少使用,除非计数器或定时器不够用。

方式1的计数寄存器THx和TLx,共16位,可最大计数0~65536,如果需要计数Cx,则,THx,TLx的设置如下:THx=(65536-Cx)/256 TLx=(65536-Cx)mod 256.方式2的定时寄存器TLx,8位,可最大定时0~256*T机器周期,如果需要定时Tx(us),则,THx,TLx的设置如下:THx=(256-Tx/ T机器周期)TLx=256-Tx/ T机器周期,可以看出方式2可以循环计数,可以用在连续定时的场合,串行通信的波特率发生器一般有采用定时器1的方式2。

定时/计数值的计算方式1:定时值THx=(65536- T定时时间/T机器周期)/256TLx=(65536- T定时时间/T机器周期)mod 256计数值THx=(65536- X计数)/256TLx=(65536- X计数)mod 256方式2:定时值THx=(256- T定时时间/T机器周期)TLx=(256- T定时时间/T机器周期)计数值THx=(256- X计数)TLx=(256- X计数)。

四、主要仪器及耗材计算机一台,Keil软件一套,STC-ISP V38A烧写软件一套,开发板一套。

五、实验要求与参考程序实验要求:用定时器实现流水灯功能,即轮流点亮P0口连接的8张发光二极管,点亮灯的时间间隔为1秒。

2.实例代码:ORG 0000HLJMP MAINORG 0100HMAIN:GO:MOV R0,#08HMOV A,#111111110B LOOP: SETB CMOV P1,ARLC AACALL DELAYDJNZ R0,LOOPSJMP GODELAY:MOV TMOD,#01HMOV TH0,#(65536-50000)/256MOV TL0,#(65536-50000)%256SETB TR0MOV R1,#20L1: JNB TF0,$CLR TF0MOV TH0,#(65536-50000)/256MOV TL0,#(65536-50000)%256DJNZ R1,L1RET六、实验注意事项1.根据定时器的不同工作方式进行定时,注意计数值是否自动重载。

2.验证是否定时满足要求。

七、思考题1.定时器不同方式实现定时有什么不同?2.影响定时精度有哪些因素?实验三数码管显示程序设计实验一、实验目的1. 掌握数码管静态显示与动态显示原理。

2. 通过本次实验掌握数码管显示电路的编程方法。

二、实验任务用数码管动态扫描原理显示学号后八位,要求从左向右显示。

三、实验原理数码管分共阳极和共阴极,发光颜色也分几种(单红,黄,蓝,绿,白,七彩等);数码管的封装分为单独一体的,两位一体的,三位一体,四位一体等;数码管的显示分:动态扫描和静态扫描。

数码管的显示的原理和发光二极管相同,数码管的8个发光二级连接在一起,连接方法中的共同部分如果是阳极那么这个数码管称为共阳极数码管,反之,称为共阴极数码管;其中共阳极或共阴极称为位码,其他八位称为段码。

上图的数码管就是共阴极数码管。

其中四位一体数码管,内部的四个数码管共用a~dp这8根数据线,为人们的使用提供了方便,因为里面有四个数码管,所以它有四个公共端,加上a~dp,共有12个引脚。

动态扫描原理:设定数码管显示1 2 3 4 5 6 7 8显示流程:单片机送1的段码给数码管,并选中位码1,延时2ms;单片机送2的段码给数码管,并选中位码2,...... 单片机送8段码给数码管,并选中位码8;单片机送1的段码给数码管,并选中位码1,如此循环,由于眼睛对2ms的短暂闪烁感觉不出来,所以看到的数码管显示和要求的显示一致的;但如果延时时间过大,就会发现显示数字闪动,这种扫描方法就是根据人眼的视觉停顿,使人眼分辨不出闪动频率很高的数码管数字。

四、主要仪器及耗材计算机一台,Keil软件一套,STC-ISP V38A烧写软件一套,开发板一套。

五、实验内容与步骤1.新建工程,建立文件扩展名为ASM的文件;2.置工程选择project->Option for Target'Target1',把文件加入到工程中;3. 输入所编写的程序。

4.编译,无错误后,用STC单片机烧写软件烧写进单片机中,注意串口和单片机型号不要错,单片机冷启动后启动烧写。

六、实验参考程序动态扫描:GO: PUSH ACCMOVC A,@A+DPTRMOV P0,AMOV A,R0MOV P2,ARL AMOV R0,AACALL DELAYPOP ACCINC ADJNZ R1,GO延时程序:DELAY: MOV R5,#2DEL:MOV R7,#100DEL1: MOV R6,#225DEL2:DJNZ R6,DEL2DJNZ R7,DEL1DJNZ R5,DELRET数码管段码:TAB: 03H,9FH,25H,00H,99H,49H,41H,1FH,01H,09H七、实验注意事项1.选择合适的延时时间来消除动态显示的抖动。

2.显示时要正确对数码管译码。

八、思考题1.动态扫描的原理?2.动态扫描的优缺点?实验四独立式键盘程序设计实验一、实验目的1. 通过本次实验掌握独立式键盘的编程方法。

2.在应用中巩固学生去抖等键盘编程相关知识。

二、实验要求按下独立按键,分别在数码上显示相应1,2,3,4数字。

三、实验原理当系统需要少量的功能键时,一般采用独立式结构。