單片機的兩位計數(shù)器
;運行結果:數(shù)碼管從00一直加到99
;ANL 0FH就是把數(shù)據(jù)與00001111相與那么遇1得原來的數(shù)遇0則為0,結果是前面的4位變0, 后面的4位保留
;P2.1 , P2.2分別是數(shù)碼管控制位.CLR 則點亮
ORG 0000H;程序開始
LJMP MAIN;
ORG 030H;
MAIN:MOV 20H,#00H;20H單元送00
MOV A,20H;
GOON:CLR C;進位CY置0這里的作用是當數(shù)字超過9要求進位時屏蔽進位, 意思永不進位
ANL A,#0FH;屏蔽A中的高4位
MOV DPTR,#TAB;查表
MOVC A,@A+DPTR;
PP:CLR P2.2;打開個位數(shù)碼管
MOV P0,A;輸出到P0
ACALL DEL;延時以便觀察結果
SETB P2.2;關斷顯示
MOV A,20H;20H再送A
SWAP A;交換A的高低4位
ANL A,#0FH;屏蔽A中的高4位
MOVC A,@A+DPTR;查表
CLR P2.1;打開十位數(shù)碼管
MOV P0,A;輸出到P0
ACALL DEL ;延時
SETB P2.1 ;關斷顯示
MOV A,20H;20H送A
INC A; 加1
DA A;2-10進制調整
MOV 20H,A;調整后送20H
AJMP GOON;重新開始
DEL:MOV R7,#0FFH;延時子程序
DEL1:MOV R6,#01FH;
DEL2:MOV R5,#01FH;
DEL3: DJNZ R5,DEL3;
DJNZ R6,DEL2;
DJNZ R7,DEL1;
RET;
ORG 0100H;從100H開始存放數(shù)據(jù)表0,1,2,3,4,5,6,7,8,9
TAB: db 28h,7eh,0a2h,62h,74h,61h,21h,7ah,20h,60h
;0 1 2 3 4 5 6 7 8 9
END
程序在倚天版運行的狀態(tài)瞬間第一個數(shù)碼管顯示2
程序在倚天版運行的狀態(tài)瞬間第數(shù)碼管顯示34
評論