ORG 0100 TABLE: DB 0C0h,0F9H,0A4H,0b0H,99H,92H,82H,0F8H,80H,90H ;表:共陽數碼管 0-9 ORG 0000H LJMP MAIN ORG 0200H MAIN: MOV DPTR,#TABLE M1: SETB P3.3 SETB P3.4 ;選擇千位數碼管 MOV A,#1 ;千位顯示1,顯示數值可以自己改,0-9 MOVC A,@A+DPTR ;查表輸出定義好的數碼管段值到P1口,顯示相應的0-9 MOV P1,A LCALL DELAY ;延時,停留一會,讓人眼感觸到它的亮度 MOV P1,#0FFH ;清除數碼管顯示,因是共陽型,所以不是0 CLR P3.3 ;關閉千位數碼管,選擇百位數碼管 MOV A,#2 ;百位顯示2,顯示數值可以自己改,0-9 MOVC A,@A+DPTR ;查表輸出定義好的數碼管段值到P1口,顯示相應的0-9 MOV P1,A LCALL DELAY ;延時,停留一會,讓人眼感觸到它的亮度 MOV P1,#0FFH ;清除數碼管顯示,因是共陽型,所以不是0 CLR P3.4 SETB P3.3 ;關閉百位數碼管,選擇十位數碼管 MOV A,#3 ;十位顯示3,顯示數值可以自己改,0-9 MOVC A,@A+DPTR ;查表輸出定義好的數碼管段值到P1口,顯示相應的0-9 MOV P1,A LCALL DELAY ;延時,停留一會,讓人眼感觸到它的亮度 MOV P1,#0FFH ;清除數碼管顯示,因是共陽型,所以不是0 CLR P3.3 ;關閉十位數碼管;選擇個位數碼管 MOV A,#4 ;個位顯示4 MOVC A,@A+DPTR ;查表輸出定義好的數碼管段值到P0口,顯示相應的0-9 MOV P1,A LCALL DELAY ;延時,停留一會 MOV P1,#0FFH ;清除數碼管顯示 LJMP M1 ;循環掃描輸出,不掃描則不顯示或顯示不正確,即為動態顯示, DELAY: MOV R5,#10 ;此次延時子程序不用很長時間 DJNZ R5,$ RET END
|