0到1月新生儿的生理特点与保健
LCALL DISP ;按下,调用显示子程序 JNB STRT,$ ;判断启动键是否释放
AJMP START ;释放启动键,跳转到启动指令段
k2: LCALL DISP JB STP,K3 LCALL DISP JNB STP,STOP
K3: LCALL DISP JB CLRR,K1 LCALL DISP JNB CLRR,CLEAR AJMP K1 START: SETB TR0 AJMP K1 STOP: CLR TR0 AJMP K2 ;启动键未按下,调用显示子程序 ;判断停止键是否按下 ;按下,调用显示子程序
;判断停止键是否释放,释放则跳转到停止指令段 ;停止键未按下,调用显示子程序
;判断清零键是否按下,未按下判断“启动”键是否按下 ;按下清零键,调用显示子程序
;判断清零键是否释放,释放则跳转到清零指令段
;清零键释放判断是否重新按下“启动”键 ;启动T0
;跳转到启动键是否按下的指令段,不断判断 ;关闭T0
;跳转到停止键是否按下的指令段,不断判断
页脚内容13
0到1月新生儿的生理特点与保健
CLEAR:CLR TR0 ;关闭T0,以便显示子程序显示此时的秒表数 MOV R4,#0 ;秒表时间清零
AJMP K1 ;跳转到判断“启动”指令段
INTT:MOV TH0,#3CH MOV TL0,#0B0H
DJNZ R0,LOOP MOV R0,#20 INC R4 CJNE R4,#60,LOOP MOV R4,#00H LOOP:RETI
DISP: MOV A,R4 MOV B,#10 DIV AB MOV 21H,B MOV 22H,A ;重装定时初值 ;中断二十次
;重新装软件计数器初值 ;1秒时间到,秒表数加一 ;与60比较,小于60就跳转 ;若秒表数加到60秒,则清零 ;返回中断 ;显示程序,先将秒表计时值给累加器作为被除数 ;除数为10,存放在B累加器 ;A除以B ;存放个位数 ;存放十位数
页脚内容14
0到1月新生儿的生理特点与保健
MOV P2,#1 ;用第二个数码管显示个位数 MOV A,21H
MOV DPTR,#TABLE ;DPTR指向TABLE表首地址 MOVC A,@A+DPTR MOV P0,A LCALL DELAY2 MOV P2,#0 MOV A,22H MOV DPTR,#TABLE
MOVC A,@A+DPTR MOV P0,A LCALL DELAY2 RET
DELAY2:MOV R6,#02H D1:MOV R7,#248 D2:DJNZ R7,D2
;查表找个位数段码 ;将个位段码送给P0口 ;延时
;用第一个数码管显示十位数 ;查表找十位数段码 ;将十位数段码送给P0口 ;延时
;显示子程序返回 ;延时子程序 页脚内容15
0到1月新生儿的生理特点与保健
DJNZ R6,D1
RET ;延时子程序返回
TABLE:DB 3FH,06H,5BH,4FH,66H ;TABLE表,对应共阴极段码 DB 6DH,7DH,07H,7FH,6FH END ;结束
页脚内容16
相关推荐: