单片机实验指导书_第1页
单片机实验指导书_第2页
单片机实验指导书_第3页
单片机实验指导书_第4页
单片机实验指导书_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机原理及应用实 验 指 导 书周国运 编计算机系与信息工程学院目 录实验1 流水灯实验20实验2 外部中断实验30实验3 时钟实验36实验4 串行通信实验39 实验一:9.30 周5 3/4节实验二:10.14实验三:10.28实验四:11.11 实验1 流水灯实验1、实验目的(1)掌握单片机并行口P0P3的特点及应用;(2)学习实验板的使用方法,学习发光二极管的特点及应用;(3)学习Proteus、Keil C软件的使用方法。2、实验条件PC机,单片机程序集成开发软件Keil C,单片机及电路模拟运行软件Proteus,NG51单片机实验板。3、实验内容图4-1 流水灯模拟实验电路(1)

2、用软件模拟实验:绘制实验电路,编写程序,从并行口P0P3输出数据,控制8个发光二极管轮流点亮,似流水,也叫跑马灯。(2)用实验板实验:熟悉实验部分的电路结构及原理,编写程序,把数据送给显示数组元素,控制8个发光二极管轮流点亮。4、用Proteus模拟实验(1)绘制电路图启动Proteus,参考图4-1电路图绘制实验电路。图中是用P2口控制8个发光二极管,也可以用P0口、P1口或P3口控制,图中限流电阻为200(大于200时亮度低甚至不亮),实际可用5001000。需要注意的是,各个发光二极管的阴极与P2口连接,P2口各位输出0时发光二极管点亮。单片机、电阻、发光二极管在器件库中的名字分别为:A

3、T89C51、RES、LED-RED(红)、LED-BLUE(蓝)、LED-GREEN(绿)、LED-YELLOW(黄)。(2)编写程序启动Keil C,参照图4-2的流程图编写汇编语言程序或C语言程序(注意每个实验建立相应的文件夹,将proteus电路文件和Keil C文件保存到同一个文件夹下),编译链接,产生出可执行文件。图4-3 流水灯主程序流程图dddis_buf6dd循环左移或右移1位流水灯主程序0x01(或0x03)dd调用延时1s子程序图4-2 模拟流水灯主程序流程图AP2(用MOV)A循环左移或右移1位流水灯主程序0FEH(或0FCH)A调用延时1s子程序延时1s子程序可以参考

4、本指导书后面的延时子程序。(3)实验方法 回到Proteus下对单片机装载应用程序,然后启动运行进行实验; 修改延时子程序,缩短延时时间,使流水灯更好看; 修改累加器A的初值,使流水灯更好看; 修改对累加器A的移动方向,使显示流动的方向相反。观察并做记录。5、用实验板实验(1)电路实验板上8个发光二极管与单片机已经连接好了。8个发光二极管L0L7的阳极,通过74LS573(U1)与单片机的P0口相连,8个发光二极管的阴极通过74LS573(U2)的Q6与单片机的P0口相连,当Q6输出0时(74LS573(U2)的Q0Q5控制6位数码管),使8个发光二极管中阳极为高电平的点亮。(2)编写程序启动

5、Keil C,参照图4-3的流程图编写C语言程序(注意每个实验建立相应的文件夹),编译链接,产生出可执行文件。dd为实验者需要定义的无符号字符型变量,dis_buf 为“实验板基本函数(主要包含显示函数、键盘函数等)”定义的显示数组,dis_buf0dis_buf5为6位数码管显示的数据,dis_buf6是8个发光二极管显示的数据,实验者只需要把显示的数据写到相应的dis_buf中即可,由实验板基本函数控制显示。注意:循环左移或右移函数可参考教材的“附录C.6 内部函数(P233)”。(3)下载程序按照第三章的方法,将自己的应用程序可执行文件下载到实验板上的单片机中。(4)实验方法 修改延时子

6、程序,缩短延时时间,使流水灯更好看; 修改累加器A的初值,使流水灯更好看; 修改对累加器A的移动方向,使显示流动的方向相反。观察并做记录。6、思考题(1)如果用16个或24个发光二极管显示流水灯,怎样绘制电路,怎样编写程序?试用模拟的方法实现。(2)对于使用单片机实验板,怎样实现数码管各位(包括8个发光二极管)之间数据的流动显示。实验2 外部中断实验1、实验目的(1)掌握单片机外中断的特点及应用;(2)掌握单片机中断优先级的特点及应用;(3)掌握C51中断服务程序的编程方法,理解程序的执行过程。2、实验内容把单片机的外中断输入引脚与开关相连,编写监控程序,当单片机的外中断输入引脚为低时产生中断

