内容发布更新时间 : 2024/11/16 10:29:54星期一 下面是文章的全部内容请认真阅读。
第四章 系统软件程序设计
****************; ;*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 -