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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

DDRP|=0XFF; DDRT|=0XFF; //點(diǎn)亮一個(gè)數(shù)碼管,顯示2 PTP=DisplayDecode[2]; PTT=0xfe;LED動(dòng)態(tài)顯示時(shí),按人眼的反應(yīng),刷新頻率得大于80Hz,即所有LED在12ms內(nèi)必須刷新一次。現(xiàn)有4組LED,即每段顯示3ms。這個(gè)3ms可以用軟件延遲實(shí)現(xiàn),但為提高CPU效率,一般使用定時(shí)器。hong動(dòng)態(tài)數(shù)碼管顯示與鍵盤實(shí)驗(yàn)共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,總線時(shí)鐘8M,延時(shí)為:4000*(1+2+3)/(8*106)s=3mshong動(dòng)態(tài)數(shù)碼管顯示與鍵盤實(shí)驗(yàn)共21頁,您現(xiàn)在瀏覽的是第6頁!第十四章數(shù)碼管的顯示與鍵盤識別

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

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

—鍵盤識別Page

81234567890ABCDEF14.2.4鍵盤的硬件設(shè)計(jì)

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

—鍵盤識別Page

9

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

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

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

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

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

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

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

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

12

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

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

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

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

注:a-g,DP接P0-P7,C1-C4接T0-T3121110987654321C4afC3C2bC1gcdpde121110987654321T3P0P5T2T1P1T0P6P2P7P3P4hong動(dòng)態(tài)數(shù)碼管顯示與鍵盤實(shí)驗(yàn)共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動(dòng)態(tài)數(shù)碼管顯示與鍵盤實(shí)驗(yàn)共21頁,您現(xiàn)在瀏覽的是第14頁!第十四章數(shù)碼管的顯示與鍵盤識別

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

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

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

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

—鍵盤識別Page

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

行端口輸出0000列端口輸入123456789ABCDEFY1(PA0)Y2(PA1)Y3(PA2)Y4(PA3)hong動(dòng)態(tài)數(shù)碼管顯示與鍵盤實(shí)驗(yàn)共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動(dòng)態(tài)數(shù)碼管顯示與鍵盤實(shí)驗(yàn)共21頁,您現(xiàn)在瀏覽的是第18頁!第十四章數(shù)碼管的顯示與鍵盤識別

—鍵盤識別Page

19

5V行端口輸出000011011111X1(PA4)X2(PA5)X3(PA6)X4(PA7)列端口輸入0123456789ABCDEF14.2.6鍵盤反轉(zhuǎn)法軟件設(shè)計(jì)當(dāng)所有行輸出為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)容里面會(huì)有圖紙預(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論