单片机IO及外部中断实验.doc_第1页
单片机IO及外部中断实验.doc_第2页
单片机IO及外部中断实验.doc_第3页
单片机IO及外部中断实验.doc_第4页
单片机IO及外部中断实验.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

单片机I/O及外部中断实验一、实验目的1学习P1、P3口作为基本I/O口的使用方法,掌握对发光二极管和继电器的程序控制方法;2学习在单片机系统中扩展简单I/O接口的方法,学习模拟交通灯控制的方法;3掌握外部中断技术的基本使用方法和中断处理程序的编程方法。二.实验仪器:1仿真教学实验机(5196ET) 一台2直流稳压电源(DF 1731 SB 3A) 一台3PC机 一台三、实验内容1、 P1口做输出口实验(1)实验要求:P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。(2)电路及连线如下:(3)实验说明1.延时子程序的延时计算问题对于程序 DELAY: MOV R0,#00H DELAY1: MOV R1,#0B3H DJNZ R1,$ DJNZ R0,DELAY1查指令表可知 MOV,DJNZ 指令均需用两个机器周期,而一个机器周期时间长度为1211.0592MHz,所以该段程序执行时间为:(0B31)2561)21211059200100.002mS(4)实验框图(见TP1A.ASM主程序框图): (5)P1.0P1.7接DL1.DL8,运行程序TP1A,观察现象。 TP1A程序: ORG 0000H LJMP START ORG 0040H START: MOV SP,#60H MOV A,#01H ROTATE: MOV P1,A ;点亮一个LED RL A ;循环右移 LCALL DELAY ;延时 NOP SJMP ROTATE DELAY: ;延时子程序(1秒) MOV R0,#0AH DELAY1: MOV R1,#00H DELAY2: MOV R2,#0B2H DJNZ R2,$ DJNZ R1,DELAY2 DJNZ R0,DELAY1 RET END(6)修改程序TP1A,使指示灯左循环。* (7)修改程序TP1A,使指示灯两两右循环。* (8)修改程序TP1A,使指示灯从两边向中间循环。* (9)修改程序TP1A,使指示灯右循环间隔时间为0.1秒。2、 P1口做输入口实验(1) 实验要求:P1口做输入口,接八个纽子开关,以实验机上74LS273做输出口,编写程序读取开关状态,将此状态在发光二极管上显示出来。(2)电路及连线如下:(3)实验说明:P1口是准双向口。它作为输出口时与一般的双向口使用方法相同。由准双向口结构可知当P1口作为输入口时,必须先对它置高电平使内部MOS管截止。因为内部上拉电阻阻值是20K40K,故不会对外部输入产生影响。若不对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。(4)实验框图(见TP1B.ASM主程序框图):(5)P1.0P1.7接K1K8,PO0PO7接DL1DL8,273CS/接8300H,运行程序TP1B,观察现象。TP1B程序:ORG 0000H LJMP START ORG 0040H START: MOV DPTR,#08300H ;并行输出口地址 READ: MOV P1,#0FFH ; 因P1是准双向口,所以把P1口作为输入口时,应先置高电平. MOV A,P1 ;读开关状态 MOVX DPTR,A ;把读入的数据输出 AJMP READ END3. 交通灯控制(1)实验要求:编写程序模拟一个时序控制装置,具体为以74LS273作为输出口,控制4个双色LED灯(可发红,绿,黄光),模拟交通灯管理。(2)实验电路及连线(3)实验说明因为本实验是交通灯控制实验,所以要先了解实际交通灯的变化规律。假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯。然后转状态1南北绿灯通车,东西红灯。过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。再转状态3,东西绿灯通车,南北红灯。过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。最后循环至状态1。双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。(4)实验框图TRLED1.ASM主程序框图(5)PO0PO3接DG1DG4,PO4PO7接DR1DR4,D16的/CS接8300H。运行程序TRLED1,观察现象。 ORG 0000H LJMP START ORG 0040HSTART: MOV SP,#60H LCALL STATUS0 ;初始状态(都是红灯)CIRCLE: LCALL STATUS1 ;南北绿灯,东西红灯 LCALL STATUS2 ;南北绿灯闪转黄灯,东西红灯 LCALL STATUS3 ;南北红灯,东西绿灯 LCALL STATUS4 ;南北红灯,东西绿灯闪转黄灯 LJMP CIRCLESTATUS0: ;南北红灯,东西红灯 MOV DPTR,#8300H MOV A,#0FH MOVX DPTR,A MOV R2,#10 ;延时1秒 LCALL DELAY RETSTATUS1: ;南北绿灯,东西红灯 MOV DPTR,#08300H MOV A,#96H ;南北绿灯,东西红灯 MOVX DPTR,A MOV R2,#200 ;延时20秒 LCALL DELAY RETSTATUS2: ;南北绿灯闪转黄灯,东西红灯 MOV DPTR,#8300H MOV R3,#03H ;绿灯闪3次FLASH: MOV A,#9FH MOVX DPTR,A MOV R2,#03H LCALL DELAY MOV A,#96H MOVX DPTR,A MOV R2,#03H LCALL DELAY DJNZ R3,FLASH MOV A,#06H ;南北黄灯,东西红灯 MOVX DPTR,A MOV R2,#10 ;延时1秒 LCALL DELAY RETSTATUS3: ;南北红灯,东西绿灯 MOV DPTR,#8300H MOV A,#69H MOVX DPTR,A MOV R2,#200 ;延时20秒 LCALL DELAY RETSTATUS4: ;南北红灯,东西绿灯闪转黄灯 MOV DPTR,#8300H MOV R3,#03H ;绿灯闪3次FLASH1: MOV A,#6FH MOVX DPTR,A MOV R2,#03H LCALL DELAY MOV A,#69H MOVX DPTR,A MOV R2,#03H LCALL DELAY DJNZ R3,FLASH1 MOV A,#09H ;南北红灯,东西黄灯 MOVX DPTR,A MOV R2,#10 ;延时1秒 LCALL DELAYNOP RETDELAY: ;延时子程序 PUSH 2 PUSH 1 PUSH 0DELAY1: MOV 1,#00HDELAY2: MOV 0,#0B2H DJNZ 0,$ DJNZ 1,DELAY2 ;延时 100 mS DJNZ 2,DELAY1 POP 0 POP 1 POP 2 RET END*(6)编写程序,使东西南北四个灯均闪烁黄灯(闪烁时间为1秒)。4 外部中断实验(急救车与交通灯)(1) 实验要求:在交通灯实验内容的基础上增加允许急救车优先通过的要求。有急救车到达时,两向交通信号为全红,以便让急救车通过。假定急救车通过路口时间为10秒,急救车通过后,交通灯恢复中断前状态。本实验以按键为中断申请,表示有急救车通过。(2) 实验电路及连线(3)实验说明中断服务程序的关键是:1.保护进入中断时的状态,并在退出中断之前恢复进入时的状态。2.必须在中断程序中设定是否允许中断重入,即设置EX0位。本例中使用了INT0中断,一般中断程序进入时应保护PSW,ACC以及中断程序使用但非其专用的寄存器。本例的INT0程序保护了PSW,ACC,2等三个寄存器并且在退出前恢复了这三个寄存器。另外中断程序中涉及到关键数据的设置时应关中断,即设置时不允许重入。本例中没有涉及这种情况。实验开始时K8应在H(高电平)端,要产生中断时先拨向L(低电平)端再拨回H端。(4)实验框图INT0中断程序框图TRLED2.ASM主程序框图(5)PO0PO3接DG1DG4,PO4PO7接DR1DR4,D16的/CS接8300H,K8接P3.2。运行程序TRLED2,观察现象。 ORG 0000H LJMP START ORG 0003H ;INT 0 中断入口地址 LJMP INT0 ORG 0040HSTART: MOV SP,#60H SETB EX0 ;INT 0 中断有效 SETB IT0 SETB EA LCALL STATUS0 ;初始状态(都是红灯)CIRCLE: LCALL STATUS1 ;南北绿灯,东西红灯 LCALL STATUS2 ;南北绿灯闪转黄灯,东西红灯 LCALL STATUS3 ;南北红灯,东西绿灯 LCALL STATUS4 ;南北红灯,东西绿灯闪转黄灯 LJMP CIRCLEINT0: PUSH PSW ;保护现场 PUSH 2 PUSH ACC MOV DPTR,#8300H MOV A,#0FH ;南北,东西都亮红灯 MOVX DPTR,A MOV R2,#100 ;延时10秒 LCALL DELAY POP ACC ;恢复现场 MOVX DPTR,A POP 2 POP PSW RETISTATUS0: ;南北红灯,东西红灯 MOV DPTR,#8300H MOV A,#0FH MOVX DPTR,A MOV R2,#10 ;延时1秒 LCALL DELAY RETSTATUS1: ;南北绿灯,东西红灯 MOV DPTR,#8300H MOV A,#96H ;南北绿灯,东西红灯 MOVX DPTR,A MOV R2,#200 ;延时20秒 LCALL DELAY RETSTATUS2: ;南北绿灯闪转黄灯,东西红灯 MOV DPTR,#8300H MOV R3,#03H ;绿灯闪3次FLASH: MOV A,#9FH MOVX DPTR,A MOV R2,#03H LCALL DELAY MOV A,#96H MOVX DPTR,A MOV R2,#03H LCALL DELAY DJNZ R3,FLASH MOV A,#06H ;南北黄灯,东西红灯 MOVX DPTR,A MOV R2,#10 ;延时1秒 LCALL DELAY RETSTATUS3: ;南北红灯,东西绿灯 MOV DPTR,#8300H MOV A,#69H MOVX DPTR,A MOV R2,#200 ;延时20秒 LCALL DELAY RETSTATUS4: ;南北红灯,东西绿灯闪转黄灯 MOV DPTR,#8300H MOV R3,#03H ;绿灯闪3次FLASH1: MOV A,#6FH MOVX DPTR,A MOV R2,#03H LCALL DELAY MOV A,#69H MOVX DPTR,A MOV R2,#03H LCALL DELAY DJNZ R3,FLASH1 MOV A,#09H ;南北红灯,东西黄灯 MOVX DPTR,A MOV R2,#10 ;延时1秒 LCALL DELAYNOP RETDELAY: ;延时子程序 PUSH 2 PUSH 1 PUSH 0DELAY1: MOV 1,#00HDELAY2: MOV 0,#0B2H DJNZ 0,$ DJNZ 1,DELAY2 ;延时 100 mS DJNZ 2,DELAY1 POP 0 POP 1 POP 2 RET END*(6)修改程序TRLED2,使中断时,东西南北四个灯均为红色的同时,继电器发出滴答声。5 P3口输出控制继电器(选做)(1) 实验要求:利用P3.5输出高低,控制继电器的开合,实现对外部装置的控制。(2)实验电路及连线(3)实验框图(4)P3.5接JD,运行程序TP3R,观察现象。TP3R程序:ORG 0000H LJMP START ORG 0040H START: MOV SP,#60H JD: CPL P3.5 ;继电器状态(吸合/分开)切换 LCALL DELAY ;延时 NOP SJMP JD DELAY: ;延时子程序(1秒) MOV R0,#0AH DELAY1: MOV R1,#00H DELAY2: MOV R2,#0B2H DJNZ R2,$ DJNZ R1,DELAY2 DJNZ R0,DELAY1 RET END基于单片机的交通信号灯模拟控制系统设计 题目:基于单片机的交通信号灯模拟控制系统设计 设计内容及要求: 1、硬件设计 单片机主电路、交通灯接口电路、LED数码管显示电路,键盘控制电路。 2、软件设计 系统流程图、各功能程序 设计环境: Protel99SE 、WAVE仿真环境、H51/L仿真器、单片机多功能实验箱 实现目标: (1)正常情况下交叉路口的轮流通行(主道3个LED红、黄、绿控制直行,支道3个LED红、黄、绿,切换时间自行设定); (2)特殊情况控制通行方式控制,用按键开关K1控制主道通行,支道禁行,K2控制支道通行,主道禁行,特殊情况控制通行放行。 (3)有紧急情况时用按键开关K0控制两道均为红灯; (4)4位LED数码管能够显示双直行方向绿灯和红灯的等待时间。 这是我们课程设计题目,大家帮忙看看吧.最好能写出程序和流程图.谢谢拉.2008-7-13 01:15 最佳答案 ;2位LED数码管显示程序:P0口接数码管段,P2口接数码管位。 P3口接键盘,P1口接发光二极管 ORG 0000H LJMP MAIN ORG 0003H LJMP INT0P ORG 000BH LJMP T0INT ORG 0013H LJMP INT1P ORG 001BH LJMP CTC1 ORG 0100HMAIN: LCALL CSHIH ;初始化LOOP: LCALL TONGX ;通行路口 LCALL H_BCD2 ;计算(1位HEX转换为2位BCD码) LCALL YIMA ;译码 LCALL LED4W ;显示 CLR 00H JNB 00H,$ DJNZ R6,LOOP MOV R6,#100 JNB 10H,LOOP1 ;启动特殊功能K0 JB 10H,$LOOP1: JNB 11H,LOOP2 ;启动特殊功能K1 JB 11H,$ NOPLOOP2: JNB 12H,LOOP3 ;启动特殊功能K2 JB 12H,$ NOPLOOP3: DJNZ TIME,LOOP SETB 02H SJMP LOOPTONGX: JB 01H,DONGX JB 02H,HUANG1 MOV P1,#21H SJMP TX_OUTHUANG1: MOV P1,#22H MOV TIME,#1 DJNZ R5,TX_OUT MOV R5,200 CLR 02H CPL 01H MOV TIME,#15 SJMP TX_OUTDONGX: JB 02H,HUANG2 MOV P1,#0CH SJMP TX_OUTHUANG2: MOV P1,#14H MOV TIME,#1 DJNZ R5,TX_OUT MOV R5,200 CLR 02H CPL 01H MOV TIME,#15TX_OUT: RETLED4W: MOV A,XWEI MOV B,#3 MUL AB MOV DPTR,#LED4T JMP A+DPTRLED4T: LJMP LD4W1 LJMP LD4W2 LJMP LD4W3 LJMP LD4W4LD4W1: MOV LEDD,MLED1 MOV LEDW,#1 INC XWEI SJMP LED4WELD4W2: MOV LEDD,MLED2 MOV LEDW,#2 INC XWEI SJMP LED4WELD4W3: MOV LEDD,MLED3 MOV LEDW,#4 INC XWEI SJMP LED4WELD4W4: MOV LEDD,MLED4 MOV LEDW,#8 MOV XWEI,#0LED4WE: RETYIMA: MOV R0,#BLED1 ;四位LED MOV R1,#MLED1 MOV R7,#2 MOV DPTR,#YIMTABYIMA1: MOV A,R0 MOVC A,A+DPTR MOV R1,A INC R0 INC R1 DJNZ R7,YIMA1 RETYIMTAB: DB 3FH,06H,5BH,4FH,66H ;0,1,2,3,4 DB 6DH,7DH,07H,7FH,6FH ;5,6,7,8,9CSHIH: MOV TIME,#15 MOV XWEI,#0 MOV LEDD,#0 MOV LEDW,#0 MOV R6,#100 ;1秒延时 MOV R5,#200 ;2秒延时 MOV P1,#21H MOV 20H,#0 MOV 22H,#0 MOV TMOD,#61H ;T0方式1 MOV TTH0,#0D8H ;10ms MOV TTL0,#0F0H MOV TL0,TTL0 MOV TH0,TTH0 MOV TL1,#0FFH MOV TH1,#0FFH MOV IE,#8FH SETB TR0 SETB TR1 MOV BLED1,#0 MOV BLED2,#0 MOV MLED3,#0 MOV MLED4,#0 RETH_BCD2: MOV A,TIME MOV B,#10 DIV AB MOV BLED2,A MOV BLED1,B MOV MLED3,#0 MOV MLED4,#0 RETT0INT: MOV TL0,TTL0 MOV TH0,TTH0 SETB 00H RETIINT0P: CPL 10H SETB P1.2 CLR P1.1 CLR P1.0 SETB P1.5 CLR P1.4 CLR P1.3 RETIINT1P: CPL 11H CLR P1.2 CLR P1.1 SETB P1.0 SETB P1.5 CLR P1.4 CLR P1.3 RETICTC1: CPL 12H MOV P1,#0CH RETIBIAOZ DATA 20H ;标志:.0定时到。XWEI DATA 60H ;显示位,4位:03TTL0 DATA 61HTTH0 DATA 62HTIME DATA 66H ;倒计时时间BLED1 DATA 74H ;显示数据BCDBLED2 DATA 75HBLED3 DATA 76HBLED4 DATA 77HMLED1 DATA 78H ;显示数据译码MLED2 DATA 79HMLED3 DATA 7AHMLED4 DATA 7BHLEDD EQU P0 ;数码管段LEDW EQU P2 ;数码管位 END一. 实验要求在实验四内容的基础上增加允许急救车优先通过的要求。有急救车到达时,两向交通信号为全红,以便让急救车通过。假定急救车通过路口时间为10秒,急救车通过后,交通灯恢复中断前状态。本实验以按键为中断申请,表示有急救车通过。二.实验目的1.学习外部中断技术的基本使用方法。2.学习中断处理程序的编程方法。三.实验电路及连线PO0-PO3接DG1-DG4,PO4-P07接 DR1-DR4。CS273 接8300H。K8接P3.2。四.实验说明中断服务程序的关键是:1.保护进入中断时的状态,并在退出中断之前恢复进入时的状态。2.必须在中断程序中设定是否允许中断重入,即设置EX0位。本例中使用了INT0中断,一般中断程序进入时应保护PSW,ACC以及中断程序使用但非其专用的寄存器。本例的INT0程序保护了PSW,ACC,2等三个寄存器并且在退出前恢复了这三个寄存器。另外中断程序中涉及到关键数据的设置时应关中断,即设置时不允许重入。本例中没有涉及这种情况。实验开始时K8应在H(高电平)端,要产生中断时先拨向L(低电平)端再拨回H端。五.源程序ORG 0000HLJMP STARTORG 0003H ;INT 0 中断入口地址LJMP INT0ORG 0040HSTART:MOV SP,#60HSETB EX0 ;INT 0 中断有效SETB IT0SETB EALCALL STATUS0 ;初始状态(都是红灯)CIRCLE: LCALL STATUS1 ;南北绿灯,东西红灯LCALL STATUS2 ;南北绿灯闪转黄灯,东西红灯LCALL STATUS3 ;南北红灯,东西绿灯LCALL STATUS4 ;南北红灯,东西绿灯闪转黄灯LJMP CIRCLEINT0:PUSH PSW ;保护现场PUSH 2PUSH ACCMOV DPTR,#8300HMOV A,#0FH ;南北,东西都亮红灯MOVX DPTR,AMOV R2,#100 ;延时10秒LCALL DELAYPOP ACC ;恢复现场MOVX DPTR,APOP 2POP PSWRETISTATUS0: ;南北红灯,东西红灯MOV DPTR,#8300HMOV A,#0FHMOVX DPTR,AMOV R2,#10 ;延时1秒LCALL DELAYRETSTATUS1: ;南北绿灯,东西红灯MOV DPTR,#8300HMOV A,#5AH ;南北绿灯,东西红灯MOVX DPTR,AMOV R2,#50 ;延时5秒LCALL DELAYRETSTATUS2: ;南北绿灯闪转黄灯,东西红灯MOV DPTR,#8300HMOV R3,#03H ;绿灯闪3次FLASH: MOV A,#5FHMOVX DPTR,AMOV R2,#03HLCALL DELAYMOV A,#5AHMOVX DPTR,AMOV R2,#03HLCALL DELAYDJNZ R3,FLASHMOV A,#0AH ;南北黄灯,东西红灯MOVX DPTR,AMOV R2,#10 ;延时1秒LCALL DELAYRETSTATUS3: ;南北红灯,东西绿灯MOV DPTR,#8300HMOV A,#0A5HMOVX DPTR,AMOV R2,#50 ;延时5秒LCALL DELAYRETSTATUS4: ;南北红灯,东西绿灯闪转黄灯MOV DPTR,#8300HMOV R3,#03H ;绿灯闪3次FLASH1: MOV A,#0AFHMOVX DPTR,AMOV R2,#03HLCALL DELAYMOV A,#0A5HMOVX DPTR,AMOV R2,#03HLCALL DELAYDJNZ R3,FLASH1MOV A,#05H ;南北红灯,东西黄灯MOVX DPTR,AMOV R2,#10 ;延时1秒LCALL DELAYNOPRETDELAY: ;延时子程序PUSH 2PUSH 1PUSH 0DELAY1: MOV 1,#00HDELAY2: MOV 0,#0B2HDJNZ 0,$DJNZ 1,DELAY2 ;延时 100 mSDJNZ 2,DELAY1POP 0POP 1POP 2RETENDORG 0000HLJMP MainORG 0003HLJMP INTT0ORG 0030HMain: SETB EA SETB IT0 SETB EX0LOOP: MOV P1,#00H SJMP LOOPINTT0:MOV P1,#0FFH LCALL DELAY retiDELAY:MOV R5,#10LOOP1:mov R7,#199LOOP2: mov R6,#250 DJNZ R6,$ DJNZ R7,LOOP2 DJNZ R5,LOOP1 RET ENDORG 0000H LJMP START ORG 0003H ;INT 0 中断入口地址 LJMP INTO ORG 0040H START: MOV SP,#60H SETB EX0 ;INT 0 中断有效 SETB IT0 SETB EA LCALL STATUS0 ;初始状态(都是红灯) CIRCLE: LCALL STATUS1 ;南北绿灯,东西红灯 LCALL STATUS2 ;南北绿灯闪转黄灯,东西红灯 LCALL STATUS3 ;南北红灯,东西绿灯 LCALL STATUS4 ;南北

温馨提示

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

评论

0/150

提交评论