本程序是用51單片機(jī)實(shí)現(xiàn)4位共陽數(shù)碼管動(dòng)態(tài)掃描顯示程序,采用74HC573做驅(qū)動(dòng),定時(shí)器T0定時(shí)16ms,用來刷新數(shù)碼管顯示屏,軟件延時(shí)1ms實(shí)現(xiàn)數(shù)碼管亮滅延時(shí),相當(dāng)穩(wěn)定,沒有一點(diǎn)閃爍的感覺,很不錯(cuò)!如果要調(diào)整亮度可適當(dāng)調(diào)整數(shù)碼管亮的時(shí)間。現(xiàn)把程序上傳,與大家一起共享!!!哈哈哈!!!
由于電路圖很簡(jiǎn)單我就不畫了大家從程序中都可看出來p2.0-2.3 是接4個(gè)位選 由于是共陽所以是接的數(shù)碼管的正極,p2.5是74hc573的鎖存端,段的數(shù)據(jù)口是p0.我是從51hei單片機(jī)開發(fā)板上的電路圖仿制過來的 只是用4個(gè)io口做位選 節(jié)約了一片573芯片.
D0 BIT P2.0 D1 BIT P2.1 D2 BIT P2.2 D3 BIT P2.3 SUBF0 EQU 30H SUBF1 EQU 31H SUBF2 EQU 32H SUBF3 EQU 33H COUT EQU 34H ORG 0000H SJMP MIAN ORG 000BH LJMP INTER0 ORG 0040H MIAN:MOV SP,#60H MOV IE,#00H MOV SUBF0,#80H MOV SUBF1,#80H MOV SUBF2,#80H MOV SUBF3,#80H MOV TH0,#0C1H MOV TL0,#80H MOV TMOD,#01H MOV R2,#00H MOV R1,#SUBF0 MOV COUT,#04H LCALL DISPLAY LCALL SHUT SETB EA SETB ET0 MOV DPTR,#TABLE LOOP:MOV A,R2 MOVC A,@A+DPTR LOOP0:MOV @R1,A INC R1 INC R2 DJNZ COUT,LOOP SETB TR0 SJMP $ INTER0:CLR ET0 CLR TR0 PUSH ACC PUSH PSW MOV TH0,#0C1H MOV TL0,#80H LCALL DISPLAY SETB ET0 SETB TR0 POP PSW POP ACC RETI DISPLAY:SETB D1 SETB D2 SETB D3 CLR D0 CLR P2.5 MOV P0,SUBF0 SETB P2.5 LCALL DELAY SETB D0 SETB D2 SETB D3 CLR D1 CLR P2.5 MOV P0,SUBF1 SETB P2.5 LCALL DELAY SETB D0 SETB D1 SETB D3 CLR D2 CLR P2.5 MOV P0,SUBF2 SETB P2.5 LCALL DELAY SETB D0 SETB D1 SETB D2 CLR D3 CLR P2.5 MOV P0,SUBF3 SETB P2.5 LCALL DELAY LCALL SHUT RET SHUT:SETB D0 SETB D1 SETB D2 SETB D3 RET DELAY:MOV R7,#02H DL:MOV R6,#0FFH DL1:DJNZ R6,DL1 DJNZ R7,DL RET TABLE:DB 99H,92H,82H,0F8H END