三種方法讀取鍵值 使用者設(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
用單片機(jī)配置FPGA—PLD設(shè)計(jì)技巧 Configuration/Program Method for Altera Device Configure the FLEX Device You can use any Micro-Controller to configure the FLEX device–the main idea is clocking in ONE BITof configuration data per CLOCK–start from the BIT 0The total Configuration time–e.g. 10K10 need 15K byte configuration file•calculation equation–10K10* 1.5= 15Kbyte–configuration time for the file itself•15*1024*8*clock = 122,880Clock•assume the CLOCK is 4MHz•122,880*1/4Mhz=30.72msec
標(biāo)簽: FPGA PLD 用單片機(jī) 設(shè)計(jì)技巧
上傳時(shí)間: 2013-10-09
上傳用戶:a67818601
I2C 總線包括了兩條串行總線(時(shí)鐘線SCL 和數(shù)據(jù)線SDA),通過(guò)這兩條總線能實(shí)現(xiàn)多個(gè)芯片之間的通信。在互相連接的芯片中,至少有一個(gè)芯片作為總線控制器,而其它芯片則作為從控制器。在本應(yīng)用說(shuō)明中,介紹了用Holtek 的八位RISC 結(jié)構(gòu)的單片機(jī)作為單總線控制器的軟件實(shí)現(xiàn)的方法。在本文的示例中,采用了一片EEPROM(型號(hào)HT24LC02,2Kbit)作為從控制器參與測(cè)試。電路說(shuō)明:HT24LC02 的A0、A1、A2、VSS、WP 引腳接地,VCC 接+5V,SCL 接PA3,SDA 接PA2使用說(shuō)明:例程中先向eeprom 中寫數(shù)據(jù),寫完后,再將eeprom 中內(nèi)容讀出來(lái),并將讀出數(shù)據(jù)進(jìn)行比較,若數(shù)據(jù)不相等程序跳到fail_out 中;若相等,最后程序跳到ok_end 中。本說(shuō)明中提供了一個(gè)源文件OP_HT24.ASM 和一個(gè)包含文件HT24.ASM。在應(yīng)用時(shí),要將OP_HT24.ASM 文件添加到用戶的project 中,并修改HT24.INC 文件中的變量設(shè)置,以建立SCL/SDA引腳來(lái)與用戶的應(yīng)用電路相匹配。
上傳時(shí)間: 2013-10-19
上傳用戶:ming52900
用VHDL語(yǔ)言進(jìn)行MCS-51兼容單片機(jī)ip核開(kāi)發(fā)
標(biāo)簽: VHDL MCS 51兼容 語(yǔ)言
上傳時(shí)間: 2013-10-28
上傳用戶:nem567397
用c5402構(gòu)建的聲回波對(duì)消器
上傳時(shí)間: 2014-12-28
上傳用戶:pei5
用TI dsp做變頻器的資料
上傳時(shí)間: 2013-11-14
上傳用戶:13160677563
用ModelSimSE進(jìn)行功能仿真和時(shí)序仿真的方法(ALTERA篇)
標(biāo)簽: ModelSimSE ALTERA 功能仿真 時(shí)序仿真
上傳時(shí)間: 2013-10-20
上傳用戶:hehuaiyu
100-Gb光傳送網(wǎng)(OTN)復(fù)用轉(zhuǎn)發(fā)器 a. 提供連續(xù)數(shù)據(jù)范圍在600 Mbps到14.1 Gbps之間的串行收發(fā)器,通過(guò)使用方便的部分重新配置功能支持多標(biāo)準(zhǔn)客戶側(cè)接口; b. 44個(gè)獨(dú)立發(fā)送時(shí)鐘域,提高了時(shí)鐘靈活性; c. 收發(fā)器集成電信號(hào)散射補(bǔ)償(EDC)功能,可直接驅(qū)動(dòng)光模塊(SFP+、SFP、QSFP、CFP); d. 支持下一代光接口的28-Gbps收發(fā)器; e. 替代外部壓控晶體振蕩器(VCXO)的高級(jí)fPLL。
標(biāo)簽: Altera FPGA Gbit 100
上傳時(shí)間: 2013-11-19
上傳用戶:zhyiroy
用FPGA設(shè)計(jì)多功能數(shù)字鐘
上傳時(shí)間: 2013-11-16
上傳用戶:1234567890qqq
用VerilogHDL實(shí)現(xiàn)基于FPGA的通用分頻器的設(shè)計(jì)
標(biāo)簽: VerilogHDL FPGA 分頻器
上傳時(shí)間: 2013-10-28
上傳用戶:xiaoxiang
蟲蟲下載站版權(quán)所有 京ICP備2021023401號(hào)-1