hong動態(tài)數(shù)碼管顯示與鍵盤實驗_第1頁
hong動態(tài)數(shù)碼管顯示與鍵盤實驗_第2頁
hong動態(tài)數(shù)碼管顯示與鍵盤實驗_第3頁
hong動態(tài)數(shù)碼管顯示與鍵盤實驗_第4頁
hong動態(tài)數(shù)碼管顯示與鍵盤實驗_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

第十四章數(shù)碼管的顯示與鍵盤識別14.1數(shù)碼管的顯示14.1.17段數(shù)碼管原理與結(jié)構(gòu)14.1.27段數(shù)碼管編碼14.1.3數(shù)碼管動態(tài)掃描14.1.4數(shù)碼管顯示硬件設計14.1.5數(shù)碼管顯示軟件設計14.2鍵盤識別14.2.1開關與鍵盤14.2.2鍵盤的消抖問題14.2.3鍵盤的識別功能14.2.4鍵盤的硬件設計14.2.5鍵盤掃描法軟件設計14.2.6鍵盤的掃描策略Page

1hong動態(tài)數(shù)碼管顯示與鍵盤實驗共21頁,您現(xiàn)在瀏覽的是第1頁!Page

2第十四章數(shù)碼管的顯示與鍵盤識別

—數(shù)碼管的顯示14.1.17段數(shù)碼管原理與結(jié)構(gòu)把7個細長的LED排成‘日’字型8個LED,使用一個公用端,共陽型:所有LED的陽極連在一起,共陰型:所有LED的陰極連在一起單獨控制每個段的亮滅,可以表示出數(shù)字0~9使用多個數(shù)碼管表示數(shù)字應用非常廣泛多種顏色,多種尺寸hong動態(tài)數(shù)碼管顯示與鍵盤實驗共21頁,您現(xiàn)在瀏覽的是第2頁!Page

3第十四章數(shù)碼管的顯示與鍵盤識別

—數(shù)碼管的顯示14.1.27段數(shù)碼管編碼D6D5D4D3D2D1D0共陰級NgfedcBa字形碼01111113F111062111115B3111114F41111665111116D61111117D711107811111117F91111116F共陰型:1–表示點亮0–表示熄滅共陽型:取反每一個能夠顯示的字符都有一個對應的段碼。bcdefgaDPhong動態(tài)數(shù)碼管顯示與鍵盤實驗共21頁,您現(xiàn)在瀏覽的是第3頁!Page

4第十四章數(shù)碼管的顯示與鍵盤識別

—數(shù)碼管的顯示14.1.3數(shù)碼管動態(tài)掃描通過段控制信息確定數(shù)碼管顯示的數(shù)字(多位復用)通過位控制信號使得任意時刻只有一位數(shù)碼管處于顯示狀態(tài)利用視覺暫留現(xiàn)象,定時更改位控制信息和段控制信息,得到穩(wěn)定的數(shù)字顯示多個LED同時點亮的電流都經(jīng)過公共端,MCU的IO無法承受,必須使用三極管為了減小MCU的灌入電流,段控制端都連接了輸出驅(qū)動器74LS07(PNP:集電極開路,高壓輸出驅(qū)動器)段控制位控制4個共陽極數(shù)碼管注:所有引腳都是低電平有效hong動態(tài)數(shù)碼管顯示與鍵盤實驗共21頁,您現(xiàn)在瀏覽的是第4頁!Page

5第十四章數(shù)碼管的顯示與鍵盤識別

—數(shù)碼管的顯示14.1.4數(shù)碼管顯示軟件設計顯示一位數(shù)字:

constunsignedcharDisplayDecode[]={~0x3f,~0x06,~0x5b,~0x4f,~0x66,~0x6d,~0x7d,~0x07,~0x7f,~0x6f,~0x77,~0x7c,~0x39,~0x5e,~0x79,~0x71};//0-9ABCDEF

DDRP|=0XFF; DDRT|=0XFF; //點亮一個數(shù)碼管,顯示2 PTP=DisplayDecode[2]; PTT=0xfe;LED動態(tài)顯示時,按人眼的反應,刷新頻率得大于80Hz,即所有LED在12ms內(nèi)必須刷新一次?,F(xiàn)有4組LED,即每段顯示3ms。這個3ms可以用軟件延遲實現(xiàn),但為提高CPU效率,一般使用定時器。hong動態(tài)數(shù)碼管顯示與鍵盤實驗共21頁,您現(xiàn)在瀏覽的是第5頁!Page

6第十四章數(shù)碼管的顯示與鍵盤識別

—數(shù)碼管的顯示示例程序//unsignedcharshowdata[4];

voiddelay(unsignedintcountert)//3ms { unsignedinti,j; for(i=0;i<countert;i++) for(j=0;j<4000;)j++; }123/1晶振16M,總線時鐘8M,延時為:4000*(1+2+3)/(8*106)s=3mshong動態(tài)數(shù)碼管顯示與鍵盤實驗共21頁,您現(xiàn)在瀏覽的是第6頁!第十四章數(shù)碼管的顯示與鍵盤識別

