单片机c语言数码管显示循环0到9程序,七段数码管0~9循环显示程序
該樓層疑似違規(guī)已被系統(tǒng)折疊?隱藏此樓查看此樓
編寫程序?qū)崿F(xiàn)80C51的P0口控制一個(gè)數(shù)碼管顯示,讓它循環(huán)顯示0~9等十位數(shù)字,時(shí)間間隔為1秒鐘。
利用查表程序可以完成BCD與七段碼的轉(zhuǎn)換,從而取代硬件七段譯碼電路,查表程序本身并無復(fù)雜之處,需要注意的是七段碼的取值,因?yàn)槠叨螖?shù)碼管有共陽極及共陰極之分(參考本站數(shù)碼管的相關(guān)文章)。
共陽極是低電平有效時(shí)有效輸入。共陰極是高電平時(shí)有效輸入(所以在C51單片機(jī)要使發(fā)光二極管點(diǎn)亮,數(shù)碼管是共陽極的就要讓I/O口的電位變?yōu)榈碗娢?如果是共陰極的就是合I/O口的電位變?yōu)楦唠娢?,因些不同的器件會(huì)有不同的數(shù)碼值。另外引腳信號(hào)與碼位的對(duì)應(yīng)關(guān)系也會(huì)影響碼值,即引腳可以由高到低排列(7-1),也可以由低到高排列(1-7)。本實(shí)驗(yàn)的數(shù)碼管為共陽極,采用由高到低的排列(特別說明.本站的學(xué)習(xí)工具全部為共陽極接法)。
例如對(duì)應(yīng)0的二進(jìn)制代碼為11000000本實(shí)驗(yàn)在本站推出的實(shí)驗(yàn)板及學(xué)習(xí)套件上可直接使用。請(qǐng)參照本站產(chǎn)品實(shí)驗(yàn)部份原理圖。
***************************源程序******************************
ORG 0100H ;程序起始地址
MAIN: MOV R2,#00H ;段碼地址表指針清零
MOV DPTR,#TAB ;指向段碼地址表起始地址
DSUP: MOV A,R2 ;將R2的內(nèi)容送入累加器A
MOVC A,@A+DPTR ;累加器的值與從數(shù)據(jù)表中取出的數(shù)碼顯示值相加后送入累加器A
MOV P0,A ;將累加器的值送入P0口顯示
MOV R1,#11111110B ;將11111110B(位選P2.0)送入寄存器R1
MOV P2,R1 ;將R1的值送入P2口進(jìn)行位選
LCALL YSH1S ;調(diào)用延時(shí)1秒子程序
INC R2 ;段碼地址表指針加1
CJNE R2,#0AH,DSUP ;如果0-9顯示完畢,程序重新開臺(tái)執(zhí)行
SJMP MAIN ;跳轉(zhuǎn)到MAIN入口
YSH1S:MOV R3,#05H ;延時(shí)1秒子程序
LOOP0:MOV R4,#0C8H
LOOP1:MOV R5,#0FAH
XHD: DJNZ R5,XHD
DJNZ R4,LOOP1
DJNZ R3,LOOP0
RET
TAB: DB 0C0H ;0-9段碼表
DB 0F9H
DB 0A4H
DB 0B0H
DB 99H
DB 92H
DB 82H
DB 0F8H
DB 80H
DB 90H
END
總結(jié)
以上是生活随笔為你收集整理的单片机c语言数码管显示循环0到9程序,七段数码管0~9循环显示程序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 服务器的性能考核指标QPS、
- 下一篇: php木马导致服务器流出流量很高的排查及