7、,单片机响应中断,使对应的发光二极管点亮,演示中断的发生。、嵌套和结束。3、实验条件PC机,单片机程序集成开发软件Keil C,单片机及电路模拟运行软件Proteus,NG51单片机实验板。4、用Proteus模拟实验(1)绘制电路图图4-9 模拟外中断电路图参考图4-9,在Proteus下绘制模拟外中断电路。图中是用P0.0和P0.7控制2个发光二极管,分别指示外中断0和外中断1在执行中断程序。图中限流电阻为200(大于200时亮度低甚至不亮),实际可用5001000。需要注意的是,由于两个发光二极管的阴极与P0口连接,P0口的两位输出0时发光二极管点亮。单片机、电阻、发光二极管、按钮在器件

8、库中的名字分别为:AT89C51、RES、LED-RED(红)、button。(2)编写程序需要分别编写主函数和两个外中断服务函数。主函数:置两个外中断均为下降沿方式触发(对TCON寄存器);设置两个外中断优先级均为低级(对IP寄存器);开两个外中断和中断总控位(对IE寄存器);最后使程序一直处于等待中断状态。中断服务函数:参考图4-10和图4-11,编写两个外中断服务函数。对程序进行编译链接,产生“hex”文件。(3)实验方法回到Proteus下对单片机装载应用程序,然后启动运行进行实验。根据下面不同的观察内容,先修改主函数中两个外中断的优先级、编译下载程序,然后全速运行,用鼠标点击按钮,观

9、察程序运行情况。操作与观察如下。1)观察和中断的独立中断 点击按钮S0,观察L0是否亮,若亮则发生了中断,并且正在处理中断,延时510秒后L0会熄灭,熄灭则表明中断结束。 点击按钮S1,观察L1是否亮,若亮则发生了中断,并且正在处理中断,延时510秒后L1会熄灭,熄灭则表明中断结束。2)观察观察相同优先级下和的优先级次序 先点击S0、再点击S1,观察L0、L1亮的现象,分析中断的发生情况。 先点击S1、再点击S0,观察L0、L1亮的现象,分析中断的发生情况。 改变连线,把P3.2、P3.3引脚相连接;点击S0或S1,则和应该同时中断,观察L0、L1亮的现象,分析中断的发生情况。3)观察中断优先

10、级和中断嵌套图4-11 外中断1程序流程图延时510秒等待1P0.7(L1灭)中断程序0P0.7(L1亮)中断返回延时510秒等待1P0.0(L0灭)flagP0.7(恢复L1状态)中断程序P0.7flag(保存L1状态)1P0.7,0P0.0(L1灭L0亮)中断返回图4-10 外中断0程序流程图去掉P3.2、P3.3引脚之间的连接线,恢复P3.2引脚与S0相连,P3.3引脚与S1相连。修改主函数中的中断优先级控制寄存器IP,设置(或)为高优先级、(或)设为低优先级,编译下载程序,然后全速运行。 先点击S0、再点击S1,观察中断现象,分析中断嵌套情况。 先点击S1、再点击S0,观察中断现象,分

11、析中断嵌套情况。 改变连线,把P3.2、P3.3引脚相连接;点击S0或S1,则和应该同时中断,观察中断现象,分析中断嵌套情况。5、用实验板实验(1)连接电路在“NG51单片机实验板”上,和中断信号输入引脚P3.2、P3.3,已经与按钮S0、S1连接好,用到的两个发光二极管L0、L7也已经连接好(参考实验1)。(2)编写程序分别编写主函数和两个外中断服务函数。主函数:置两个外中断均为下降沿方式触发(对TCON寄存器);设置两个外中断优先级均为低级(对IP寄存器);开两个外中断和中断总控位(对IE寄存器);最后使程序一直处于等待中断状态。中断服务函数:参考图4-10和图4-11,编写两个外中断服务

12、函数。对程序进行编译链接,产生“hex”文件。(3)下载程序参考第三章,将编译链接好的“hex”文件下载到实验板的单片机中。(4)实验方法对实验板进行操作,按一下复位键,在一切正常的情况下,复位后会自动运行下载的应用程序,操作与观察如下。1)观察和中断的独立中断 点击按钮S0(在左边),观察L7(在左边)是否亮,若亮则发生了中断,并且正在处理中断,延时510秒后L7会熄灭,熄灭则表明中断结束。 点击按钮S1(在右边),观察L0(在右边)是否亮,若亮则发生了中断,并且正在处理中断,延时510秒后L0会熄灭,熄灭则表明中断结束。2)观察观察相同优先级下和的优先级次序 先点击S0、再点击S1,观察L

13、7、L0亮的现象,分析中断的发生情况。 先点击S1、再点击S0,观察L0、L7亮的现象,分析中断的发生情况。 使用短路连接块,把P3.2、P3.3引脚相连接;点击S0或S1,则和应该同时中断,观察L7、L0亮的现象,分析中断的发生情况。3)观察中断优先级和中断嵌套去掉P3.2、P3.3引脚之间的连接块,恢复P3.2引脚与S0相连,P3.3引脚与S1相连。修改主函数中的中断优先级控制寄存器IP,设置(或)为高优先级、(或)设为低优先级,编译下载程序,然后全速运行。 先点击S0、再点击S1,观察中断现象,分析中断嵌套情况。 先点击S1、再点击S0,观察中断现象,分析中断嵌套情况。使用短路连接块,把

