最近的中文字幕免费完整版-越猛烈欧美xx00动态图-少妇激情偷人三级-国产色播av在线观看-国产国产人免费视频成69-无码专区人妻丝袜-亚洲女同精品一区二区-午夜久久久-欧美黄色大全-久久人人爽人人爽人人片av不-www色com-日韩综合在线视频-亚洲电影天堂av2017-久久亚洲网-欧美性色视频-久久亚洲激情-av无码免费岛国动作片不卡-一区二区三区高清视频3-欧美一级无毛-午夜黄色大片

【技術(shù)干貨】分享基于單片機(jī)的數(shù)碼管電路設(shè)計(jì)

來(lái)源:IC采購(gòu)網(wǎng)| 發(fā)布日期:2023-10-31 15:25

前面一課通過(guò)流水燈實(shí)驗(yàn),學(xué)會(huì)了流水燈電路模型設(shè)計(jì),掌握了循環(huán)移位和時(shí)間延遲算法的程序編寫。本次實(shí)驗(yàn)完成數(shù)碼管顯示電路模型設(shè)計(jì)和編程,在實(shí)驗(yàn)過(guò)程中,學(xué)習(xí)數(shù)碼管顯示電路設(shè)計(jì)、數(shù)碼管循環(huán)顯示數(shù)字的算法。

認(rèn)識(shí)數(shù)碼管

數(shù)碼管是半導(dǎo)體發(fā)光器件,用于顯示數(shù)字、字母、簡(jiǎn)單圖形符號(hào)等內(nèi)容。數(shù)碼管基本單元是發(fā)光二極管,數(shù)碼管內(nèi)部由多個(gè)發(fā)光二極管管構(gòu)成,多個(gè)發(fā)光二極管在同一時(shí)間的不同狀態(tài),組合為不同的數(shù)字、字母或圖形符號(hào)。

數(shù)碼管型號(hào)多樣,有單位數(shù)碼管、雙位數(shù)碼管、四位數(shù)碼管、八位數(shù)碼管等等,單位數(shù)碼管僅能顯示一個(gè)數(shù)字、字母或圖形符號(hào),多位數(shù)碼管可以顯示多個(gè)數(shù)字、字母或圖形符號(hào)。實(shí)際上,多位數(shù)碼管都可以由單位數(shù)碼管構(gòu)成,例如4個(gè)單位數(shù)碼管可以構(gòu)成四位數(shù)碼管。

不管將幾位數(shù)碼管連在一起,數(shù)碼管的顯示原理都是一樣的,都是靠點(diǎn)亮內(nèi)部的發(fā)光二極管來(lái)發(fā)光,下面我們來(lái)看看單位數(shù)碼管是如何顯示數(shù)字的。

單位數(shù)碼管一般由7個(gè)發(fā)光二極管組成,有共陰,共陽(yáng)兩種,八個(gè)引腳,七個(gè)引腳接7個(gè)發(fā)光二極管,一個(gè)引腳是公共端,若共陰,該引腳接地,若共陽(yáng),該引腳接電源的正極。

單位數(shù)碼管內(nèi)部基礎(chǔ)電路如上圖所示,顯示一個(gè)數(shù)字需要7個(gè)小段,每個(gè)小段需要一個(gè)發(fā)光二極管,因此數(shù)碼管的引腳至少為8個(gè),其中7個(gè)引腳分別接二極管的正極或負(fù)極,另外1個(gè)引腳為公共端,若數(shù)碼管為共陰極,該引腳接地,若數(shù)碼管為共陽(yáng)極,該引腳接電源。

對(duì)于共陽(yáng)極數(shù)碼管來(lái)說(shuō),7個(gè)發(fā)光二極管的正極連接在一起形成公共端,該公共端接電源,負(fù)極分別接單片機(jī)的I/O端口,當(dāng)我們給數(shù)碼管任一個(gè)陰極低電平時(shí),對(duì)應(yīng)的這個(gè)發(fā)光二極管就點(diǎn)亮了。例如:若需要數(shù)碼管顯示數(shù)字0,g引腳送低電平,其它引腳送高電平,這樣數(shù)碼管就顯示數(shù)字0了;若需要數(shù)碼管顯示數(shù)字8,將所有引腳(公共端除外)送入低電平,數(shù)碼管就顯示數(shù)字8了。因此,若需要數(shù)碼管顯示數(shù)字,只需要給發(fā)光二極管引腳送入低電平或高電平就可以了。

