![數(shù)碼管顯示(共14頁)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/30/6d5690f7-a285-4f7c-b22c-b3321791fc85/6d5690f7-a285-4f7c-b22c-b3321791fc851.gif)
![數(shù)碼管顯示(共14頁)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/30/6d5690f7-a285-4f7c-b22c-b3321791fc85/6d5690f7-a285-4f7c-b22c-b3321791fc852.gif)
![數(shù)碼管顯示(共14頁)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/30/6d5690f7-a285-4f7c-b22c-b3321791fc85/6d5690f7-a285-4f7c-b22c-b3321791fc853.gif)
![數(shù)碼管顯示(共14頁)_第4頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/30/6d5690f7-a285-4f7c-b22c-b3321791fc85/6d5690f7-a285-4f7c-b22c-b3321791fc854.gif)
![數(shù)碼管顯示(共14頁)_第5頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/30/6d5690f7-a285-4f7c-b22c-b3321791fc85/6d5690f7-a285-4f7c-b22c-b3321791fc855.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上數(shù)碼管顯示 第3講 數(shù)碼管顯示第3講 數(shù)碼管顯示 一、 數(shù)碼管顯示原理我們最常用的是七段式和八段式LED數(shù)碼管,八段比七段多了一個小數(shù)點(diǎn),其他的基本相同。所謂的八段就是指數(shù)碼管里有八個小LED發(fā)光二極管,通過控制不 同的LED的亮滅來顯示出不同的字形。數(shù)碼管又分為共陰極和共陽極兩種類型,其實(shí)共陰極就是將八個LED的陰極連在一起,讓其接地,這樣給任何一個LED 的另一端高電平,它便能點(diǎn)亮。而共陽極就是將八個LED的陽極連在一起。其原理圖如下。其中引腳圖的兩個COM端連在一起,是公共端,共陰數(shù)碼管要將其接地,共陽數(shù)碼管將其接正5伏電源。一個八段數(shù)碼管稱為一位,多個數(shù)碼管并
2、列在一起可構(gòu)成 多位數(shù)碼管,它們的段選線(即a,b,c,d,e,f,g,dp)連在一起,而各自的公共端稱為位選線。顯示時,都從段選線送入字符編碼,而選中哪個位選 線,那個數(shù)碼管便會被點(diǎn)亮。數(shù)碼管的8段,對應(yīng)一個字節(jié)的8位,a對應(yīng)最低位,dp對應(yīng)最高位。所以如果想讓數(shù)碼管顯示數(shù)字0,那么共陰數(shù)碼管的字符編碼為,即0x3f;共陽數(shù)碼管的字符編碼為,即0xc0??梢钥闯鰞蓚€編碼的各位正好相反。如下圖。二、 點(diǎn)亮一個數(shù)碼管下面以七段共陰數(shù)碼管為例講述如何點(diǎn)亮一個數(shù)碼管。l 51系列單片機(jī)的P0口沒有上拉電阻(其他端口有),所以如果直接接數(shù)碼管的段選線,那么不能將其點(diǎn)亮。我們需要為其加上220歐姆的上拉
3、電阻,注意,上拉電阻阻值不能過大。實(shí)驗(yàn)原理圖如下。其中,7SEG-COM-CAT-GRN為七段共陰數(shù)碼管,顯示為綠色。RES為電阻。查找電阻時,需要選中下面的Resistors,如下圖。右擊選中圖中的電阻再左擊,彈出的窗口中可改變它的阻值。如下圖。那七個電阻看上去很亂,其實(shí)他們可以用一個排阻(RESPACK-7)代替。如下圖。到這里原理圖就畫完了,我們開始寫源程序。讓數(shù)碼管顯示字符“0”。#includevoid main()P0 = 0x3f; /P0口送字符0的編碼顯示效果如下。因?yàn)檫@個程序就一句話,很簡單,所以我們不再進(jìn)行分析。三、 一個數(shù)碼管顯示不同字符下面的程序讓一個數(shù)碼管輪流顯示不
4、同的字符。#includevoid delay();void main()P0 = 0x3f; /顯示字符0delay(); /延時一會P0 = 0x06; /顯示字符1delay();P0 = 0x5b; /顯示字符2delay();void delay()int i,j;for(i=1000;i>0;i-)for(j=100;j>0;j-);這個程序?qū)崿F(xiàn)字符0,1,2的循環(huán)顯示。但如果要循環(huán)顯示更多的數(shù)字,每次都寫出他們的編碼很麻煩,這里我們可以將所有的編碼都寫到一個數(shù)組里,以后只需調(diào)用數(shù)組就可以了。程序如下。#includeunsigned char code table=0
5、x3f,0x06,0x5b; /定義編碼數(shù)組,注意最后的分號void delay();void main()P0 = table0; /調(diào)用數(shù)組的第一個元素delay();P0 = table1;delay();P0 = table2;delay();void delay()int i,j;for(i=1000;i>0;i-)for(j=100;j>0;j-);這里要說明的是,unsigned char表明數(shù)組中的元素是無符號字符型數(shù)據(jù),code表明這是編碼數(shù)組,其編譯后不占內(nèi)存空間而是占程序存儲空間,我們知道單片機(jī)的內(nèi)存空間很小,所以這個很重要。table是數(shù)組名字,自己可以隨便
6、更換。因?yàn)閿?shù)組中的元素是從0開始排的,所以table0就是第一個元素0x3f。四、 多個數(shù)碼管同時顯示原理圖如下:其中,7SEG-MPX8-CC-BLUE是8位八段共陰數(shù)碼管,顯示為藍(lán)色。其段選線接在P0口,位選線接在P2口。讓所有數(shù)碼管顯示同一個字符。源程序如下:#includevoid main()P2 = 0; /P2口各位全為低電平,選中數(shù)碼管所有位P0 = 0x3f; /顯示字符0這個程序只比第一個程序多了一條“P2 = 0;”,這樣來實(shí)現(xiàn)位選。最終效果如下:讓任意位顯示字符。源程序如下:#includevoid main()P2 = 0xaa; /選中從左數(shù)的第1,3,5,7位數(shù)碼
7、管P0 = 0x3f;效果如下:五、 動態(tài)顯示以上的顯示均為靜態(tài)顯示,下面講述動態(tài)顯示。而到底什么是靜態(tài)顯示什么是動態(tài)顯示,等看完下面的內(nèi)容就會很清楚了。因?yàn)樯厦娑鄠€數(shù)碼管顯示時只能顯示同一個字符,怎么才能讓不同的數(shù)碼管顯示不同的字符呢?我們先完成這樣的一個程序,讓第一位數(shù)碼管顯示1,然后第二位數(shù)碼管顯示2,然后第三位數(shù)碼管顯示3。為了使程序短些,我們只控制前三位,要想讓其他五位也顯示,道理是一樣的。源程序如下:#includeunsigned char code table=0x3f,0x06,0x5b,0x4f;void delay();void main()P2 = 0xfe; /選中第
8、一位數(shù)碼管P0 = table1; /讓其顯示字符1delay(); /延時一會P2 = 0xfd; /選中第二位數(shù)碼管P0 = table2; /讓其顯示字符2delay();P2 = 0xfb; /選中第三位數(shù)碼管P0 = table3; /讓其顯示字符3delay();void delay()int i,j;for(i=1000;i>0;i-)for(j=100;j>0;j-);這個程序就是分別選中一位數(shù)碼管,讓它顯示一個字符,同單位數(shù)碼管顯示的原理是一樣的。這里你會發(fā)現(xiàn)每顯示完一個字符之后都有一個延時,這個延時有什么作 用呢?我們可以先試著改變這個延時,看會有什么效果。我們
9、先將delay()函數(shù)中的第一個for循環(huán)中的i的初值由1000,改為100,再運(yùn)行一下程 序,有什么效果?然后再將其改為10呢?這時是不是我們想要的不同數(shù)碼管同時顯示不同的字符的效果已經(jīng)出來了。效果如下:這就是上面所說的動態(tài)顯示效果。那靜態(tài)顯示與動態(tài)顯示到底有什么不同呢?很明顯,通俗的說,我們把向數(shù)碼管各位輪流送入字符編碼和位選信號,利用人眼的視 覺暫留,讓人感覺好像幾位數(shù)碼管被同時點(diǎn)亮,這樣便可以在不同的數(shù)碼管上同時顯示不同的字符的效果稱為動態(tài)顯示。打個比方,你晚上拿根點(diǎn)著的煙,在空中快 速劃過,你就會看到一條亮線,但其實(shí)它只是一個亮點(diǎn)劃過而已。如果你對它還不了解,可以到別的資料上查看一下
10、視覺暫留的相關(guān)知識。而靜態(tài)顯示就是真實(shí)的同 時選中幾位。這就是它們的根本區(qū)別。六、 消影到這里我們必須先說明一個問題了。前面我們寫程序都是全部直接寫到main()函數(shù)里的。那么你有沒有想過,main()函數(shù)里的語句從頭執(zhí)行到尾,那么 語句全部執(zhí)行完了會怎么樣呢?你會想到它會從頭再開始執(zhí)行,對吧!因?yàn)橛汕懊娴某绦蚩梢钥闯?,指令是在無限循環(huán)執(zhí)行的。但依靠這種默認(rèn)的循環(huán)并不可靠,一 般地,我們都是在程序中用一個死循環(huán)語句來實(shí)現(xiàn)無限循環(huán)的。上面的源程序的主函數(shù)可改為:void main()while(1) /死循環(huán)P2 = 0xfe;P0 = table1;delay();P2 = 0xfd;P0 =
11、 table2;delay();P2 = 0xfb;P0 = table3;delay();可以看到,我們是把所有要循環(huán)的語句都放到了一個while(1)循環(huán)中執(zhí)行的。在以后的程序中,程序的主體部分都會放到這個語句中。程序?qū)懗蛇@樣以后,你再將延時函數(shù)的延時縮減,比如:void delay()int i,j;for(i=5;i>0;i-)for(j=1;j>0;j-);這時運(yùn)行程序,是不是發(fā)現(xiàn)很亂了!效果可能如下:這就是我們所說的“拖影”。其實(shí)在真實(shí)的板子上,就算延時很長,也可以看見“拖影”現(xiàn)象。出現(xiàn)這樣的現(xiàn)象的原因是CPU的執(zhí)行速度很快,當(dāng)送入位選和段選數(shù)據(jù)后,接著又送入位選數(shù) 據(jù)
12、,但該位的段選數(shù)據(jù)還沒有送入,所以該位還保持著上次的段選數(shù)據(jù),接著該位的段選數(shù)據(jù)送入,由于視覺殘留,兩個段選數(shù)據(jù)的顯示效果重合,形成了混亂。簡 單的說,就是一位數(shù)碼管顯示了它前一位要顯示的字符和它本身要顯示的字符的重疊效果。要想避免“拖影”就必須在每位數(shù)碼管顯示完后將其關(guān)閉,我們可以加入 “P2 = 0xff;”,這樣各位數(shù)碼管都不會選中,然后下一位再顯示時就不會有影響了,這就是所謂的“消影”。我們把程序改為如下:void main()while(1)P2 = 0xfe;P0 = table1;delay();P2 = 0xff; /消影P2 = 0xfd;P0 = table2;delay(
13、);P2 = 0xff;P2 = 0xfb;P0 = table3;delay();P2 = 0xff;但是當(dāng)運(yùn)行后,你會發(fā)現(xiàn)效果并沒有變化。為什么呢?為了研究原因,我們進(jìn)行聯(lián)機(jī)調(diào)試,然后單步運(yùn)行程序,看看程序到底是怎么執(zhí)行的。關(guān)于怎么聯(lián)機(jī)調(diào)試,我們以前已經(jīng)專門講過,這里不再敘述。如下圖,先在keil中按下調(diào)試按鍵,會發(fā)現(xiàn)Proteus仿真圖已經(jīng)開始運(yùn)行。然后在keil中選擇源程序one顯示界面,并按下單步調(diào)試按鍵,它表示進(jìn)入子函數(shù)內(nèi)部,例如下面的調(diào)試過程中會進(jìn)入delay()函數(shù)的內(nèi)部。按下該按鍵后,會在第一條語句前出現(xiàn)黃色箭頭,表明這條語句還沒有執(zhí)行,下一次將會執(zhí)行該語句。再次點(diǎn)擊單步按鍵
14、,第一條語句執(zhí)行完畢,會發(fā)現(xiàn)第一位數(shù)碼管被點(diǎn)亮,因?yàn)檫€沒有賦值,所以七段都被點(diǎn)亮了。如下圖。再點(diǎn)擊單步按鍵,可以看到雖然段選已經(jīng)賦值了,但數(shù)碼管并沒有顯示。如下圖。再點(diǎn)擊單步,便進(jìn)入了delay()函數(shù)的內(nèi)部,此時數(shù)碼管也顯示出1了,如下圖。連續(xù)點(diǎn)擊單步,直到跳出delay()函數(shù),以后我們就點(diǎn)擊另一個單步按鍵,它不會進(jìn)入子函數(shù)內(nèi)部。如下圖。點(diǎn)擊單步后,執(zhí)行完P(guān)2=0xff;語句,數(shù)碼管不再顯示,如下圖。再點(diǎn)擊單步,執(zhí)行完P(guān)2=0xfd;語句,我們發(fā)現(xiàn)第二個數(shù)碼管居然顯示的是1,其實(shí)也對,因?yàn)槎芜x的數(shù)據(jù)還沒有改變呢。這正是產(chǎn)生“拖影”的原因。如下圖。再點(diǎn)擊單步,準(zhǔn)備執(zhí)行延時函數(shù)。如下圖。點(diǎn)擊單
15、步,執(zhí)行完延時函數(shù)后,顯示出了正確的字符,如下圖。因?yàn)橐呀?jīng)找到了原因,所以我們聯(lián)機(jī)調(diào)試就到這里。可以看到,在進(jìn)行聯(lián)機(jī)調(diào)試單步運(yùn)行時可以發(fā)現(xiàn)很多程序執(zhí)行的細(xì)節(jié),所以對一些不好想的問題,我們都可以通過這種方法去尋找答案。我們已經(jīng)看到程序出錯是因?yàn)橄罢Z句“P2 = 0xff;”并沒有起到應(yīng)有的作用。那怎樣才能起到作用呢?剛才在聯(lián)機(jī)調(diào)試時我們已經(jīng)發(fā)現(xiàn)只要給了數(shù)碼管位選數(shù)據(jù),它就會被點(diǎn)亮,所以我們可以先給其送入 段選數(shù)據(jù),然后給其送入位選數(shù)據(jù),這樣它應(yīng)該會顯示正確字符了,然后延時讓它亮一會,再加上消影語句,它就會被熄滅。再給第二位送入段選數(shù)據(jù),但這時數(shù)碼 管還是滅這的,它不會產(chǎn)生拖影,此時給其送入位選數(shù)據(jù),它就能顯示正確的字符了。程序可更改如下:void main()while(1)P0 = table1;P2 = 0xfe; delay();P2 = 0xff;P0 = table2;P2 = 0xfd;delay();P2 = 0xff;P0 = table3; P2 = 0xfb;delay();P2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 溝通與協(xié)調(diào)打造和諧職場環(huán)境
- 生態(tài)建筑引領(lǐng)未來商業(yè)趨勢
- 現(xiàn)代科技在股票市場分析中的應(yīng)用
- 校園餐飲消費(fèi)大數(shù)據(jù)洞察學(xué)生消費(fèi)習(xí)慣
- 2024年八年級生物下冊 6.2.1遺傳說課稿 (新版)冀教版
- 2024年八年級物理下冊 8.1認(rèn)識壓強(qiáng)說課稿 (新版)粵教滬版
- 14《普羅米修斯》(說課稿)2024-2025學(xué)年-統(tǒng)編版語文四年級上冊
- 2024年五年級數(shù)學(xué)下冊 五 分?jǐn)?shù)除法練習(xí)五說課稿 北師大版
- 2024-2025學(xué)年高中歷史 專題1 中國傳統(tǒng)文化主流思想的演變 3 宋明理學(xué)說課稿 人民版必修3
- 2024-2025學(xué)年八年級物理下冊 第十章 從粒子到宇宙 10.1 認(rèn)識分子說課稿 (新版)粵教滬版
- 圓筒混料機(jī)-設(shè)計說明書
- 蓋板涵施工工藝流程配圖豐富
- 中央導(dǎo)管相關(guān)血流感染防控
- 混合動力汽車發(fā)動機(jī)檢測與維修中職PPT完整全套教學(xué)課件
- 2023年副主任醫(yī)師(副高)-腫瘤內(nèi)科學(xué)(副高)考試歷年真題薈萃帶答案
- 產(chǎn)時子癇應(yīng)急演練文檔
- 小學(xué)美術(shù)-《神奇的肥皂粉》教學(xué)設(shè)計學(xué)情分析教材分析課后反思
- 測量管理體系內(nèi)審檢查表
- 信號與系統(tǒng)復(fù)習(xí)題及答案
- 班組月度考核評分表
- 部編版一年級下冊《道德與法治》教學(xué)工作計劃及全冊教案
評論
0/150
提交評論