14、P3.2、P3.3引脚相连接;点击S0或S1,则和应该同时中断,观察中断现象,分析中断嵌套情况。 不改变P3.2、P3.3引脚相连接;修改主函数中的中断优先级控制寄存器IP,使、的优先级交换;点击S0或S1,则和应该同时中断,观察中断现象,分析中断嵌套情况。6、实验报告要求(1)记述实验过程及方法,记述观察到的现象。(2)分析观察到的现象,总结其规律。7、思考题如果两个外中断均采用低电平触发,欲观察中断优先级和中断嵌套,对应用程序做怎样的修改?实验3 时钟实验1、实验目的(1)学习并掌握单片机定时器/计数器的工作原理和使用方法;(2)掌握对定时器的编程方法。2、实验内容设置定时器/计数器T0为

15、定时器方式,从秒开始向上计时,在数码管上显示时间的时、分、秒。3、实验条件PC机,单片机集成开发软件Keil C,单片机仿真软件proteus;NG51单片机实验板。图4-18 模拟时钟电路4、用Proteus模拟实验(1)电路图写TMOD(T0模式1定时)时钟主程序启动T0运行等待中断(while(1);)TL0、TH0赋初值开T0中断,开总中断图4-19 时钟主程序流程图参考图4-18在Proteus下绘制电路,图中6位数码管的各段接单片机的P0口,并且使用上拉排电阻接5v电源,各位接单片机的P2口。单片机、排电阻、6位数码管在器件库中的名字分别为:AT89C52、RESPACK-7(或-

16、8)、7SEG-MPX6-CC(红色6位共阴,7SEG-MPX6-CA为红色6位共阳)。(2)编程方法需要编写主函数和定时器中断函数;包含“regx52.h”文件;需要定义一些全局变量,可以参考3.3.1。主程序参考图4-20流程图,也可以参考3.3.5。计算TL0、TH0的初值时,以晶振频率11.0592MHz、定时时间2.5ms计(单片机的振荡频率可以设置)。定时器T0中断服务程序参考图4-20流程图,图中dita为每秒中断的次数(如定时时间为2.5毫秒,中断400次为1秒),dis_buf为6位数码管显示的数据的数组。数码管扫描显示程序参考3.3.2,但段码和位码直接送给P0和P2,而不

17、是送给dis_seg和dis_bit。TL0、TH0赋初值定时器0中断服务程序dida赋初值,秒+1秒dita-1dita0秒,分钟+1分钟NY结 束秒>59?YN0分钟,小时+1小时分钟>59?YN1小时小时>12?YN时、分、秒分离十位、个位存于dis_buf0dis_buf5dida=0?图4-20 定时器中断程序流程图使用Keil C软件编写程序,并对程序进行编译链接,产生“hex”文件。在Proteus下对单片机装载应用程序,然后启动运行,检验程序是否正确。5、用实验板实验(1)电路使用NG51实验板不需要额外连线。(2)编程方法需要编写主函数和定时器中断函数;包含

18、“regx52.h”文件;需要定义一些全局变量,可以参考3.3.1。主程序参考图4-20流程图,也可以参考3.3.5。计算TL0、TH0的初值时,实验板的晶振频率11.0592MHz,定时时间按2.5ms计。数码管扫描显示程序参考3.3.2。定时器T0中断服务程序参考图4-19流程图,图中dita为每秒中断的次数(如定时时间为2.5毫秒,中断400次为1秒),dis_buf为6位数码管显示的数据的数组。使用Keil C软件编写程序,并对程序进行编译链接,产生“hex”文件。然后使用STC单片机程序下载软件把“hex”文件下载到单片机,然后启动运行,检验程序是否正确。6、实验操作修改时间初值的时

19、、分、秒,观察时钟的显示变化情况。实验4 串行通信实验1、实验目的(1)学习并掌握单片机串行口的工作原理和使用方法;(2)学习并掌握串行口的中断编程方法(3)学习并掌握串行口使用库函数的编程方法。2、实验内容用串口中断方式自发自收:循环从键盘读取数据,然后把数据送给dis_buf0 在数码管上显示,并且把数据直接写入单片机的串口缓冲寄存器SBUF,让串口自发自收;串口接收到数据后产生中断,在串口中断服务程序中读取数据,并把数据送给dis_buf5在数码管上显示。3、实验条件PC机,单片机程序集成开发软件Keil C,NG51单片机实验板。图4-21 串行通信主函数流程图写SCON (方式1收发)主程序启动T1,开串口及总中断写TL1、TH1(晶振11.0592MHz,波特率9600b/s)写TMOD(T

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论