數(shù)碼管電路設(shè)計(jì)

本次實(shí)驗(yàn)設(shè)計(jì)要求通過(guò)單片機(jī)P0口控制數(shù)碼管循環(huán)顯示數(shù)字0 ~ 9,實(shí)驗(yàn)需要用到單位數(shù)碼管器件。在“Pick Devices”對(duì)話框搜索關(guān)鍵詞“7SEG”,選擇“7SEG-MPX1-CA”型號(hào)的數(shù)碼管,該數(shù)碼管是7段共陽(yáng)極數(shù)碼管,可以顯示數(shù)字0~9和小數(shù)點(diǎn),它有9個(gè)引腳,8個(gè)引腳用于連接P0口的8位端口,1個(gè)引腳為公共端,連接電源的正極。

數(shù)碼管內(nèi)部發(fā)光二極管點(diǎn)亮?xí)r,大約需要幾個(gè)毫安以上的電流,而且電流不可過(guò)大,電流過(guò)大可能會(huì)燒毀發(fā)光二極管,因此需要在P0端口和數(shù)碼管引腳之間接入限流電阻,限流電阻值不能太大,也不能大小。限流電阻的阻值計(jì)算過(guò)程如下:一個(gè)發(fā)光二極管的額定電壓一般是1.5~2.5V,電阻不大于50歐姆,電流約為0.04A,單片機(jī)引入的電源電壓為5V,限流電阻的阻值約為R=U/I=5/0.04=125歐姆。計(jì)算值僅是個(gè)近似值,可以選擇100~500歐姆以內(nèi)的阻值。

電路設(shè)計(jì)如下圖所示:

數(shù)碼管編程

讓數(shù)碼管循環(huán)顯示數(shù)字0 ~ 9,需要對(duì)數(shù)字0~9進(jìn)行編碼,對(duì)應(yīng)數(shù)字的編碼值用于控制P0各端口的電平輸出,從而控制數(shù)碼管內(nèi)部各發(fā)光二極管的狀態(tài),顯示出編碼對(duì)應(yīng)的數(shù)字。

“7SEG-MPX1-CA”型號(hào)的數(shù)碼管數(shù)字0~9的編碼為:

unsigned char led[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};

0xC0為數(shù)字0的編碼,其二進(jìn)制數(shù)為11000000,該值送入單片機(jī)P0口,P0口的第7、6端口為高電平,5、4、3、2、1、0端口為低電平,與5、4、3、2、1、0端口連接的發(fā)光二極管被點(diǎn)亮,與7、6端口連接的發(fā)光二極管為熄滅狀態(tài),其中端口7位小數(shù)點(diǎn),端口6位g段,顯示數(shù)字0。

0xF9為數(shù)字1的編碼,其二進(jìn)制數(shù)為11111001,該值送入單片機(jī)P0口,P0口的7、6、5、4、3、0端口為高電平,與其連接的發(fā)光二極管為熄滅狀態(tài),P0口的2、1端口為低電平,與其連接的發(fā)光二極管被點(diǎn)亮,即b、c段點(diǎn)亮,顯示數(shù)字1。

同學(xué)們可以自行分析2~9數(shù)字的編碼。C程序代碼如下:

led[]為數(shù)字0~9編碼數(shù)組,delay()為時(shí)間延遲函數(shù),在main()函數(shù)內(nèi)部,使用while循環(huán)讓程序持續(xù)執(zhí)行,在while循環(huán)內(nèi)部,使用for循環(huán)遍歷led[]數(shù)組,獲取每個(gè)數(shù)字的編碼,并將編碼賦值給P0。