三種方法讀取鍵值 使用者設計行列鍵盤介面,一般常採用三種方法讀取鍵值。 中斷式 在鍵盤按下時產生一個外部中斷通知CPU,並由中斷處理程式通過不同位址讀資料線上的狀態判斷哪個按鍵被按下。 本實驗採用中斷式實現使用者鍵盤介面。 掃描法 對鍵盤上的某一行送低電位,其他為高電位,然後讀取列值,若列值中有一位是低,表明該行與低電位對應列的鍵被按下。否則掃描下一行。 反轉法 先將所有行掃描線輸出低電位,讀列值,若列值有一位是低表明有鍵按下;接著所有列掃描線輸出低電位,再讀行值。 根據讀到的值組合就可以查表得到鍵碼。4x4鍵盤按4行4列組成如圖電路結構。按鍵按下將會使行列連成通路,這也是見的使用者鍵盤設計電路。 //-----------4X4鍵盤程序--------------// uchar keboard(void) { uchar xxa,yyb,i,key; if((PINC&0x0f)!=0x0f) //是否有按鍵按下 {delayms(1); //延時去抖動 if((PINC&0x0f)!=0x0f) //有按下則判斷 { xxa=~(PINC|0xf0); //0000xxxx DDRC=0x0f; PORTC=0xf0; delay_1ms(); yyb=~(PINC|0x0f); //xxxx0000 DDRC=0xf0; //復位 PORTC=0x0f; while((PINC&0x0f)!=0x0f) //按鍵是否放開 { display(data); } i=4; //計算返回碼 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; //沒有按鍵按下 }
上傳時間: 2013-11-12
上傳用戶:a673761058
本課題在深入研究了射頻卡的相關理論和技術的基礎上,設計開發了一套完整的非接觸式射頻卡(收費)管理系統。本文首先結合國內外射頻卡技術研究動態和發展趨勢,簡要介紹了非接觸式射頻技術的基本概況,從非接觸式射頻卡的系統組成結構入手,詳細分析了射頻卡系統的基本原理和其所涉及到的關鍵技術,接著本文著重分析了非接觸式射頻卡系統的軟硬件開發設計思想,對硬件設計中的MCU和射頻模塊的特性進行了具體的介紹,對終端讀寫器各部分硬件(射頻識別部分、顯示電路、報警模塊,485通訊模塊等)的功能構造和電路設計進行了詳細的分析,在硬件設計的基礎上,詳細闡述了終端讀寫器的軟件設計過程,給出了終端讀寫器主程序和各功能模塊的軟件設計,并結合終端讀寫器的設計開發了射頻卡管理系統作為上位機管理軟件,對數據庫管理和串口通信等作了詳細的闡述。
上傳時間: 2013-11-13
上傳用戶:pwcsoft
PCB LAYOUT 術語解釋(TERMS)1. COMPONENT SIDE(零件面、正面)︰大多數零件放置之面。2. SOLDER SIDE(焊錫面、反面)。3. SOLDER MASK(止焊膜面)︰通常指Solder Mask Open 之意。4. TOP PAD︰在零件面上所設計之零件腳PAD,不管是否鑽孔、電鍍。5. BOTTOM PAD:在銲錫面上所設計之零件腳PAD,不管是否鑽孔、電鍍。6. POSITIVE LAYER:單、雙層板之各層線路;多層板之上、下兩層線路及內層走線皆屬之。7. NEGATIVE LAYER:通常指多層板之電源層。8. INNER PAD:多層板之POSITIVE LAYER 內層PAD。9. ANTI-PAD:多層板之NEGATIVE LAYER 上所使用之絕緣範圍,不與零件腳相接。10. THERMAL PAD:多層板內NEGATIVE LAYER 上必須零件腳時所使用之PAD,一般稱為散熱孔或導通孔。11. PAD (銲墊):除了SMD PAD 外,其他PAD 之TOP PAD、BOTTOM PAD 及INNER PAD 之形狀大小皆應相同。12. Moat : 不同信號的 Power& GND plane 之間的分隔線13. Grid : 佈線時的走線格點2. Test Point : ATE 測試點供工廠ICT 測試治具使用ICT 測試點 LAYOUT 注意事項:PCB 的每條TRACE 都要有一個作為測試用之TEST PAD(測試點),其原則如下:1. 一般測試點大小均為30-35mil,元件分布較密時,測試點最小可至30mil.測試點與元件PAD 的距離最小為40mil。2. 測試點與測試點間的間距最小為50-75mil,一般使用75mil。密度高時可使用50mil,3. 測試點必須均勻分佈於PCB 上,避免測試時造成板面受力不均。4. 多層板必須透過貫穿孔(VIA)將測試點留於錫爐著錫面上(Solder Side)。5. 測試點必需放至於Bottom Layer6. 輸出test point report(.asc 檔案powerpcb v3.5)供廠商分析可測率7. 測試點設置處:Setuppadsstacks
上傳時間: 2013-11-17
上傳用戶:cjf0304
此為qpsk的範例,將一訊號分解成I及Q part,再將訊號I及Q部分相加得到輸出
標簽: qpsk
上傳時間: 2015-06-01
上傳用戶:youth25
設f(x)=1+x+x2+x5+x27,試分別寫出實現下列移位寄存器的程序: 以f(x)為聯接多項式的DSR; 以f(x)為聯接多項式的LFSR。 可供選擇的聯接多項式: f1(x)=1+x+x4+x6+x30; f2(x)=1+ x3+ x31; f3(x)=1+ x6+ x31; f4(x)=1+ x7+ x31; f5(x)=1+ x13+ x31;
標簽: 27
上傳時間: 2015-07-13
上傳用戶:xiaodu1124
SIC_XE程式Pass 1:先對每個Source statement做定location,Pass 2:對每個細項做不同的處理,算出object code,最後轉成machine code輸出。
標簽: statement location SIC_XE Source
上傳時間: 2013-12-20
上傳用戶:a6697238
最佳調度問題,假設有n個任務由k個可并行工作的機器完成。完成任務i需要的時間為ti。試設計一個算法找出完成這n個任務的最佳調度,使得完成全部任務的時間最早。
標簽: 調度
上傳時間: 2014-01-06
上傳用戶:1101055045
設有一個背包可以放入的物品重量最重為s,現有n件物品,它們的重量分別為w[0]、 w[1]、w[2]、…、w[n-1]。問能否從這n件物品中選擇若干件放入此背包中,使得放入的重量之和正好為s。如果存在一種符合上述要求的選擇,則稱此背包問題有解(或稱其解為真);否則稱此背包問題無解(或稱其解為假)。試用遞歸方法設計求解背包問題的算法。
標簽:
上傳時間: 2016-03-15
上傳用戶:bcjtao
此工具書是一般常用的到的數學工具書,內容詳細介紹matlab指令的各種用法,從基本的概述、初探matlab、二維平面繪圖、三維立體繪圖、數值運算與其它應用、影像顯示與讀寫、動畫製作、握把式圖形與GUI、GUIDEGUI設計環境、矩陣的處理與運算、字元與字串、多維陣列、異質陣列、結植陣列、稀疏矩陣、matlab的運算元、m檔案、程式流程控制、程式除錯、檔案輸出及輸入、程式計時、程式碼與記憶、應用程式介面、線性代數、多項式的處理、一般數學函數、內插法、曲線擬合與迴圈、常微分方程式…等,是非常好用的工具書。
標簽:
上傳時間: 2016-08-24
上傳用戶:ynsnjs
利用專案的方式,將不同功能的切割到不同檔案,主要是要學習如何在專案內學習如何用header以及其他檔案, 並加入了如何將讀到的檔案輸出至特定位置,以及讀檔案時的空白如何處理,利用簡單的運算來表示,同樣對初學者很有幫助!
標簽: 方式
上傳時間: 2016-11-19
上傳用戶:xinzhch