交通灯毕业设计论文-交通灯设计

第四章 系统软件程序设计

****************; ;*1秒延时子程序*; ;****************; DELAY:MOV R1,#0AH DELAY0:MOV R2,#0C8H DELAY1:MOV R3,#0F8H NOP

DELAY2:DJNZ R3,DELAY2 DJNZ R2,DELAY1 DJNZ R1,DELAY0 RET

;***************; ;键盘扫描子程序; ;***************; READKEY: MOV A,#0FFH MOV P3,A MOV A,P3 JNB ACC.0,K1 JNB ACC.1,K2 JNB ACC.3,K3 RET K1:

MOV P0,#0FFH MOV P2,#0FFH LCALL XX LCALL YY

;判断K1键是否按下 ;判断K2键是否按下 ;判断K3键是否按下

;关断倒计时显示装置- 16 -

SJMP READKEY K2:

MOV P0,#0FFH MOV P2,#0FFH LCALL XX LCALL YY1 SJMP READKEY K3:

MOV P0,#0FFH MOV P2,#0FFH LCALL XX LCALL YY2 SJMP READKEY XX:

MOV 20H,#03H LCALL BB RET

;******************; ;*黄灯进行5秒闪烁*; ;******************; BB: SETB P1.1 SETB P1.4 LCALL DELAY CLR P1.1 CLR P1.4 LCALL DELAY DJNZ 20H,BB RET YY:

;关断倒计时显示装置

;关断倒计时显示装置

- 17 -

MOV P1,#0F6H MOV A,#0FFH MOV P3,A MOV A,P3 JNB ACC.0,YY LCALL QW YY1:

MOV P1,#0F3H 灯

MOV A,#0FFH MOV P3,A MOV A,P3 JNB ACC.1,YY1 LCALL QW YY2:

MOV P1,#0DEH 灯

MOV A,#0FFH MOV P3,A MOV A,P3 JNB ACC.3,YY2 LCALL QW RET

;****************; ;*中断处理程序*; ;****************; ORG 0200H Liu: DEC 88H MOV A,88H

;四个路后均变成红灯

;判断K1键是否仍然按下

;东西方向亮绿灯,南北方向亮红

;判断K2键是否仍然按下

;南北方向亮绿灯,东西方向亮红

;判断K3键是否仍然按下

;中断程序入口地址

- 18 -

CJNE A,#01H,BN MOV 88H,#15H LCALL DISP BN:

MOV TH1,#9EH MOV TL1,#58H RETI

;************; ;*显示子程序*; ;************; DISP: DEC 33H MOV A,33H CJNE A,#01H,DIR1 MOV 33H,#3DH DIR1: MOV B,#0AH DIV AB 位数

MOV DPTR,#TAB MOVC A,@A+DPTR MOV 30H,A MOV A,B

MOVC A,@A+DPTR MOV 31H,A MOV A,30H MOV P0,A MOV A,31H MOV P2,A LCALL DELAY

;判断循环次数是否为1 ;重新给循环次数赋值

;重新给定时器T1赋初值

;重新给倒计时数赋初值

;提取出倒计时数值的十位数和个

;字形表的入口地址 ;查表获取十位数的字型码

;查表获取个位数的字型码

;将十位数字型码送到P0口

;将个位数字型码送到P2口

- 19 -

RET

TAB:DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H;字形表 END 3.3控制程序 ORG 0000H LJMP MAIN ORG 001BH LJMP ORG 0100H ;********; ;*主程序*; ;********; MAIN:

MOV SP,#60H MOV TMOD,#10H MOV TH1,#9EH MOV TL1,#58H SETB EA SETB ET1 SETB TR1 HERE: MOV 88H,#15H MOV 33H,#3DH MOV P1,#0F3H MOV R7,#37H MM: LCALL DISP MOV A,P3

CJNE A,#0FFH,READKEY DJNZ R7,MM

;定时器T1中断入口 liu

;主程序入口

;定时器T1工作在方式1 ;给定时器T1赋初值

;开中断系统总开关 ;开定时器T1中断开关 ;启动定时器T1

;设置中断循环次数 ;设置倒计时显示数值 ;使交通灯东西绿,南北红

;键盘扫描

- 20 -

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4