51系列單片機(jī)_C語言_快速入門
標(biāo)簽: 51系列 單片機(jī) 語言 快速入門
上傳時(shí)間: 2014-12-26
上傳用戶:zhangjinzj
基于單片機(jī)控制的電梯控制器_李海濤
標(biāo)簽: 單片機(jī)控制 電梯控制器 海
上傳用戶:gonuiln
單片機(jī)入門制作專題_配套光盤 [1]
標(biāo)簽: 單片機(jī) 光盤
上傳時(shí)間: 2013-11-09
上傳用戶:yyyyyyyyyy
三種方法讀取鍵值 使用者設(shè)計(jì)行列鍵盤介面,一般常採用三種方法讀取鍵值。 中斷式 在鍵盤按下時(shí)產(chǎn)生一個(gè)外部中斷通知CPU,並由中斷處理程式通過不同位址讀資料線上的狀態(tài)判斷哪個(gè)按鍵被按下。 本實(shí)驗(yàn)採用中斷式實(shí)現(xiàn)使用者鍵盤介面。 掃描法 對(duì)鍵盤上的某一行送低電位,其他為高電位,然後讀取列值,若列值中有一位是低,表明該行與低電位對(duì)應(yīng)列的鍵被按下。否則掃描下一行。 反轉(zhuǎn)法 先將所有行掃描線輸出低電位,讀列值,若列值有一位是低表明有鍵按下;接著所有列掃描線輸出低電位,再讀行值。 根據(jù)讀到的值組合就可以查表得到鍵碼。4x4鍵盤按4行4列組成如圖電路結(jié)構(gòu)。按鍵按下將會(huì)使行列連成通路,這也是見的使用者鍵盤設(shè)計(jì)電路。 //-----------4X4鍵盤程序--------------// uchar keboard(void) { uchar xxa,yyb,i,key; if((PINC&0x0f)!=0x0f) //是否有按鍵按下 {delayms(1); //延時(shí)去抖動(dòng) if((PINC&0x0f)!=0x0f) //有按下則判斷 { xxa=~(PINC|0xf0); //0000xxxx DDRC=0x0f; PORTC=0xf0; delay_1ms(); yyb=~(PINC|0x0f); //xxxx0000 DDRC=0xf0; //復(fù)位 PORTC=0x0f; while((PINC&0x0f)!=0x0f) //按鍵是否放開 { display(data); } i=4; //計(jì)算返回碼 while(xxa!=0) { xxa=xxa>>1; i--; } if(yyb==0x80) key=i; else if(yyb==0x40) key=4+i; else if(yyb==0x20) key=8+i; else if(yyb==0x10) key=12+i; return key; //返回按下的鍵盤碼 } } else return 17; //沒有按鍵按下 }
標(biāo)簽: 4x4 鍵盤
上傳時(shí)間: 2013-11-12
上傳用戶:a673761058
Verilog_HDL的故事_之_反應(yīng)和調(diào)試過程
標(biāo)簽: Verilog_HDL 調(diào)試過程
上傳時(shí)間: 2013-11-25
上傳用戶:yueguizhilin
電子電工實(shí)訓(xùn)_收音機(jī)_焊接_組裝_步驟_實(shí)驗(yàn)報(bào)告
標(biāo)簽: 電子電工 收音機(jī) 實(shí)驗(yàn)報(bào)告 焊接
上傳時(shí)間: 2013-11-05
上傳用戶:niumeng16
[研發(fā)]LCD終端_通訊協(xié)議
標(biāo)簽: LCD 通訊協(xié)議
上傳時(shí)間: 2014-12-01
上傳用戶:止絮那夏
SIR-20雷達(dá)操作手冊(cè)_中文版
標(biāo)簽: SIR 20 雷達(dá) 操作手冊(cè)
上傳時(shí)間: 2013-10-23
上傳用戶:ynsnjs
tc35_畢業(yè)論文(外圍應(yīng)用電路_51連接原理圖_指令集等
標(biāo)簽: tc 35 51 畢業(yè)論文
上傳用戶:xa_lgy
CDMA擴(kuò)頻原理_培訓(xùn)教材,簡單介紹CDMA原理。比較通俗的那種,避免復(fù)雜數(shù)學(xué)運(yùn)算??破招再|(zhì)的。
標(biāo)簽: CDMA 擴(kuò)頻 培訓(xùn)教材
上傳時(shí)間: 2014-12-29
上傳用戶:66666
蟲蟲下載站版權(quán)所有 京ICP備2021023401號(hào)-1