270 likes | 406 Views
实验三、单片机 I/O 及外部中断实验 一、实验目的 1 .学习 P1 、 P3 口作为基本 I/O 口的使用方法,掌握对发光二极管和继电器的程序控制方法; 2 .学习在单片机系统中扩展简单 I/O 接口的方法,学习模拟交通灯控制的方法; 3 .掌握外部中断技术的基本使用方法和中断处理程序的编程方法。 二 . 实验仪器 : 1 .仿真教学实验机( 5196ET ) 一台 2 .直流稳压电源( DF 1731 SB 3A ) 一台 3 . PC 机 一台. 三、实验内容 1 、 P1 口做输出口实验
E N D
实验三、单片机I/O及外部中断实验 一、实验目的 1.学习P1、P3口作为基本I/O口的使用方法,掌握对发光二极管和继电器的程序控制方法; 2.学习在单片机系统中扩展简单I/O接口的方法,学习模拟交通灯控制的方法; 3.掌握外部中断技术的基本使用方法和中断处理程序的编程方法。 二.实验仪器: 1.仿真教学实验机(5196ET) 一台 2.直流稳压电源(DF 1731 SB 3A) 一台 3.PC机 一台
三、实验内容 1、P1口做输出口实验 (1)实验要求:P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。 (2)电路及连线如下:
(4)P1.0~P1.7接DL1.~DL8,运行程序TP1A,观察现象。(4)P1.0~P1.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
(5)修改程序TP1A,使指示灯左循环。 (6)*修改程序TP1A,使指示灯两两右循环。 (7)*修改程序TP1A,使指示灯从两边向中间循环。 (8)*修改程序TP1A,使指示灯右循环间隔时间为0.1秒。 2、P1口做输入口实验 (1)实验要求:P1口做输入口,接八个纽子开关,以实验机上74LS273做输出口,编写程序读取开关状态,将此状态在发光二极管上显示出来。
(2)电路及连线如下: (3)P1.0~P1.7接K1~K8,PO0~PO7接DL1~DL8;273CS/接8300H。 (4)运行程序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 END
3、 交通灯控制 (1)实验要求:以74LS273作为输出口,控制4个双色LED灯(可发红,绿,黄光),模拟交通灯管理。 (2)实验电路及连线( PO0~PO3接DG1~DG4,PO4~PO7接DR1~DR4,D16的/CS接8300H )
1、96H DR4 DR3 DR2 DR1 DG4 DG3 DG2 DG1 1 0 0 1 0 1 1 0 HL4、HL1 绿 (南北) HL3、HL2 红 (东西) 2、9FH 1 0 0 1 1 1 1 1 HL4、HL1 暗 (南北) HL3、HL2 红 (东西) 06H 0 0 0 0 0 1 1 0 HL4、HL1 黄 (南北) HL3、HL2 红 (东西 3、69H 0 1 1 0 1 0 0 1 HL4、HL1 红 (南北) HL3、HL2 绿 (东西) 0FH 全红 F0H 全绿 00H 全黄
4、6FH 0 1 1 0 1 1 1 1 HL4、HL1 红 (南北) HL3、HL2 暗 (东西) 69H HL4、HL1 红 (南北) HL3、HL2 绿 (东西) 09H HL4、HL1 红 (南北) HL3、HL2 黄 (东西)
ORG 0000H LJMP START ORG 0040H START: MOV SP,#60H LCALL STATUS0 ;初始状态(都是红灯) CIRCLE: LCALL STATUS1 ;南北绿灯,东西红灯 LCALL STATUS2 ;南北绿灯闪转黄灯,东西红灯 LCALL STATUS3 ;南北红灯,东西绿灯 LCALL STATUS4 ;南北红灯,东西绿灯闪转黄灯 LJMP CIRCLE STATUS0: ;南北红灯,东西红灯 MOV DPTR,#8300H MOV A,#0FH MOVX @DPTR,A MOV R2,#10 ;延时1秒 LCALL DELAY RET
STATUS1: ;南北绿灯,东西红灯 MOV DPTR,#08300H MOV A,#96H ;南北绿灯,东西红灯 MOVX @DPTR,A MOV R2,#200 ;延时20秒 LCALL DELAY RET
STATUS2: ;南北绿灯闪转黄灯,东西红灯 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 RET
STATUS3: ;南北红灯,东西绿灯 MOV DPTR,#8300H MOV A,#69H MOVX @DPTR,A MOV R2,#200 ;延时20秒 LCALL DELAY RET
STATUS4: ;南北红灯,东西绿灯闪转黄灯 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 DELAY NOP RET
DELAY: ;延时子程序 PUSH 2 PUSH 1 PUSH 0 DELAY1: MOV 1,#00H DELAY2: MOV 0,#0B2H DJNZ 0,$ DJNZ 1,DELAY2 ;延时100 mS DJNZ 2,DELAY1 POP 0 POP 1 POP 2 RET END *(3)编写程序,使东西南北四个灯均闪烁黄灯(闪烁时间为1秒)
4、外部中断实验(急救车与交通灯) (1)实验要求:有急救车到达时,两向交通信号为全红,以便让急救车通过。假定急救车通过路口时间为10秒,急救车通过后,交通灯恢复中断前状态。本实验以按键为中断申请,表示有急救车通过 。 (2)PO0~PO3接DG1~DG4,PO4~PO7接DR1~DR4,D16的/CS接8300H,K8接P3.2。
TRLED2.ASM ORG 0000H LJMP START ORG 0003H ;INT 0 中断入口地址 LJMP INT0 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 ;南北红灯,东西绿灯闪转黄灯 LJMP CIRCLE
INT0: 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 RETI
(3)修改程序TRLED2,使中断时,东西南北四个灯均为红色的同时,继电器发出滴答声。(3)修改程序TRLED2,使中断时,东西南北四个灯均为红色的同时,继电器发出滴答声。
5、P3口输出控制继电器 (1)实验要求:利用P3.5输出高低,控制继电器的开合,实现对外部装置的控制。 (2)实验电路及连线
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