三種方法讀取鍵值 使用者設(shè)計(jì)行列鍵盤(pán)介面,一般常採(cǎi)用三種方法讀取鍵值。 中斷式 在鍵盤(pán)按下時(shí)產(chǎn)生一個(gè)外部中斷通知CPU,並由中斷處理程式通過(guò)不同位址讀資料線上的狀態(tài)判斷哪個(gè)按鍵被按下。 本實(shí)驗(yàn)採(cǎi)用中斷式實(shí)現(xiàn)使用者鍵盤(pán)介面。 掃描法 對(duì)鍵盤(pán)上的某一行送低電位,其他為高電位,然後讀取列值,若列值中有一位是低,表明該行與低電位對(duì)應(yīng)列的鍵被按下。否則掃描下一行。 反轉(zhuǎn)法 先將所有行掃描線輸出低電位,讀列值,若列值有一位是低表明有鍵按下;接著所有列掃描線輸出低電位,再讀行值。 根據(jù)讀到的值組合就可以查表得到鍵碼。4x4鍵盤(pán)按4行4列組成如圖電路結(jié)構(gòu)。按鍵按下將會(huì)使行列連成通路,這也是見(jiàn)的使用者鍵盤(pán)設(shè)計(jì)電路。 //-----------4X4鍵盤(pán)程序--------------// 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; //返回按下的鍵盤(pán)碼 } } else return 17; //沒(méi)有按鍵按下 }
上傳時(shí)間: 2013-11-12
上傳用戶(hù):a673761058
這是用verilog寫(xiě)的一個(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
上傳用戶(hù):ikemada
Debussy是NOVAS Software, Inc(思源科技)發(fā)展的HDL Debug & Analysis tool,這套軟體主要不是用來(lái)跑模擬或看波形,它最強(qiáng)大的功能是:能夠在HDL source code、schematic diagram、waveform、state bubble diagram之間,即時(shí)做trace,協(xié)助工程師debug。 可能您會(huì)覺(jué)的:只要有simulator如ModelSim就可以做debug了,我何必再學(xué)這套軟體呢? 其實(shí)Debussy v5.0以後的新版本,還提供了nLint -- check coding style & synthesizable,這蠻有用的,可以協(xié)助工程師了解如何寫(xiě)好coding style,並養(yǎng)成習(xí)慣。 下圖所示為整個(gè)Debussy的原理架構(gòu),可歸納幾個(gè)結(jié)論:
標(biāo)簽: Analysis Software Debussy Debug
上傳時(shí)間: 2014-01-14
上傳用戶(hù):hustfanenze
Struts結(jié)合了數(shù)個(gè)技術(shù),為了要瞭解Struts,您必須先瞭解JSP/Servlet相關(guān)技術(shù),必須先瞭解MVC、Model 1、Model 2等架構(gòu)模式。
標(biāo)簽: Struts
上傳時(shí)間: 2013-12-21
上傳用戶(hù):lhc9102
類(lèi)神經(jīng)網(wǎng)路,MLP程式碼,可以計(jì)算多層架構(gòu)之類(lèi)神經(jīng)網(wǎng)路運(yùn)算~C
標(biāo)簽:
上傳時(shí)間: 2013-12-28
上傳用戶(hù):txfyddz
JVT所釋出的H.264/MPEG-4 AVC REFERENCE SOFTWARE MANUAL,,裡面詳細(xì)介紹了jm的架構(gòu),以及其中 各種演算法所存在的類(lèi)別,所以接觸jm的朋友,是一個(gè)非常好的嚮導(dǎo),幫助你了解大概的jm雛形.
標(biāo)簽: REFERENCE SOFTWARE MANUAL MPEG
上傳時(shí)間: 2013-12-20
上傳用戶(hù):athjac
GPRS_CHT技術(shù)文檔,包括主要詳細(xì)介紹GPRS的通訊協(xié)定,內(nèi)容包括GPRS 所要提供的功能、系統(tǒng)架構(gòu)、 各個(gè)網(wǎng)路元件、各元件間定義的介面、計(jì)費(fèi)系統(tǒng)與GSM 演進(jìn)為GPRS 所採(cǎi) 行的方式。其中GPRS 介面部份,抽出來(lái)獨(dú)立成為GPRS_Interface 檔案
上傳時(shí)間: 2014-01-20
上傳用戶(hù):huannan88
使用Flash提供的Web Service的能力,利用這個(gè)能力與SOAP Server連接並做資料的存取。而這篇文章將以一個(gè)極簡(jiǎn)單的範(fàn)例來(lái)說(shuō)明如何透過(guò)Flash取得想要的資料。關(guān)於SOAP Server的製作請(qǐng)參考之前撰寫(xiě)的"Pyhon的SOAP Library"這篇文章,這篇文章有教大家如何使用python這個(gè)程式語(yǔ)言實(shí)作一個(gè)RPC Server,提供其他程式作遠(yuǎn)端呼叫。我提供RPC Server的製作,而我會(huì)使用python來(lái)架構(gòu)RPC Server,使用python內(nèi)建的函式庫(kù)來(lái)實(shí)作該Server。 需要工具; 1. Flash 8.0 2. Python 2.3 以上
上傳時(shí)間: 2014-01-25
上傳用戶(hù):cc1915
在GIS領(lǐng)域中,目前正有一新興的架構(gòu)模式產(chǎn)生,此架構(gòu)改變了GIS處理圖資的方式,此架構(gòu)模式稱(chēng)為DGIS(Distributed GIS-分散式地理資訊系統(tǒng))。DGIS將傳統(tǒng)桌上型單機(jī)作業(yè)之GIS概念延伸至網(wǎng)際網(wǎng)路(Web)之解決方案上,以能符合現(xiàn)行系統(tǒng)圖資處理之需求。而此種以分散式概念延伸至網(wǎng)際網(wǎng)路的架構(gòu)稱(chēng)之為網(wǎng)際網(wǎng)路地理資訊系統(tǒng)(WebGIS或Internet GIS)。
標(biāo)簽: GIS
上傳時(shí)間: 2014-01-17
上傳用戶(hù):dongbaobao
OPEN-JTAG ARM JTAG 測(cè)試原理 1 前言 本篇報(bào)告主要介紹ARM JTAG測(cè)試的基本原理。基本的內(nèi)容包括了TAP (TEST ACCESS PORT) 和BOUNDARY-SCAN ARCHITECTURE的介紹,在此基礎(chǔ)上,結(jié)合ARM7TDMI詳細(xì)介紹了的JTAG測(cè)試原理。 2 IEEE Standard 1149.1 - Test Access Port and Boundary-Scan Architecture 從IEEE的JTAG測(cè)試標(biāo)準(zhǔn)開(kāi)始,JTAG是JOINT TEST ACTION GROUP的簡(jiǎn)稱(chēng)。IEEE 1149.1標(biāo)準(zhǔn)最初是由JTAG這個(gè)組織提出,最終由IEEE批準(zhǔn)並且標(biāo)準(zhǔn)化,所以,IEEE 1149.1這個(gè)標(biāo)準(zhǔn)一般也俗稱(chēng)JTAG測(cè)試標(biāo)準(zhǔn)。 接下來(lái)介紹TAP (TEST ACCESS PORT) 和BOUNDARY-SCAN ARCHITECTURE的基本架構(gòu)。
標(biāo)簽: JTAG BOUNDARY-SCAN OPEN-JTAG ARM
上傳時(shí)間: 2016-08-16
上傳用戶(hù):sssl
蟲(chóng)蟲(chóng)下載站版權(quán)所有 京ICP備2021023401號(hào)-1