三種方法讀取鍵值 使用者設(shè)計(jì)行列鍵盤介面,一般常採(cǎi)用三種方法讀取鍵值。 中斷式 在鍵盤按下時(shí)產(chǎn)生一個(gè)外部中斷通知CPU,並由中斷處理程式通過(guò)不同位址讀資料線上的狀態(tài)判斷哪個(gè)按鍵被按下。 本實(shí)驗(yàn)採(cǎi)用中斷式實(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
王森 Java手機(jī)程式設(shè)計(jì)入門
標(biāo)簽: Java 程式
上傳時(shí)間: 2015-01-23
上傳用戶:maizezhen
Win32多線程程序設(shè)計(jì),很不錯(cuò)得到
標(biāo)簽: Win 32 程序
上傳時(shí)間: 2015-01-31
上傳用戶:15736969615
基於GSM公網(wǎng)的PLC遠(yuǎn)端通信的設(shè)計(jì)與實(shí)現(xiàn).rar
標(biāo)簽: GSM PLC 通信
上傳時(shí)間: 2014-11-26
上傳用戶:wcl168881111111
Programming Windows程式開發(fā)設(shè)計(jì)指南
標(biāo)簽: Programming Windows 程式
上傳時(shí)間: 2015-03-18
上傳用戶:agent
頻率計(jì)程序﹐一個(gè)基于PIC單片機(jī)的頻率計(jì)程序和電路圖。
標(biāo)簽: PIC 程序
上傳時(shí)間: 2013-12-26
上傳用戶:liansi
這個(gè)程式可以用來(lái)觀察其他程式的VCL組態(tài)、記憶體內(nèi)容。幫助設(shè)計(jì)時(shí)的runtime debug。 當(dāng)然也可以用來(lái)看別人程式中用了什麼元件、設(shè)計(jì)了什麼property
標(biāo)簽: property runtime debug 程式
上傳時(shí)間: 2015-04-11
上傳用戶:ynzfm
計(jì)算機(jī):使用java開機(jī)之計(jì)算機(jī),功能比windows所附的簡(jiǎn)易計(jì)算機(jī)還強(qiáng)大
標(biāo)簽: windows java
上傳時(shí)間: 2013-12-31
上傳用戶:songyue1991
家具行業(yè)的成本核算報(bào)價(jià)系統(tǒng),主要征對(duì)家個(gè)產(chǎn)品的結(jié)構(gòu)展開進(jìn)行材料成本及人工制造費(fèi)用統(tǒng)計(jì),加上可調(diào)節(jié)的利潤(rùn)設(shè)定,將其成本核算出來(lái),同時(shí)將報(bào)價(jià)單作出來(lái)
標(biāo)簽: 家 成本核算 人工 制造
上傳時(shí)間: 2014-01-21
上傳用戶:songnanhua
雙端選擇排序算法:是選擇排序算法的變種,可以定位每個(gè)子表中最小和最大元素 并把它們分別放在子表的開頭和結(jié)尾.
標(biāo)簽: 排序算法 雙端 元素 分
上傳時(shí)間: 2015-04-23
上傳用戶:WMC_geophy
蟲蟲下載站版權(quán)所有 京ICP備2021023401號(hào)-1