—鍵盤識別14.2.2鍵盤的消抖問題按鍵用于產(chǎn)生一個脈沖,1個MCU的IO口可以檢查一個按鍵的狀態(tài)按下和釋放的時刻會有抖動需要設計硬件消抖電路或軟件消抖硬件消抖:阻容濾波或雙穩(wěn)態(tài)觸發(fā)器(P180)軟件消抖:延時等待(12ms),時間長度與機械彈性有關Page

7voiddelay(void){unsignedinti,j;for(i=0;i<4;i++)for(j=0;j<4000;)j++;}12mshong動態(tài)數(shù)碼管顯示與鍵盤實驗共21頁,您現(xiàn)在瀏覽的是第7頁!第十四章數(shù)碼管的顯示與鍵盤識別

—鍵盤識別Page

81234567890ABCDEF14.2.4鍵盤的硬件設計

5V行端口輸出000011011111Y1X1Y2Y3Y4X2X3X4列端口輸入0123456789ABCDEF注:將MCUI/O口輸入端的內(nèi)部上拉電阻使能鍵碼鍵值行列式鍵盤hong動態(tài)數(shù)碼管顯示與鍵盤實驗共21頁,您現(xiàn)在瀏覽的是第8頁!第十四章數(shù)碼管的顯示與鍵盤識別

—鍵盤識別Page

9

5V行端口輸出000011011111X1(PA4)X2(PA5)X3(PA6)X4(PA7)列端口輸入0123456789ABCDEF14.2.5鍵盤掃描法軟件設計當所有行輸出為0,列輸入碼若不全為1,說明有鍵按下;令一行輸出為0,其余行輸出為1,列輸入碼若不全為1,說明該行有鍵按下根據(jù)行輸出碼和列輸入碼中同時為0的行號和列號,可以確定鍵號。多鍵識別時需要依次掃描所有行(shift+A)竄鍵問題:軟件處理連續(xù)輸入問題:需要考慮掃描策略Y1(PA0)Y2(PA1)Y3(PA2)Y4(PA3)hong動態(tài)數(shù)碼管顯示與鍵盤實驗共21頁,您現(xiàn)在瀏覽的是第9頁!第十四章數(shù)碼管的顯示與鍵盤識別

—鍵盤識別Page

101234567890ABCDEF鍵值表:constunsignedcharKeyDecode[]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x00,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f};

行端口輸出000011011111Y1X1Y2Y3Y4X2X3X4列端口輸入0123456789ABCDEFhong動態(tài)數(shù)碼管顯示與鍵盤實驗共21頁,您現(xiàn)在瀏覽的是第10頁!反轉(zhuǎn)法示例程序:

unsignedcharKeyScan1()//反轉(zhuǎn)法{unsignedcharKeyvalue1;

Keyvalue1=0xFF;

DDRA=0x0F;

PORTA=0xF0;

if((PORTA&0xF0)!=0xF0)

{

Show();

if((PORTA&0xF0)!=0xF0){temp1=PORTA&0xF0;

DDRA=0xF0;PORTA=0x0F;//Show();asmnop;asmnop;temp2=PORTA&0x0F;temp=temp1|temp2;while((PORTA&0x0F)!=0x0F)Show(); switch(temp) { case0xee:Keyvalue1=1;break; case0xde:Keyvalue1=2;break;// }

}

} return(Keyvalue1);}第十四章數(shù)碼管的顯示與鍵盤識別

—鍵盤識別Page

115V000011011111Y1(PA0)X1(PA4)Y2(PA1)Y3(PA2)Y4(PA3)X2(PA5)X3(PA6)X4(PA7)0123456789ABCDEFhong動態(tài)數(shù)碼管顯示與鍵盤實驗共21頁,您現(xiàn)在瀏覽的是第11頁!一、實驗任務

(1)在8位數(shù)碼管上顯示班級和學號,之間用小數(shù)點分隔。

(2)在4個數(shù)碼管上實現(xiàn)“0”字符跑馬燈

(3)編制實驗一中的已知年月,求天數(shù)的C程序,將天數(shù)顯示在數(shù)碼管中間兩位上,前后放上分隔符“__”例如:

(4)鍵盤輸入年和月,在數(shù)碼管上顯示對應的天數(shù)。

(5)鍵盤鍵盤輸入班級和學號,并在8位數(shù)碼管上顯示。

(6)自由發(fā)揮,如:

組合鍵:F+1,顯示班級;F+2,顯示學號反轉(zhuǎn)法識別鍵盤編制函數(shù)y=3*x+4,x由鍵盤輸入,y用數(shù)碼管顯示菜單Page

12

實驗三、數(shù)碼管的顯示與鍵盤識別

hong動態(tài)數(shù)碼管顯示與鍵盤實驗共21頁,您現(xiàn)在瀏覽的是第12頁!Page

13第十四章數(shù)碼管的顯示與鍵盤識別

