![單片機(jī)實(shí)例之?dāng)?shù)碼管_第1頁](http://file4.renrendoc.com/view/0e5deb72205eb3eff2a3c17036bd6643/0e5deb72205eb3eff2a3c17036bd66431.gif)
![單片機(jī)實(shí)例之?dāng)?shù)碼管_第2頁](http://file4.renrendoc.com/view/0e5deb72205eb3eff2a3c17036bd6643/0e5deb72205eb3eff2a3c17036bd66432.gif)
![單片機(jī)實(shí)例之?dāng)?shù)碼管_第3頁](http://file4.renrendoc.com/view/0e5deb72205eb3eff2a3c17036bd6643/0e5deb72205eb3eff2a3c17036bd66433.gif)
![單片機(jī)實(shí)例之?dāng)?shù)碼管_第4頁](http://file4.renrendoc.com/view/0e5deb72205eb3eff2a3c17036bd6643/0e5deb72205eb3eff2a3c17036bd66434.gif)
![單片機(jī)實(shí)例之?dāng)?shù)碼管_第5頁](http://file4.renrendoc.com/view/0e5deb72205eb3eff2a3c17036bd6643/0e5deb72205eb3eff2a3c17036bd66435.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
課題三(實(shí)例)之?dāng)?shù)碼管顯示任務(wù)一單個LED數(shù)碼管的靜態(tài)控制顯示方式任務(wù)二多個LED數(shù)碼管的動態(tài)控制顯示方式任務(wù)三0~99999999加法計數(shù)器
課題目標(biāo)本課題的任務(wù)是用單片機(jī)實(shí)現(xiàn)簡易數(shù)字顯示,演示效果如圖4-1所示。通過編程,學(xué)會在單片機(jī)上實(shí)現(xiàn)一位數(shù)字和多位數(shù)字的靜態(tài)和動態(tài)顯示控制方法,以及不同進(jìn)制計數(shù)的程序編寫方法。任務(wù)一LED數(shù)碼管的靜態(tài)顯示本任務(wù)就是將單片機(jī)與數(shù)碼管接成圖4-2所示靜態(tài)顯示方式,編程實(shí)現(xiàn)數(shù)碼管每隔0.2s的0-9數(shù)字顯示。圖4-2數(shù)碼管顯示電路圖一、任務(wù)分析所謂靜態(tài)顯示,就是當(dāng)單片機(jī)某一端口輸出一組顯示數(shù)據(jù)之后,該端口一直保持該數(shù)據(jù)輸出,維持?jǐn)?shù)碼管的顯示數(shù)字,直到端口數(shù)據(jù)改變,又保持顯示下一數(shù)據(jù)的顯示方式。在具體電路連接上,將單片機(jī)一個端口的八個端子接在一只數(shù)碼管的八個引腳上(h端為小數(shù)點(diǎn)),控制數(shù)碼管的七段LED的亮或熄,顯示器出數(shù)字,這種顯示控制方式就是靜態(tài)顯示。靜態(tài)顯示電路連接特點(diǎn)是單片機(jī)端口的每一位與數(shù)碼管的一個端相連接,相當(dāng)于單片機(jī)的一個引腳外接一只發(fā)光二極管。二、LED數(shù)碼管的結(jié)構(gòu)和工作原理。圖4-3數(shù)碼管結(jié)構(gòu)圖
數(shù)碼管實(shí)際上是由7個發(fā)光管組成“8”字形構(gòu)成的,加上小數(shù)點(diǎn)就是8個。這些段分別由字母a、b、c、d、e、f、g、dp來表示。當(dāng)數(shù)碼管特定的段加上電壓后,這些特定的段就會發(fā)亮,以形成我們眼睛看到的字樣。例如:顯示一個“3”字,那么應(yīng)當(dāng)是a亮、b亮、c亮、d亮、e不亮、f不亮、g亮、dp不亮。數(shù)碼管的內(nèi)部結(jié)構(gòu)如圖2.4所示,其中COM引腳為公共端,用來控制數(shù)碼管顯示的打開或關(guān)閉,即起到“使能”作用。根據(jù)公共端接法的不同,數(shù)碼管又分為共陰極和共陽極兩種結(jié)構(gòu),分別如圖2.4(b)和圖2.4(c)所示。共陽極就是將8個LED的陽極連接到一起組成公共端COM,接正極,當(dāng)相應(yīng)字段為低電平“0”時,可以點(diǎn)亮該字段;當(dāng)相應(yīng)字段為高電平“1”時,該字段不亮。共陰極就是將8個LED的陰極連接到一起組成公共端COM,接負(fù)極,當(dāng)相應(yīng)字段為高電平“1”時,可以點(diǎn)亮該字段;當(dāng)相應(yīng)字段為低電平“0”時,該字段不亮。數(shù)碼管段碼段名稱dpGFEDCBA對應(yīng)段碼對應(yīng)引腳P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0數(shù)字0001111113FH數(shù)字10000011006H數(shù)字2010110115BH數(shù)字3010011114FH數(shù)字40110011066H數(shù)字5011011016DH數(shù)字6011111017DH數(shù)字70000011107H數(shù)字8011111117FH數(shù)字9011011116FH
表4-1共陰數(shù)碼管顯示數(shù)字的段碼表數(shù)碼管段碼段名稱dpGFEDCBA對應(yīng)段碼對應(yīng)引腳P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0數(shù)字011000000C0H數(shù)字111111001F9H數(shù)字210100100A4H數(shù)字310110000B0H數(shù)字41001100199H數(shù)字51001001092H數(shù)字61000001082H數(shù)字711111000F8H數(shù)字81000000080H數(shù)字91001000090H
表4-2共陽數(shù)碼管顯示數(shù)字的段碼表四、程序設(shè)計要實(shí)現(xiàn)0~9的顯示,設(shè)計方法與前面彩燈花樣顯示類似,首先寫出0~9的顯示數(shù)據(jù)(表4-1中的字型碼數(shù)據(jù),注意電路中選用的是共陰或共陽數(shù)碼管一致),這些數(shù)據(jù)在程序中作數(shù)組元素。程序中將數(shù)組元素依次讀出送到端口,使數(shù)碼管顯示出對應(yīng)的數(shù)字。程序的設(shè)計框圖見圖4-5。圖4-51、C語言程序:#include<reg51.h>#defineucharunsignedcharunsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};unsignedchardispcount;voiddelay02s(){unsignedchari,j,k; for(i=10;i>0;i--) for(j=200;j>0;j--) for(k=248;k>0;k--);}voidmain(void){while(1){ for(dispcount=0;dispcount<10;dispcount++){ P1=table[dispcount]; delay02s(); } }}2、匯編語言程序:org00haa: movr0,#00h movdptr,#tabsd: mova,r0 movca,@a+dptr movp1,a lcalldelay incr0 cjner0,#10,sd sjmpaadelay: movr6,#5SS: MOVR7,#200LOOP:MOVR5,#249 DJNZR5,$ DJNZR7,LOOP DJNZR6,SS rettab: db3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh end任務(wù)二LED數(shù)碼管的動態(tài)顯示本任務(wù)就是當(dāng)單片機(jī)與數(shù)碼管接成動態(tài)顯示方式,編程實(shí)現(xiàn)數(shù)碼管的0-7數(shù)字顯示。
一、電路原理
動態(tài)顯示的電路有很多,本課題中所選用的電路如圖4-6所示。圖中用的是兩只四位數(shù)碼管。每只已將所有數(shù)碼管的a~h分別連接在一起,再將兩只四位數(shù)碼管的a~h連接在一起,即將八只數(shù)碼管八段顯示的段碼控制線連接在一起,作為整個數(shù)碼管的段碼控制。單片機(jī)端口驅(qū)動能力不足,在段碼上使用74LS373提高數(shù)碼管亮度。對每只數(shù)碼管的公共端進(jìn)行控制,使每只數(shù)碼管可以單獨(dú)顯示。電路中,將每個數(shù)碼管的COM端接位選信號dig,該引腳為低電平即接通顯示,實(shí)現(xiàn)數(shù)碼管的位控制。圖4-6數(shù)碼管原理圖三、74LS138譯碼器:
74LS138為3線-8線譯碼器,其工作原理如下:當(dāng)一個選通端(G1)為高電平,另兩個選通端(/(G2A)和/(G2B))為低電平時,可將地址端(A、B、C)的二進(jìn)制編碼在一個對應(yīng)的輸出端以低電平譯出。圖4-474LS138引腳圖真值表:
表4-274LS138功能表圖4-6數(shù)碼管原理圖1、C語言程序:#include<reg51.h>#defineucharunsignedcharsbita=P0^5;sbitb=P0^6;sbitc=P0^7;ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};uchardispcount;voiddelay02s(void){unsignedchari,j,k; for(i=10;i>0;i--) for(j=200;j>0;j--) for(k=248;k>0;k--);}voidmain(void){while(1){ for(dispcount=0;dispcount<10;dispcount++){ a=0; b=0; c=0; P1=table[dispcount]; delay02s(); } }}2、匯編語言程序:org00haa:movr0,#00hmovdptr,#tabclrp0.5clrp0.6clrp0.7sd:mova,r0movca,@a+dptrlcalldelaymovp1,aincr0cjner0,#10,sdsjmpaadelay:movr6,#5SS:MOVR7,#200LOOP:MOVR5,#249DJNZR5,$DJNZR7,LOOPDJNZR6,SSrettab:db3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fhend
如圖4-6所示電路,在電路連接上將所有要顯示的數(shù)碼管的八個端并接在單片機(jī)同一個端口的八位上,而用單片機(jī)的另一個端口的各個位分別控制各數(shù)碼管的公共端,控制數(shù)碼管是否點(diǎn)亮。在程序的控制下,快速地依次輸出要顯示各個數(shù),并同時控制對應(yīng)數(shù)碼管工作,這就是數(shù)碼管的動態(tài)顯示方式。
宏觀看同時點(diǎn)亮,微觀看依次點(diǎn)亮圖4-6數(shù)碼管原理圖
動態(tài)顯示達(dá)到一定速度時,由于人眼的視覺暫留特性,在觀察時,數(shù)碼管所有內(nèi)容如同靜態(tài)顯示一樣,不會產(chǎn)生閃爍。所以,對動態(tài)掃描的頻率有一定的要求,頻率太低,LED數(shù)碼管將出現(xiàn)閃爍現(xiàn)象。如頻率太高,由于每個LED數(shù)碼管點(diǎn)亮的時間太短,LED數(shù)碼管的亮度太低,無法看清。所以,顯示時間一般取幾個ms左右為宜。在編寫程序時,常采用調(diào)用延時子程序來達(dá)到要求的保持時間。程序工作時,使電路選通某一位數(shù)碼管后,該數(shù)碼管被點(diǎn)亮后并保持一定的時間。
下面,以在數(shù)碼管上從左到右依次顯示出8個數(shù)字(0~7)為例,編寫動態(tài)顯示程序。程序中將要顯示的八個數(shù)字放在一個數(shù)組中(該數(shù)組取名為display_data)。如果從段碼輸出端口來看,動態(tài)顯示程序的顯示段碼輸出的過程,其實(shí)質(zhì)和靜態(tài)顯示八個數(shù)字是一樣的,依次輸出各個段碼;從位碼端口看,要哪只數(shù)碼管顯示,就在那只數(shù)碼對應(yīng)位輸出1,顯示一個數(shù)字后,則下一位輸出高電平,這與跑馬燈的控制是一樣的。將這兩個程序結(jié)合起來,就是動態(tài)顯示程序,流程圖如圖4-7所示。二、程序分析圖4-7動態(tài)顯示流程圖變量賦初值化將數(shù)組display_data中第i個元素送段碼端口等待一段時間Yes
i<8No變量指向下一個數(shù)據(jù)輸出位碼控制數(shù)據(jù)1、C語言程序:#include<reg51.h>#defineucharunsignedcharucharcodetabledu[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};ucharcodetablewe[]={0x1f,0x3f,0x5f,0x7f,0x9f,0xbf,0xdf,0xff};unsignedchardispcount;voiddelaynms(unsignedcharn){unsignedchari,j; for(i=n;i>0;i--) for(j=250;j>0;j--);}voidmain(void){while(1){ for(dispcount=0;dispcount<8;dispcount++){ P1=tabledu[dispcount]; P0=tablewe[dispcount]; delaynms(20);//10ms,12MHz } }}2、匯編語言:org00haa:movr0,#00hsd:movdptr,#tab2mova,r0movca,@a+dptrmovp0,amova,r0movdptr,#tab1movca,@a+dptrmovp1,alcalldelayincr0cjner0,#8,sdsjmpaadelay:movr6,#5SS:MOVR7,#200LOOP:MOVR5,#249DJNZR5,$DJNZR7,LOOPDJNZR6,SSrettab1:db3fh,06h,5bh,4fh,66h,6dh,7dh,07htab2:db1fh,3fh,5fh,7fh,9fh,0bfh,0dfh,0ffhend思考1.若位控制不是由74Ls138控制,而是由P0口直接控制,程序應(yīng)該做如何修改?2.兩種位控制方式,各有什么優(yōu)缺點(diǎn)?任務(wù)三0~99999999加法計數(shù)器本任務(wù)是實(shí)現(xiàn)0~99999999的加1計數(shù)顯示。程序設(shè)計分析1.需要定義一個變量,記錄加1后的結(jié)果,該變量初值為0,問該變量定義為何種類型?
unsignedcharx[8]={0};2.對x加13.將x送顯,4.延時5.跳轉(zhuǎn)到2.#include<reg51.h>unsignedcharcodetabledu[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};unsignedcharcodetablewe[]={0x1f,0x3f,0x5f,0x7f,0x9f,0xbf,0xdf,0xff};voiddelay02s(void){unsignedchari,j,k; for(i=10;i>0;i--) for(j=200;j>0;j--) for(k=248;k>0;k--);}voidmain(void){ unsignedchari; unsignedcharx[8]={0}; while(1){ //2.對x加1 for(i=0;i<8;i++){ x[i]++; if(x[i]>=10){ x[i]=0; } else break; } //3.將x送顯,先送x[i]的段碼,再送x[i]的位碼 for(i=0;i<8;i++){ P1=tabledu[x[i]]; P0=tablewe[i]; //4.延時 delay02s(); } }}任務(wù)四24進(jìn)制計數(shù)器本任務(wù)實(shí)現(xiàn)24進(jìn)制計數(shù)器,計數(shù)范圍為0~23。程序設(shè)計分析1.24進(jìn)制計數(shù)和前面的十進(jìn)制計數(shù)不同的是,當(dāng)計數(shù)到24時,個位數(shù)要變?yōu)?,同時十位數(shù)也要變?yōu)?。需要定義一個變量,記錄加1后的結(jié)果,該變量初值為0,問該變量定義為何種類型?
unsignedcharx=0;2.對x加1,若x==24,則x=0;3.將x送顯,個位a=x%10,b=x/10;4.延時5.跳轉(zhuǎn)到2.#include<reg51.h>unsignedcharcodetabledu[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};unsignedcharcodetablewe[]={0x1f,0x3f,0x5f,0x7f,0x9f,0xbf,0xdf,0xff};voiddelay02s(void){unsignedchari,j,k; for(i=10;i>0;i--) for(j=200;j>0;j--) for(k=248;k>0;k--);}voidmain(void){ unsignedchardispcount,i; unsignedcharx=0,a,b; while(1){ //2.對x加1 x++; if(x==24)x=0; //3.將x送顯,求個位a,十位b, a=x%10; P1=tabledu[a]; P0=tablewe[0]; //4.延時 delay02s(); b=x%10; P1=tabledu[b]; P0=tablewe[1]; //4.延時 delay02s(); }}任務(wù)五簡易數(shù)字鐘要求利用
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025標(biāo)準(zhǔn)版?zhèn)€人購房合同書
- 2025合伙買車合同
- 2024-2025學(xué)年新教材高中生物 第二章 基因和染色體的關(guān)系 微專題四 伴性遺傳的解題方法說課稿 新人教版必修第二冊
- 預(yù)制樓板施工方案
- 肇慶鋼板樁支護(hù)施工方案
- 別墅電梯出售合同范例
- 2023九年級數(shù)學(xué)下冊 第二十九章 投影與視圖29.1 投影第2課時 正投影說課稿 (新版)新人教版001
- 2024年四年級英語上冊 Unit 3 Let's Go Lesson 15 In the City說課稿 冀教版(三起)
- 自然補(bǔ)償管道施工方案
- 2024年四年級英語上冊 Unit 1 My classroom The fifth period(第五課時)說課稿 人教PEP
- 統(tǒng)編《道德與法治》三年級下冊教材分析
- 清淤邊坡支護(hù)施工方案
- 國際尿失禁咨詢委員會尿失禁問卷表
- 國開行政管理論文行政組織的變革及其現(xiàn)實(shí)性研究
- 運(yùn)動技能學(xué)習(xí)中的追加反饋
- 《淄博張店區(qū)停車問題治理現(xiàn)狀及優(yōu)化對策分析【開題報告+正文】15000字 》
- 常用電子元器件基礎(chǔ)知識演示
- GB/T 32918.4-2016信息安全技術(shù)SM2橢圓曲線公鑰密碼算法第4部分:公鑰加密算法
- 2023年藥事法規(guī)教學(xué)案例庫及案例分析
- 北京市水務(wù)安全生產(chǎn)風(fēng)險評估指南
- 吸引器教學(xué)講解課件
評論
0/150
提交評論