交通灯模拟实验程序
扫描二维码
随时随地手机看文章
交通灯模拟实验程序
GEWEIEQU21H;个位数据
SHIWEIEQU23H;十位数据
SCANLEDEQU25H
SCANMODEEQU26H
REDEQU28H;定义灯的缓冲区
GREENEQU29H
YELLOWEQU32H
NUMTIMEQU33H
LEDEQU34H
ORG000H
JMPSTART
ORG0BH
JMPTIMER0;定时器0中断入口
ORG100H
START: MOV SP,#50H
 MOV R0,#20H
 MOV R5,#20
CLR0: MOV @R0,#00H
INCR0
DJNZR5,CLR0
 MOV TMOD,#01H;设置定时器
 MOV TH0,#HIGH(65536-5000)
 MOV TL0,#LOW(65536-5000)
SETBTR0
 MOV IE,#10000010B;端口初始化
 MOV P0,#0FFH
 MOV P1,#0FFH
 MOV P2,#00H
 MOV P3,#0FFH
 MOV R3,#10
 MOV R2,#3
 MOV R1,#10
 MOV R7,#200
 MOV RED,#10
 MOV YELLOW,#3
 MOV GREEN,#10
 MOV NUMTIM,#10
 MOV LED,#0FFH
AJMP$
;=============================================================
TIMER0:PUSHACC;定时器部分,负责交通灯的及时和数码管动态扫描
PUSHPSW
 MOV TH0,#HIGH(65536-5000);重新赋初值
 MOV TL0,#LOW(65536-5000)
DJNZR7,RET0
 MOV R7,#200
 MOV A,SCANMODE;调用扫描
 MOV B,#4
DIVAB
 MOV A,B
RLA
 MOV DPTR,#TAB_SCAN
JMP@A+DPTR
TAB_SCAN:AJMPRED_LIGHT
AJMPYEL_LIGHT
AJMPGRE_LIGHT
AJMPYEL_LIGHT
RET0: MOV A,NUMTIM
LCALLBIN_BCD
 MOV SHIWEI,A
 MOV GEWEI,B
INCSCANLED
 MOV A,SCANLED
 MOV B,#4
DIVAB
 MOV A,B
RLA
 MOV DPTR,#TAB_SCAN0
JMP@A+DPTR
TAB_SCAN0:AJMPSCAN_L1
AJMPSCAN_L2
SCAN_L1: MOV P2,#11111011B
 MOV A,SHIWEI
JMPEND_SCAN
SCAN_L2: MOV P2,#11111101B
 MOV A,GEWEI
JMPEND_SCAN
END_SCAN: MOV DPTR,#TABLE
 MOV CA,@A+DPTR
 MOV P0,A
 MOV A,LED
 MOV P1,A
POPPSW
POPACC
RETI
RED_LIGHT: MOV LED,#11111100B
 MOV NUMTIM,RED
DECRED
 MOV A,RED
CJNEA,#0FFH,RET0
 MOV RED,#10
 MOV A,SCANMODE
ADDA,#01H
 MOV SCANMODE,A
JMPRET0
YEL_LIGHT: MOV LED,#11110011B
 MOV NUMTIM,YELLOW
DECYELLOW
 MOV A,YELLOW
CJNEA,#0FFH,RET0
 MOV YELLOW,#3
 MOV A,SCANMODE
ADDA,#01H
 MOV SCANMODE,A
JMPRET0
GRE_LIGHT: MOV LED,#11001111B
 MOV NUMTIM,GREEN
DECGREEN
 MOV A,GREEN
CJNEA,#0FFH,RET1
 MOV GREEN,#10
 MOV A,SCANMODE
ADDA,#01H
 MOV SCANMODE,A
RET1:JMPRET0
BIN_BCD: MOV B,#10
DIVAB
RET
DELAY: MOV R5,#02
D1: MOV R6,#200
D2: MOV R7,#200
DJNZR7,$
DJNZR6,D2
DJNZR5,D1
RET
TABLE:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;共阳字码表
END

 
						
			 
			 下载文档
下载文档



 
		 