—數(shù)碼管的顯示14.1.4數(shù)碼管顯示硬件設計實驗板上有4位數(shù)碼管,共陽極結(jié)構(gòu),引出12根連線,8根段控制,4根位控制,對應關系如下:實驗中可將段控制連接到P口,將位控制連接到T口,連線關系如下:

注:a-g,DP接P0-P7,C1-C4接T0-T3121110987654321C4afC3C2bC1gcdpde121110987654321T3P0P5T2T1P1T0P6P2P7P3P4hong動態(tài)數(shù)碼管顯示與鍵盤實驗共21頁,您現(xiàn)在瀏覽的是第13頁!Page

14第十四章數(shù)碼管的顯示與鍵盤識別

—數(shù)碼管的顯示示例程序//unsignedcharshowdata[4];

voidShow() { unsignedcharDisplayNumber; PTT=0x0f; for(DisplayNumber=0;DisplayNumber<4;DisplayNumber++) { PTP=DisplayDecode[showdata[DisplayNumber]]; if(DisplayNumber==2)PTP&=0x7f; switch(DisplayNumber) { case0: PTT=0xfe; break; case1: PTT=0xfd; break; case2: PTT=0xfb; break; default: PTT=0xf7; break; } delay(1); } }hong動態(tài)數(shù)碼管顯示與鍵盤實驗共21頁,您現(xiàn)在瀏覽的是第14頁!第十四章數(shù)碼管的顯示與鍵盤識別

—鍵盤識別14.2.1開關與鍵盤開關(Switch)開關有兩種狀態(tài)-閉合和斷開船形開關,撥位開關按鍵:帶有自恢復裝置的開關,常開常閉型各種形狀,各種尺寸耐高壓,輕觸式,帶指示鍵盤:由多個按鍵組合而成為了區(qū)分按鍵,給每個按鍵安排了一個代碼,稱鍵碼。編碼鍵盤和非編碼鍵盤前者較復雜,較貴。后者較簡單,極便宜。非編碼鍵盤分為獨立式鍵盤和行列式鍵盤Page

15hong動態(tài)數(shù)碼管顯示與鍵盤實驗共21頁,您現(xiàn)在瀏覽的是第15頁!第十四章數(shù)碼管的顯示與鍵盤識別

—鍵盤識別14.2.3鍵盤的識別功能(掃描法)鍵盤的硬件設計分為獨立式按鍵和行列式鍵盤結(jié)構(gòu)適用于行列式鍵盤的逐行掃描法:有無鍵按下軟件延時消抖掃描求鍵碼等待鍵釋放查表求鍵值Page

16hong動態(tài)數(shù)碼管顯示與鍵盤實驗共21頁,您現(xiàn)在瀏覽的是第16頁!X4(PA7)X3(PA6)X2(PA5)X1(PA4)第十四章數(shù)碼管的顯示與鍵盤識別

—鍵盤識別Page

170實驗板上有一個4*4的薄膜鍵盤,板上無上拉電阻,接口是X1-4、Y1-4,實驗中可將其連接到PORTA口上,Y1-4(PA0-3)為輸出,X1-4(PA4-7)做為輸入,使能PORTA的上拉電阻

行端口輸出0000列端口輸入123456789ABCDEFY1(PA0)Y2(PA1)Y3(PA2)Y4(PA3)hong動態(tài)數(shù)碼管顯示與鍵盤實驗共21頁,您現(xiàn)在瀏覽的是第17頁!掃描法示例程序:unsignedcharKeyScan(){unsignedcharInput,Output,Keynumber,Keyvalue1,i;Keyvalue1=0xFF;Output=0xF0;PORTA=Output;Input=PORTA>>4; if(Input!=0x0F) { delay(4); Input=PORTA>>4; if(Input!=0x0F){ Output=0x01; for(i=0;i<RowSize;i++){ PORTA=~Output; Input=PORTA>>4; if(Input!=0x0F){ switch(Input){ case0x0E:Keynumber=0;break; case0x0D:Keynumber=1;break; case0x0B:Keynumber=2;break; case0x07:Keynumber=3;break;} Keynumber=Keynumber+i*ColumnSize; Keyvalue1=KeyDecode[Keynumber];break;} elseOutput<<=1; } } } return(Keyvalue1);}第十四章數(shù)碼管的顯示與鍵盤識別

—鍵盤識別Page

185V000011011111Y1(PA0)X1(PA4)Y2(PA1)Y3(PA2)Y4(PA3)X2(PA5)X3(PA6)X4(PA7)0123456789ABCDEFhong動態(tài)數(shù)碼管顯示與鍵盤實驗共21頁,您現(xiàn)在瀏覽的是第18頁!第十四章數(shù)碼管的顯示與鍵盤識別

—鍵盤識別Page

19

5V行端口輸出000011011111X1(PA4)X2(PA5)X3(PA6)X4(PA7)列端口輸入0123456789ABCDEF14.2.6鍵盤反轉(zhuǎn)法軟件設計當所有行輸出為0,列輸入碼若不全為1,說明有鍵按下;讀入列值,存入temp1;令所有列輸出為0,讀入行值,存入temp2;temp=temp1|temp2;查

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論