單片機(jī)數(shù)碼管顯示
單片機(jī)上接有一個(gè)四位一體的八段共陽極數(shù)碼管,P0.0~P0.7分別與數(shù)碼管的a,b,c,d,e,f,g,dp端相連,P2.0~P2.3分別控制數(shù)碼管的個(gè)位、十位、百位與千位。單個(gè)數(shù)碼管顯示一個(gè)數(shù)字,要求編程實(shí)現(xiàn)四位一體共陽極數(shù)碼管個(gè)位依次顯示十六進(jìn)制數(shù)0~F,無限循環(huán)。每個(gè)數(shù)字顯示維持的時(shí)間為1s。用動態(tài)顯示的方法在四位一體共陽極數(shù)碼管上顯示“1532”四個(gè)字符。

在單片機(jī)應(yīng)用系統(tǒng)中,常用的顯示器主要有LED(發(fā)光二極管顯示器)和LCD(液晶顯示器)。這兩種顯示器具有耗電低、成本低、配置靈活、線路簡單、安裝方便、耐振動、壽命長等優(yōu)點(diǎn)。LED是由發(fā)光二極管顯示字段的顯示器件,也可稱為數(shù)碼管。
數(shù)碼管的分類和結(jié)構(gòu)
數(shù)碼管是一種顯示器件,通過對不同的引腳輸入相應(yīng)的電流,使部分字段發(fā)亮來顯示數(shù)字0~9、字母A~F、符號“一”及小數(shù)點(diǎn)“.”等字符,從而實(shí)現(xiàn)時(shí)間、日期、溫度等可用數(shù)字表示的參數(shù)顯示。數(shù)碼管的分類如下所述。
按段數(shù)分類

數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,八數(shù)碼管比七段數(shù)碼管多一個(gè)發(fā)光二極管單元,實(shí)現(xiàn)示小數(shù)點(diǎn)的功能,常用dp表示。
按發(fā)光二極管連接方式分類
數(shù)碼管按發(fā)光二極管連接方式分為共陽極數(shù)碼管共陰極數(shù)碼管,兩者外觀相同,內(nèi)部結(jié)構(gòu)不同。
共陰極數(shù)碼管是指將所有發(fā)光二極管的陰極接到共陰極數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起,形成公共陰極(常用com表示)的數(shù)碼管,共陰極數(shù)碼管應(yīng)用時(shí)應(yīng)將公共陰極接到地線GND上,當(dāng)某一字段的發(fā)光二極管的陽極為高電平時(shí),相應(yīng)字段點(diǎn)亮,當(dāng)某一字段的陽極為低電平時(shí),相應(yīng)字段不亮。

共陽極數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(常用com表示)的數(shù)碼管。共陽極數(shù)碼管應(yīng)用時(shí)應(yīng)將公共陽極接到+5V,當(dāng)某一字段的發(fā)光二極管的陰極為低電平時(shí),相應(yīng)字段點(diǎn)亮。當(dāng)某一字段的陰極為高電平時(shí),相應(yīng)字段不亮。
共陽極和共陰極是針對數(shù)碼管的公共引腳而言。典型的一位數(shù)碼管,一般有10個(gè)引腳,其中8個(gè)引腳為段碼(7段加1個(gè)小數(shù)點(diǎn)),剩下兩個(gè)引腳接在一起組成com端。
按數(shù)碼管位數(shù)分類
一塊數(shù)碼管按能顯示幾個(gè)“8”可分為一位、兩位、三位、四位一體數(shù)碼管等。不同位數(shù)的數(shù)碼管如圖1-6-5所示。例如,四位一體數(shù)碼管是在一塊片板上集成了4個(gè)數(shù)碼管,4個(gè)數(shù)碼管共有a~g和dp這8根數(shù)據(jù)線,加上每個(gè)數(shù)碼管各有一個(gè)公共端即com端,總共有12個(gè)引腳。

比較常用的四位一體共陽極數(shù)碼管的引腳順序?yàn)椋簭臄?shù)碼管正面看,數(shù)碼管的小數(shù)點(diǎn)dp面對識別者,左下角為1號引腳,逆時(shí)針方向依次為2~12號引腳。
數(shù)碼管顯示字符
數(shù)碼管的a~g和dp共八段(數(shù)據(jù)段)分別對應(yīng)一個(gè)發(fā)光二極管。共陰極數(shù)碼管公共端接地后,給某一引腳加高電平,則所對應(yīng)的發(fā)光二極管會被點(diǎn)亮,如果加低電平(接地),則所對應(yīng)的發(fā)光二極管不發(fā)光。
各段不同亮暗的組合能形成不同的字符,這種組合稱為字形碼。共陽極數(shù)碼管和共陰極數(shù)碼管的字形碼是不同的,下面對此進(jìn)行分析。當(dāng)把一個(gè)共陽極的數(shù)碼管接到STC15W4K32S4單片機(jī)的PO端口上,若要數(shù)碼管顯示數(shù)字“0”,共陽極的數(shù)碼管com端接高電平,當(dāng)數(shù)據(jù)段接低電平時(shí),對應(yīng)的數(shù)據(jù)段亮。

因此,要顯示“0”,需要點(diǎn)亮a,b,c,d,e,f六段,g不需要點(diǎn)亮,如果是八段數(shù)碼管,則dp也不需要點(diǎn)亮。共陽極數(shù)碼管顯示“0”時(shí)的字形碼。
數(shù)碼管靜態(tài)顯示的特點(diǎn)
數(shù)碼管靜態(tài)顯示就是單片機(jī)將要顯示的數(shù)據(jù)發(fā)送出去后,數(shù)碼管始
終顯示該數(shù)據(jù)不變,直到送出要顯示的不同的字形碼。
用動態(tài)顯示的方法在四位一體數(shù)碼管上顯示“1532”這四個(gè)字符,只需要先選中使能第一位數(shù)碼管com端(千位),即6號引腳,使能對應(yīng)的控制端P2.3,使P2.3=0,然后往PO端口發(fā)送字符“1”的共陽極字形碼(F9H),這樣字符“1”就能夠在四位一體共陽極數(shù)碼管千位顯示,然后延時(shí)4 ms。接下來選中使能第二位數(shù)碼管com端(百位),即8號引腳,使能對應(yīng)的控制端P2.2,使P2.2=0,然后往PO端口發(fā)送字符“5”的字形碼(92H)。

這樣字符“5”就能夠在四位一體共陽極數(shù)碼管百位顯示,然后延時(shí)4ms。以此類推,就可以實(shí)現(xiàn)輪流點(diǎn)亮每一個(gè)數(shù)碼管。雖然每位數(shù)碼管的點(diǎn)亮?xí)r間極為短暫,但由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余暉,給人的印象就是“1532”這4個(gè)字符同時(shí)顯示在數(shù)碼管上了。