三種方法讀取鍵值 使用者設(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ì)使行列連成通路,這也是見(jiàn)的使用者鍵盤設(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) //按鍵是否放開(kāi) { 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; //沒(méi)有按鍵按下 }
上傳時(shí)間: 2013-11-12
上傳用戶:a673761058
射頻識(shí)別 (RFID) 技術(shù)采用輻射和反射 RF 功率來(lái)識(shí)別和跟蹤各種目標(biāo)。典型的 RFID 繫統(tǒng)由一個(gè)閱讀器和一個(gè)轉(zhuǎn)發(fā)器 (或標(biāo)簽) 組成。
上傳時(shí)間: 2013-11-17
上傳用戶:huyanju
無(wú)線感測(cè)器已變得越來(lái)越普及,短期內(nèi)其開(kāi)發(fā)和部署數(shù)量將急遽增加。而無(wú)線通訊技術(shù)的突飛猛進(jìn),也使得智慧型網(wǎng)路中的無(wú)線感測(cè)器能夠緊密互連。此外,系統(tǒng)單晶片(SoC)的密度不斷提高,讓各式各樣的多功能、小尺寸無(wú)線感測(cè)器系統(tǒng)相繼問(wèn)市。儘管如此,工程師仍面臨一個(gè)重大的挑戰(zhàn):即電源消耗。
標(biāo)簽: 能量采集 無(wú)線感測(cè)器
上傳時(shí)間: 2013-10-30
上傳用戶:wojiaohs
有關(guān) ARM.Bootloader.的實(shí)現(xiàn)
標(biāo)簽: Bootloader ARM
上傳時(shí)間: 2013-10-22
上傳用戶:Miyuki
電路板故障分析 維修方式介紹 ASA維修技術(shù) ICT維修技術(shù) 沒(méi)有線路圖,無(wú)從修起 電路板太複雜,維修困難 維修經(jīng)驗(yàn)及技術(shù)不足 無(wú)法維修的死板,廢棄可惜 送電中作動(dòng)態(tài)維修,危險(xiǎn)性極高 備份板太多,積壓資金 送國(guó)外維修費(fèi)用高,維修時(shí)間長(zhǎng) 對(duì)老化零件無(wú)從查起無(wú)法預(yù)先更換 維修速度及效率無(wú)法提升,造成公司負(fù)擔(dān),客戶埋怨 投資大量維修設(shè)備,操作複雜,績(jī)效不彰
上傳時(shí)間: 2013-11-09
上傳用戶:chengxin
WEBGAME 機(jī)器人大戰(zhàn)EBS(無(wú)盡的戰(zhàn)爭(zhēng)) 架設(shè)方法 WIN2K系列主機(jī) ,最簡(jiǎn)單的方法就是 設(shè)置一個(gè)虛擬目錄 其它就稍微改改 config.cgi的設(shè)置,還有餓ebs_sub 1 2 3.cgi的圖片地址就基本好了 WIN2K沒(méi)有虛擬目錄的話就除了要做上面的那些以外 還要打開(kāi)所有文件,搜索類似這樣的 require config.cgi 都改成絕對(duì)路徑就行了 UNIX LINUX FREEBSD 系列的話,就要設(shè)置屬性了 ebs目錄所有CGI文件設(shè)置成 755 所有DAT文件設(shè)置成 777 logmiulerebeb 目錄也就是數(shù)據(jù)目錄,這個(gè)要設(shè)置成 777 裏面所有文件也是 777 當(dāng)然,你可以修改這個(gè)目錄,最好修改成其他目錄,然後把config.cgi的數(shù)據(jù)庫(kù)目錄改改就可以了, 然後就是改 config.cgi的一些設(shè)置,還要改 ebs_sub 1 2 3.cgi的圖片地址了,最後就是,UNIX LINUX系列的大小寫都分的很清楚,這個(gè)版本我懶得整理,所以有的是答謝,有的是小寫,自己改改吧.
標(biāo)簽: WEBGAME WIN2K EBS 機(jī)器人
上傳時(shí)間: 2014-01-10
上傳用戶:tuilp1a
這是用verilog寫的一個(gè)簡(jiǎn)單的處理器,雖然只具有5個(gè)指令,但是可以透過(guò)這個(gè)範(fàn)例,來(lái)了解到cpu的架構(gòu),與如何開(kāi)發(fā)處理器,相信會(huì)有很大的啟發(fā)。
標(biāo)簽: verilog
上傳時(shí)間: 2014-12-08
上傳用戶:ikemada
ADC的源程式,把51的正負(fù)極接至ADC,再將ADC.asm檔compile後,ACD便會(huì)產(chǎn)生將類比轉(zhuǎn)成數(shù)位訊號(hào)的效果
上傳時(shí)間: 2013-12-31
上傳用戶:569342831
將IDE硬盤與44B0相接,接著把此IDE3.C放入KERNEL一起編譯完成後,開(kāi)啟便能抓到此硬盤
上傳時(shí)間: 2014-09-09
上傳用戶:ruixue198909
購(gòu)物車簡(jiǎn)單教材,可以讓新手很快的掌握struts的開(kāi)髮
標(biāo)簽: 教材
上傳時(shí)間: 2015-04-23
上傳用戶:zhyiroy
蟲(chóng)蟲(chóng)下載站版權(quán)所有 京ICP備2021023401號(hào)-1