單片機(jī)原理:10-2鍵盤顯示器接口-鍵盤接口-C-FROM_第1頁
單片機(jī)原理:10-2鍵盤顯示器接口-鍵盤接口-C-FROM_第2頁
單片機(jī)原理:10-2鍵盤顯示器接口-鍵盤接口-C-FROM_第3頁
單片機(jī)原理:10-2鍵盤顯示器接口-鍵盤接口-C-FROM_第4頁
單片機(jī)原理:10-2鍵盤顯示器接口-鍵盤接口-C-FROM_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

付費下載

下載本文檔

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

文檔簡介

第5章單片機(jī)的開關(guān)檢測、鍵盤輸入

與顯示的接口設(shè)計

15.5開關(guān)檢測案例【例5-4】

如圖5-4,P1.0和P1.1引腳接有兩只開關(guān)S0和S1,兩引腳上的高低電平共4種組合,4種組合分別點亮P2.0~P2.3引腳控制的4只LED,即S0、S1均閉合,LED0亮,其余滅;S1閉合、S0打開,LED1亮,其余滅;S0閉合、S1打開,LED2亮,其余滅;S0、S1均打開,LED3亮,其余滅。編程實現(xiàn)此功能。參考程序:3圖5-4

開關(guān)檢測指示器2接口電路與仿真#include<reg51.h> //包含頭文件reg51.hvoidmain() //主函數(shù)main(){ charstate; do {

P1=0xff; //P1口為輸入

state=P1; //讀入P1口的狀態(tài),送入state

state=state&0x03; //屏蔽P1口的高6位

switch(state) //判P1口低2位開關(guān)狀態(tài)

{ case0:P2=0x01;break;//P1.1、P1.0=00,點亮P2.0腳LED

case1:P2=0x02;break;//P1.1、P1.0=01,點亮P2.1腳LED

case2:P2=0x04;break;//P1.1、P1.0=10,點亮P2.2腳LED

case3:P2=0x08;break;//P1.1、P1.0=11,點亮P2.3腳LED

} }while(1);}45.6.2獨立式鍵盤接口設(shè)計案例

5圖5-23

獨立式鍵盤的接口電路1.獨立式鍵盤的查詢工作方式【例5-10】對圖5-23所示獨立式鍵盤,用查詢方式實現(xiàn)鍵盤掃描,根據(jù)按下不同按鍵,對其進(jìn)行處理。掃描程序如下:#include<reg51.h>voidkey_scan(void){ unsignedcharkeyval

do { P1=0xff; //P1口為輸入

keyval=P1; //從P1口讀入鍵盤狀態(tài)

keyval=~keyval; //鍵盤狀態(tài)求反

6switch(keyval) { case1:……; //處理按下的k1鍵,“……”為處理程序 break; //跳出switch語句 case2:……; //處理按下的k2鍵

break; //跳出switch語句 case4:……; //處理按下的k3鍵

break; //跳出switch語句

case8:……; //處理按下的k4鍵

break; //跳出switch語句

case16:……; //處理按下的k5鍵

break; //跳出switch語句

case32:……; //處理按下的k6鍵

break; //跳出switch語句

case64:……; //處理按下的k7鍵

break; //跳出switch語句

case128:……; //處理按下的k8鍵

break; //跳出switch語句

default: break; //無按下鍵處理

}} while(1);}82.獨立式鍵盤的中斷掃描方式前面介紹查詢方式獨立式鍵盤接口設(shè)計與程序設(shè)計。為提高單片機(jī)掃描鍵盤的工作效率,可采用中斷掃描方式,只有在鍵盤有鍵按下時,才進(jìn)行掃描與處理??梢娭袛鄴呙璺绞降逆I盤實時性強(qiáng),工作效率高。【例5-12】設(shè)計一采用中斷掃描方式獨立式鍵盤,只有在鍵盤有按鍵按下時,才進(jìn)行處理,接口電路見圖5-25。當(dāng)鍵盤中有鍵按下時,8輸入與非門74LS30輸出經(jīng)過74LS04反相后向單片機(jī)外中斷請求輸入引腳INT0*發(fā)出低電平中斷請求信號,單片機(jī)響應(yīng)中斷,進(jìn)入外部中斷的中斷函數(shù),在中斷函數(shù)中,判斷按鍵是否真按下。如確實按下,則把標(biāo)志keyflag置1,并得到按下按鍵鍵值,然后從中斷返回,根據(jù)鍵值跳向該鍵的處理程序。910圖5-25

中斷掃描方式的獨立式鍵盤的接口電路參考程序如下:..\范例\KEY_INT0.C#include<reg51.h>#include<absacc.h>#defineucharunsignedcharbitkeyflag; //keyflag為按鍵按下的標(biāo)志位uchar

keyval; //keyval為鍵值voiddelay10ms(void); //軟件延時10ms函數(shù),見例5-11voidmain(void){ IE=0x81; //總中斷允許EA=1,允許中斷

IP=0x01; //設(shè)置外中斷0為高優(yōu)先級

keyflag=0; //設(shè)置按鍵按下標(biāo)志為0 do { 11if(keyflag) //如果按鍵按下標(biāo)志keyflag=1,則有鍵按下 {

keyval=~keyval; //鍵值取反

switch(keyval) //根據(jù)按下鍵的鍵值進(jìn)行分支跳轉(zhuǎn)

{ case1:…; //處理0號鍵

break; case2:…; //處理1號鍵

break; case4:…; //處理2號鍵

break; case8:…; //處理3號鍵

break; case16:…; //處理4號鍵

break; case32:…; //處理5號鍵12

break; case64:…; //處理6號鍵

break; case128:…; //處理7號鍵

break; default; break; //無效按鍵,例如多個鍵同時按下

}

keyflag=0; //清按鍵按下標(biāo)志

} }

while(1);}

13voidint0()interrupt0 //有鍵按下,則執(zhí)行的中斷函數(shù){

uchar

reread_key; //reread_key為重讀鍵值變量; IE=0x80; //屏蔽中斷 keyflag=0; //把按鍵按下標(biāo)志keyflag清0 P1=0xff; //向P1口寫1,設(shè)置P1口為輸入

keyval=P1; //從P1口讀入鍵盤的狀態(tài)

delay10ms(void); //延時10ms

reread_key=P1;//再次從P1口讀鍵盤狀態(tài),并存reread_key中

if(keyval==reread_key)//比較兩次讀取的鍵值,如相同,說明鍵按下

{

key_flag=1; //按鍵按下標(biāo)志key_flag為1} IE=0x81; //重新允許中斷}14程序中用到了外部中斷INT0*,當(dāng)沒有按鍵按下時,標(biāo)志keyflag=0,程序一直執(zhí)行“do{}while()”循環(huán)。當(dāng)有鍵按下時,則74LS04輸出端產(chǎn)生低電平,向單片機(jī)INT0*腳發(fā)中斷請求信號,單片機(jī)響應(yīng)中斷,執(zhí)行中斷函數(shù)。如果確實按鍵按下,在中斷函數(shù)中把keyflag置1,并得到鍵值。當(dāng)執(zhí)行完中斷函數(shù)后,再進(jìn)入“do{}while()”循環(huán),此時由于“if(keyflag)”中的keyflag=1,則可根據(jù)鍵值“keyval”,采用“switch(keyval)”分支語句,進(jìn)行按下按鍵的處理。155.6.3矩陣式鍵盤接口設(shè)計案例

16圖5-26

矩陣式(行列式)鍵盤【例5-14】

數(shù)碼管顯示4×

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論