三種方法讀取鍵值 使用者設(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; //沒(méi)有按鍵按下 }
標(biāo)簽: 4x4 鍵盤
上傳時(shí)間: 2013-11-12
上傳用戶:a673761058
自動(dòng)檢測(cè)80C51 串行通訊中的波特率本文介紹一種在80C51 串行通訊應(yīng)用中自動(dòng)檢測(cè)波特率的方法。按照經(jīng)驗(yàn),程序起動(dòng)后所接收到的第1 個(gè)字符用于測(cè)量波特率。這種方法可以不用設(shè)定難于記憶的開關(guān),還可以免去在有關(guān)應(yīng)用中使用多種不同波特率的煩惱。人們可以設(shè)想:一種可靠地實(shí)現(xiàn)自動(dòng)波特檢測(cè)的方法是可能的,它無(wú)須嚴(yán)格限制可被確認(rèn)的字符。問(wèn)題是:在各種的條件下,如何可以在大量允許出現(xiàn)的字符中找出波特率的定時(shí)間隔。顯然,最快捷的方法是檢測(cè)一個(gè)單獨(dú)位時(shí)間(single bit time),以確定接收波特率應(yīng)該是多少。可是,在RS-232 模式下,許多ASCII 字符并不能測(cè)量出一個(gè)單獨(dú)位時(shí)間。對(duì)于大多數(shù)字符來(lái)說(shuō),只要波特率存在合理波動(dòng)(這里的波特率是指標(biāo)準(zhǔn)波特率),從起始位到最后一位“可見”位的數(shù)據(jù)傳輸周期就會(huì)在一定范圍內(nèi)發(fā)生變化。此外,許多系統(tǒng)采用8 位數(shù)據(jù)、無(wú)奇偶校驗(yàn)的格式傳輸ASCII 字符。在這種格式里,普通ASCII 字節(jié)不會(huì)有MSB 設(shè)定
標(biāo)簽: 80C51 自動(dòng)檢測(cè) 單片機(jī) 串行通訊
上傳時(shí)間: 2013-10-15
上傳用戶:shirleyYim
2003年第5期《簡(jiǎn)易串行存儲(chǔ)器拷貝器》源程序
標(biāo)簽: 2003 串行存儲(chǔ)器 拷貝器 源程序
上傳時(shí)間: 2014-04-16
上傳用戶:問(wèn)題問(wèn)題
伺服舵機(jī)作為基本的輸出執(zhí)行機(jī)構(gòu)廣泛應(yīng)用于 遙控航模以及人形機(jī)器人的控制中。舵機(jī)是一種位 置伺服的驅(qū)動(dòng)器,其控制信號(hào)是PWM信號(hào).,利 用占空比的變化改變舵機(jī)的位置,也可使用FPGA、 模擬電路、單片機(jī)來(lái)產(chǎn)生舵機(jī)的控制信號(hào)舊。應(yīng) 用模擬電路產(chǎn)生PWM信號(hào),應(yīng)用的元器件較多, 會(huì)增加電路的復(fù)雜程度;若用單片機(jī)產(chǎn)生PWM信 號(hào),當(dāng)信號(hào)路數(shù)較少時(shí)單片機(jī)能滿足要求,但當(dāng) PWM信號(hào)多于4路時(shí),由于單片機(jī)指令是順序執(zhí) 行的,會(huì)產(chǎn)生較大的延遲,從而使PWM信號(hào)波形 不穩(wěn),導(dǎo)致舵機(jī)發(fā)生顫振。
標(biāo)簽: FPGA 多功能 多路 舵機(jī)
上傳時(shí)間: 2014-12-28
上傳用戶:ainimao
為實(shí)現(xiàn)某專用接口裝置的接口功能檢測(cè),文中詳細(xì)地介紹了一種34位串行碼的編碼方式,并基于FPGA芯片設(shè)計(jì)了該類型編碼的接收、發(fā)送電路。重點(diǎn)分析了電路各模塊的設(shè)計(jì)思路。電路采用SOPC模塊作為中心控制器,設(shè)計(jì)簡(jiǎn)潔、可靠。試驗(yàn)表明:該設(shè)計(jì)系統(tǒng)運(yùn)行正常、穩(wěn)定。
標(biāo)簽: FPGA 串行 編碼 信號(hào)設(shè)計(jì)
上傳用戶:xiaowei314
設(shè)計(jì)工程師通常在FPGA上實(shí)現(xiàn)FIFO(先進(jìn)先出寄存器)的時(shí)候,都會(huì)使用由芯片提供商所提供的FIFO。但是,由于其通用性使得其針對(duì)性變差,某些情況下會(huì)變得不方便或者將增加硬件成本。此時(shí),需要進(jìn)行自行FIFO設(shè)計(jì)。本文提供了一種基于信元的FIFO設(shè)計(jì)方法以供設(shè)計(jì)者在適當(dāng)?shù)臅r(shí)候選用。這種方法也適合于不定長(zhǎng)包的處理。
標(biāo)簽: FPGA FIFO 信元 設(shè)計(jì)方法
上傳時(shí)間: 2014-01-13
上傳用戶:mengmeng444425
介紹了基于Xilinx Spartan- 3E FPGA XC3S250E 來(lái)完成分辨率為738×575 的PAL 制數(shù)字視頻信號(hào)到800×600 的VGA 格式轉(zhuǎn)換的實(shí)現(xiàn)方法。關(guān)鍵詞: 圖像放大; PAL; VGA; FPGA 目前, 絕大多數(shù)監(jiān)控系統(tǒng)中采用的高解析度攝像機(jī)均由47 萬(wàn)像素的CCD 圖像傳感器采集圖像, 經(jīng)DSP 處理后輸出的PAL 制數(shù)字視頻信號(hào)不能直接在VGA 顯示器上顯示, 而在許多場(chǎng)合需要在VGA 顯示器上實(shí)時(shí)監(jiān)視, 這就需要將隔行PAL 制數(shù)字視頻轉(zhuǎn)換為逐行視頻并提高幀頻, 再將每幀圖像放大到800×600 或1 024×768。常用的圖像放大的方法有很多種, 如最臨近賦值法、雙線性插值法、樣條插值法等[ 1] 。由于要對(duì)圖像進(jìn)行實(shí)時(shí)顯示, 本文采用一種近似的雙線性插值方法對(duì)圖像進(jìn)行放大。隨著微電子技術(shù)及其制造工藝的發(fā)展, 可編程邏輯器件的邏輯門密度有了很大提高, 現(xiàn)場(chǎng)可編程邏輯門陣列( FPGA) 有著邏輯資源豐富和可重復(fù)以及系統(tǒng)配置的靈活性, 同時(shí)隨著微處理器、專用邏輯器件以及DSP 算法以IP Core 的形式嵌入到FPGA 中[ 2] , FPGA 的功能越來(lái)越強(qiáng), 因此FPGA 在現(xiàn)代電子系統(tǒng)設(shè)計(jì)中發(fā)揮著越來(lái)越重要的作用。本課題的設(shè)計(jì)就是采用VHDL 描述, 基于FPGA 來(lái)實(shí)現(xiàn)的。
標(biāo)簽: PAL-VGA FPGA 轉(zhuǎn)換器
上傳時(shí)間: 2013-12-03
上傳用戶:aa54
摘要: 串行傳輸技術(shù)具有更高的傳輸速率和更低的設(shè)計(jì)成本, 已成為業(yè)界首選, 被廣泛應(yīng)用于高速通信領(lǐng)域。提出了一種新的高速串行傳輸接口的設(shè)計(jì)方案, 改進(jìn)了Aurora 協(xié)議數(shù)據(jù)幀格式定義的弊端, 并采用高速串行收發(fā)器Rocket I/O, 實(shí)現(xiàn)數(shù)據(jù)率為2.5 Gbps的高速串行傳輸。關(guān)鍵詞: 高速串行傳輸; Rocket I/O; Aurora 協(xié)議 為促使FPGA 芯片與串行傳輸技術(shù)更好地結(jié)合以滿足市場(chǎng)需求, Xilinx 公司適時(shí)推出了內(nèi)嵌高速串行收發(fā)器RocketI/O 的Virtex II Pro 系列FPGA 和可升級(jí)的小型鏈路層協(xié)議———Aurora 協(xié)議。Rocket I/O支持從622 Mbps 至3.125 Gbps的全雙工傳輸速率, 還具有8 B/10 B 編解碼、時(shí)鐘生成及恢復(fù)等功能, 可以理想地適用于芯片之間或背板的高速串行數(shù)據(jù)傳輸。Aurora 協(xié)議是為專有上層協(xié)議或行業(yè)標(biāo)準(zhǔn)的上層協(xié)議提供透明接口的第一款串行互連協(xié)議, 可用于高速線性通路之間的點(diǎn)到點(diǎn)串行數(shù)據(jù)傳輸, 同時(shí)其可擴(kuò)展的帶寬, 為系統(tǒng)設(shè)計(jì)人員提供了所需要的靈活性[4]。但該協(xié)議幀格式的定義存在弊端,會(huì)導(dǎo)致系統(tǒng)資源的浪費(fèi)。本文提出的設(shè)計(jì)方案可以改進(jìn)Aurora 協(xié)議的固有缺陷,提高系統(tǒng)性能, 實(shí)現(xiàn)數(shù)據(jù)率為2.5 Gbps 的高速串行傳輸, 具有良好的可行性和廣闊的應(yīng)用前景。
標(biāo)簽: Rocket 2.5 高速串行 收發(fā)器
上傳時(shí)間: 2013-11-06
上傳用戶:smallfish
摘 要:介紹了FPGA最新一代器件Virtex25上的高速串行收發(fā)器RocketIO。基于ML505開發(fā)平臺(tái)構(gòu)建了一個(gè)高速串行數(shù)據(jù)傳輸系統(tǒng),重點(diǎn)說(shuō)明了該系統(tǒng)采用RocketIO實(shí)現(xiàn)1. 25Gbp s高速串行傳輸?shù)脑O(shè)計(jì)方案。實(shí)現(xiàn)并驗(yàn)證了采用FPGA完成千兆串行傳輸?shù)墓δ苣繕?biāo),為后續(xù)采用FPGA實(shí)現(xiàn)各種高速協(xié)議奠定了良好的基礎(chǔ)。關(guān)鍵詞: FPGA;高速串行傳輸; RocketIO; GTP 在數(shù)字系統(tǒng)互連設(shè)計(jì)中,高速串行I/O技術(shù)取代傳統(tǒng)的并行I/O技術(shù)成為當(dāng)前發(fā)展的趨勢(shì)。與傳統(tǒng)并行I/O技術(shù)相比,串行方案提供了更大的帶寬、更遠(yuǎn)的距離、更低的成本和更高的擴(kuò)展能力,克服了并行I/O設(shè)計(jì)存在的缺陷。在實(shí)際設(shè)計(jì)應(yīng)用中,采用現(xiàn)場(chǎng)可編程門陣列( FPGA)實(shí)現(xiàn)高速串行接口是一種性價(jià)比較高的技術(shù)途徑。
標(biāo)簽: FPGA 高速串行 傳輸接口
上傳時(shí)間: 2013-11-22
上傳用戶:lingzhichao
采用Xlinx公司的Virtex5系列FPGA設(shè)計(jì)了一個(gè)用于多種高速串行協(xié)議的數(shù)據(jù)交換模塊,并解決了該模塊實(shí)現(xiàn)中的關(guān)鍵問(wèn)題.該交換模塊實(shí)現(xiàn)4X模式RapidIO協(xié)議與4X模式PCI Express協(xié)議之間的數(shù)據(jù)交換,以及自定義光纖協(xié)議與4X模式PCI Express協(xié)議之間的數(shù)據(jù)交換,實(shí)現(xiàn)了單字讀寫以及DMA操作,并提供高速穩(wěn)定的傳輸帶寬.
標(biāo)簽: FPGA 高速串行 模塊 實(shí)現(xiàn)方法
上傳時(shí)間: 2013-10-12
上傳用戶:rnsfing
蟲蟲下載站版權(quán)所有 京ICP備2021023401號(hào)-1