版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
單片機的顯示控制
段顯示(7段、米字型等)和點陣顯示(5×8、8×8點陣等)。一、單片機的顯示控制發(fā)光二極管LED(LightEmittingDiode)顯示器液晶LCD(LiquidCrystalDisplay)顯示器CRT顯示器……(一)LED顯示器結構
LED顯示器內部由多個發(fā)光二極管組成。(二)顯示字形與字段碼關系aabcdefgabcedgfGNDGND7691254938dpdpD7D6D5D4D3D2D1D0字dpgfedcba011000000111111001210100100310110000410011001510010010610000010711111000810000000910010000LED數碼管顯示字形與字段碼關系
顯示字形共陽極字段碼共陰極字段碼顯示字形共陽極字段碼共陰極字段碼0C0H3FH990H6FH1F9H06HA88H77H2A4H5BHb83H7CH3B0H4FHCC6H39H499H66HdA1H5EH592H6DHE86H79H682H7DHF8EH71H7F8H07H“熄滅”FFH00H880H7FH
數碼管與P1口接口連接電路P1=0x3F(共陰極)P1=0xC0(共陽極)dpgfedcba(三)LED數碼顯示方式及電路特點:每個數碼管必須接一個8位鎖存器用來鎖存待顯示的字形碼。送入一次字形碼顯示字形一直保持,直到送入新字形碼為止。優(yōu)點:占用CPU時間少,顯示便于監(jiān)測和控制。缺點:硬件電路比較復雜,成本較高。靜態(tài)顯示接口電路有許多種,1.靜態(tài)顯示方式:并行口靜態(tài)顯示電路字段碼位選線輪流向各位數碼管送出字形碼和相應的位選,利用發(fā)光管的余輝和人眼視覺暫留作用,使人的感覺好像各位數碼管同時都在顯示。(2)動態(tài)顯示特點:將所有數碼管的段選線并聯在一起,通過控制位選信號來控制數碼管的點亮。數碼管采用動態(tài)掃描顯示。動態(tài)顯示的亮度比靜態(tài)顯示要差一些,所以在選擇限流電阻時應略小于靜態(tài)顯示電路中的限流電阻。4位LED動態(tài)顯示電路5.2.4應用實例一維數組大量用在查表程序中。由于單片機的數據處理能力有限,因此對一些復雜的、高精度的數學運算往往無能為力,這時候就可以把數組作為一個表格,預先存儲在存儲器中,需要的時候可以通過查找數組元素快速地獲得其中的數據。對于這些運行時無需修改的數組,通常將其定義為code存儲器類型,將其存放在程序存儲器中以節(jié)省數據存儲器的空間。例一只數碼管靜態(tài)顯示案例例一只數碼管靜態(tài)顯示案例#include<reg51.h>unsignedcharseg[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};main(){unsignedinti,j;while(1){for(i=0;i<10;i++){P0=seg[i];for(j=50000;j>0;j--);}}}例多只數碼管靜態(tài)顯示案例74LS373功能表輸入
輸出OELEDQLHHHLHLLLL×Q不變H××高阻態(tài)例多只數碼管靜態(tài)顯示案例#include<reg51.h>unsignedcharseg[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};voidmain(){unsignedinti,ctr=0xfe;P2=0xff;for(i=0;i<3;i++){P0=seg[i];P2&=ctr;ctr<<=1;}while(1);}例數碼管動態(tài)顯示案例例數碼管動態(tài)顯示#include<reg51.h>unsignedcharseg[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x70};unsignedcharcon[4]={0xfe,0xfd,0xfb,0xf7};unsignedinti=0;main(){TMOD=2;TH0=6;TL0=6;EA=1;ET0=1;TR0=1;while(1);}voidisr_time0()interrupt1{P2=con[i];P1=seg[i];i++;if(i==4)i=0;}案例設計計時器案例設計計時器#include<reg51.h>unsignedcharseg[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};unsignedcharcon[6]={0x1,0x2,0x4,0x8,0x10,0x20};unsignedcharmm=0;unsignedcharss=0;unsignedcharhh=0;unsignedcharcount=100;main(){TMOD=1;TH0=-10000>>8;TL0=-10000;EA=1;ET0=1;TR0=1;while(1);}voidisr_time0()interrupt1{unsignedinti=0,j;unsignedchartime[6];TH0=-10000>>8;TL0=-10000;count--;if(count==0)
{
count=100;ss++;if(ss==60)
{ss=0;mm++; if(mm==60)
{mm=0;hh++; if(hh==24)hh=0;
}
}
}time[0]=hh/10;time[1]=hh%10;time[2]=mm/10;time[3]=mm%10;time[4]=ss/10;time[5]=ss%10;for(i=0;i<6;i++){P2=con[i];if(i==1||i==3)P1=seg[time[i]]&0x7f;elseP1=seg[time[i]];for(j=100;j>0;j--);}}在現代工業(yè)控制和一些智能化儀器儀表中,越來越多的場所需要用點陣圖形顯示器顯示數字、字母或漢字,例如日常生活中經常見到的電梯樓層的顯示與一些戶外廣告,都是用LED點陣作為顯示器。LED點陣中要用到的一個典型數據結構就是二維數組。不論顯示圖形還是文字,都是控制與組成這些圖形或文字的各個點所在位置相對應的LED器件發(fā)光。通常事先把需要顯示的圖形文字轉換成點陣圖形,再按照顯示控制的要求以一定的格式形成顯示數據。對于只控制通斷的圖文顯示屏來說,每個LED發(fā)光器件占據數據中的1位(lbit),在需要該LED器件發(fā)光的數據中相應的位填1,否則填0。當然,根據控制電路的安排,相反的定義同樣是可行的。LED點陣的顯示這樣依照所需顯示的圖形文字,按顯示屏的各行各列逐點填寫顯示數據,就可以構成一個顯示數據文件。顯示圖形的數據文件,其格式相對自由,只要能夠滿足顯示控制的要求即可,例如,可以用一個5×7(5列7行)的LED點陣顯示數字“1”或“2”LED點陣的顯示把同一列發(fā)光管的陽極連接在一起,把所有同一行的陰極連在一起。先送出對應第1列發(fā)光管亮滅的數據,然后選通第1列使其點亮一段時間后熄滅;再送出第2列的數據,然后選通第2列使其點亮相同的時間后熄滅;第5列之后又重新點亮第1列,這樣反復輪回,當這樣輪回的速度足夠快時(每秒24次以上),由于人眼的視覺暫留現象就能看到顯示屏上穩(wěn)定的顯示了。LED點陣的顯示設用P1的低7位控制行的顯示(最低位對應最上端的LED),用(P3的低5位控制列的顯示??梢钥闯鰪淖蟮接颐恳涣械娘@示數據依次為0x00,0x42,0x7f,0x40,0x00。因此可以用下面的數組表示“1”:{0x00,0x42,0x7f,0x40,0x00}同理,可以用下面的數組表示“2”:{0x42,0x61,0x51,0x49,0x46}LED點陣的顯示unsignedcharcodedigit_code[10][5]={{0x3e,0x41,0x41,0x41,0x3e},//0{0x00,0x42,0x7f,0x40,0x00},//1{0x42,0x61,0x51,0x49,0x46},//2
{0x22,0x41,0x49,0x49,0x36},//3{0x18,0x14,0x12,0x7f,0x10},//4{0x27,0x45,0x45,0x45,0x39},//5{0x3c,0x4a,0x49,0x49,0x30},//6{0x01,0x71,0x09,0x05,0x36},//7{0x36,0x49,0x49,0x49,0x36},//8{0x06,0x49,0x49,0x29,0x1e}//9};LED點陣的顯示unsignedcharcodedigit_code[10][5]={{0x41,0x3e,0x3e,0x3e,0x41},//0{0x7f,0x3d,0x00,0x3f,0x7f},//1{0x3d,0x1e,0x2e,0x36,0x39},//2{0x5d,0x3e,0x36,0x36,0x49},//3{0x67,0x6b,0x6d,0x00,0x6f},//4{0x58,0x3a,0x3a,0x3a,0x46},//5{0x43,0x35,0x36,0x36,0x4f},//6{0x7e,0x0e,0x76,0x7a,0x7d},//7{0x49,0x36,0x36,0x36,0x49},//8{0x79,0x36,0x36,0x56,0x61}//9};D0D1D2D3D4D5D6LED點陣的顯示LED點陣的顯示5×7LED點陣的控制電路如右圖所示。由于LED點陣中發(fā)光管的數量較多,單片初本身的端口達不到控制的要求,因此對于LED點陣的控制一般要對單片機的端口進行擴展。但本例主要介紹二維數組的應用,故對這些枝節(jié)問題沒有過多地考慮,仍直接用單片機端作為列驅動。LED點陣的顯示在程序中定義了一個delay()函數,該函數是一個延時,確定了輪流顯示字符時每個字符顯示的時間;定時器0初始化為24MHz下的4ms中斷,這個4ms是顯示某個字符時每一列顯示的持續(xù)時間,5列循環(huán)顯示,直到上述的delav()所確定的時間段耗完,轉去顯示下一個字符。#include<reg51.h>unsignedcharcodedigit_code[10][5]={{0x41,0x3e,0x3e,0x3e,0x41},//0{0x7f,0x3d,0x00,0x3f,0x7f},//1{0x3d,0x1e,0x2e,0x36,0x39},//2{0x5d,0x3e,0x36,0x36,0x49},//3{0x67,0x6b,0x6d,0x00,0x6f},//4{0x58,0x3a,0x3a,0x3a,0x46},//5{0x43,0x35,0x36,0x36,0x4f},//6{0x7e,0x0e,0x76,0x7a,0x7d},//7{0x49,0x36,0x36,0x36,0x49},//8{0x79,0x36,0x36,0x56,0x61}//9};用二維數組實現LED點陣的顯示voidmain(){init_time0();while(1){delay();number=(number+1)%10;}}voiddelay(){unsignedinti,j;for(i=0;i<1000;i++)for(j=0;j<500;j++);}用二維數組實現LED點陣的顯示unsignedcharnumber=0;unsignedcharcolumn=0;void
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年泰山職業(yè)技術學院單招職業(yè)技能考試備考試題帶答案解析
- 2026年廈門理工學院高職單招職業(yè)適應性測試備考題庫帶答案解析
- 2026年石家莊信息工程職業(yè)學院高職單招職業(yè)適應性測試模擬試題帶答案解析
- 2026年山東電子職業(yè)技術學院單招職業(yè)技能筆試模擬試題帶答案解析
- 有機化學品循環(huán)利用體系構建
- 2025年內江人事消防考試及答案
- 2025年內蒙古國航筆試及答案
- 2025年省考筆試第三沒進面試及答案
- 2025年河南科技廳事業(yè)單位考試及答案
- 共價鍵(第一課時)課件高二上學期化學人教版選擇性必修
- 碎石技術供應保障方案
- 23秋國家開放大學《機電一體化系統設計基礎》形考作業(yè)1-3+專題報告參考答案
- 開封銀行健康知識講座
- 垃圾房改造方案
- 2023年工裝夾具設計工程師年終總結及下一年計劃
- 閉合導線平差計算表-電子表格自動計算
- 第七章腭裂課件
- 《大衛(wèi)·科波菲爾》
- 電子檔案需求規(guī)格說明書內容完整
- 農產物料干燥技術物料干燥與貯藏
- GB/T 5231-2022加工銅及銅合金牌號和化學成分
評論
0/150
提交評論