ORG 0000H START: MOV SP,#40H MOV R3,#0 ;設置顯示的第一個數字 SETB P2.6 ;開啟74HC573的LE端 U1 數碼管LED的段選端 SETB P2.7 ;讓第2個74hc573處于直通狀態 MOV P0,#0 ;開啟所有數碼管的位選 CLR P2.7 ;鎖存,保持第2個74hc573的輸出數據保持不變 MOV DPTR,#TAB ;將字型碼表格首地址送數據指針 NEXT: MOV A,R3 ;設定要顯示的第一個數字 ANL A,#0FH ;屏蔽高半字節 MOVC A,@A+DPTR MOV P0,A ;送顯示器 LCALL DEL_05S ;停留0.5秒 INC R3 ;修改要顯示的數字 CJNE R3,#0FH,NEXT ;若0-F還未顯示一遍,則繼續顯示下一個數字 SJMP START ;-------------------------------------------------------------------------- ORG 1000H ;0.5秒延時程序 DEL_05S: MOV TMOD,#10H ;定時器1、方式1、定時狀態 MOV TL1,#0B0H MOV TH1,#3CH ;送50ms定時初值 MOV R2,#0AH ;設置軟計數器,使10*5ms=0.5s SETB TR1 ;啟動定時器1 LOOP: JNB TF1,$ ;判斷基時是否到 MOV TL1,#0B0H MOV TH1,#3CH ;再賦初值 CLR TF1 ;清溢出標志 DJNZ R2,LOOP ;判斷0.5s是否到 CLR TR1 ;關閉定時器1 RET ;定時結束 ;-------------------------------------------------------------------------- TAB: DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH DB 77H,7CH,39H,5EH,79H,71H
|