资源描述:
《单片机io和外部中断实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、单片机I/O及外部中断实验一、实验目的1.学习P1、P3口作为基本I/O口的使用方法,掌握对发光二极管和继电器的程序控制方法;2.学习在单片机系统中扩展简单I/O接口的方法,学习模拟交通灯控制的方法;3.掌握外部中断技术的基本使用方法和中断处理程序的编程方法。二.实验仪器:1.仿真教学实验机(5196ET)一台2.直流稳压电源(DF1731SB3A)一台3.PC机一台三、实验内容1、P1口做输出口实验(1)实验要求:P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。(2)电路及连线如下:(3)实验说明1.延时子程
2、序的延时计算问题对于程序DELAY:MOVR0,#00HDELAY1:MOVR1,#0B3HDJNZR1,$DJNZR0,DELAY1查指令表可知MOV,DJNZ指令均需用两个机器周期,而一个机器周期时间长度为12/11.0592MHz,所以该段程序执行时间为:((0B3+1)×256+1)×2×12÷11059200=100.002mS(4)实验框图(见TP1A.ASM主程序框图):(5)P1.0~P1.7接DL1.~DL8,运行程序TP1A,观察现象。TP1A程序:ORG0000HLJMPSTARTORG0040HSTART
3、:MOVSP,#60HMOVA,#01HROTATE:MOVP1,A;点亮一个LEDRLA;循环右移LCALLDELAY;延时NOPSJMPROTATEDELAY:;延时子程序(1秒)MOVR0,#0AHDELAY1:MOVR1,#00HDELAY2:MOVR2,#0B2HDJNZR2,$DJNZR1,DELAY2DJNZR0,DELAY1RETEND(6)修改程序TP1A,使指示灯左循环。*(7)修改程序TP1A,使指示灯两两右循环。*(8)修改程序TP1A,使指示灯从两边向中间循环。*(9)修改程序TP1A,使指示灯右循环间
4、隔时间为0.1秒。1、P1口做输入口实验(1)实验要求:P1口做输入口,接八个纽子开关,以实验机上74LS273做输出口,编写程序读取开关状态,将此状态在发光二极管上显示出来。(2)电路及连线如下:(3)实验说明:P1口是准双向口。它作为输出口时与一般的双向口使用方法相同。由准双向口结构可知当P1口作为输入口时,必须先对它置高电平使内部MOS管截止。因为内部上拉电阻阻值是20K~40K,故不会对外部输入产生影响。若不对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。(4)实验框图(见TP1B.ASM主程序框图):(
5、5)P1.0~P1.7接K1~K8,PO0~PO7接DL1~DL8,273CS/接8300H,运行程序TP1B,观察现象。TP1B程序:ORG0000HLJMPSTARTORG0040HSTART:MOVDPTR,#08300H;并行输出口地址READ:MOVP1,#0FFH;因P1是准双向口,所以把P1口作为输入口时,应先置高电平.MOVA,P1;读开关状态MOVX@DPTR,A;把读入的数据输出AJMPREADEND3.交通灯控制(1)实验要求:编写程序模拟一个时序控制装置,具体为以74LS273作为输出口,控制4个双色LE
6、D灯(可发红,绿,黄光),模拟交通灯管理。(2)实验电路及连线(3)实验说明因为本实验是交通灯控制实验,所以要先了解实际交通灯的变化规律。假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯。然后转状态1南北绿灯通车,东西红灯。过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。再转状态3,东西绿灯通车,南北红灯。过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。最后循环至状态1。双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。当红色正端加高电平,绿色正端加低
7、电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。(4)实验框图TRLED1.ASM主程序框图(5)PO0~PO3接DG1~DG4,PO4~PO7接DR1~DR4,D16的/CS接8300H。运行程序TRLED1,观察现象。ORG0000HLJMPSTARTORG0040HSTART:MOVSP,#60HLCALLSTATUS0;初始状态(都是红灯)CIRCLE:LCALLSTATUS1;南北绿灯,东西红灯LCALLSTATUS2;南北绿灯闪转黄灯,东西红灯LCALLSTATUS3;南北红灯
8、,东西绿灯LCALLSTATUS4;南北红灯,东西绿灯闪转黄灯LJMPCIRCLESTATUS0:;南北红灯,东西红灯MOVDPTR,#8300HMOVA,#0FHMOVX@DPTR,AMOVR2,#10;延时1秒LCALLDELAYRETSTATUS1:;南北