三種方法讀取鍵值 使用者設計行列鍵盤介面,一般常採用三種方法讀取鍵值。 中斷式 在鍵盤按下時產生一個外部中斷通知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
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
SIC_XE程式Pass 1:先對每個Source statement做定location,Pass 2:對每個細項做不同的處理,算出object code,最後轉成machine code輸出。
標簽: statement location SIC_XE Source
上傳時間: 2013-12-20
上傳用戶:a6697238
sin產生器,可以於VHDL產生sin之數值波形,進而輸出至dac做轉換
標簽: sin
上傳時間: 2013-12-25
上傳用戶:小儒尼尼奧
此工具書是一般常用的到的數學工具書,內容詳細介紹matlab指令的各種用法,從基本的概述、初探matlab、二維平面繪圖、三維立體繪圖、數值運算與其它應用、影像顯示與讀寫、動畫製作、握把式圖形與GUI、GUIDEGUI設計環境、矩陣的處理與運算、字元與字串、多維陣列、異質陣列、結植陣列、稀疏矩陣、matlab的運算元、m檔案、程式流程控制、程式除錯、檔案輸出及輸入、程式計時、程式碼與記憶、應用程式介面、線性代數、多項式的處理、一般數學函數、內插法、曲線擬合與迴圈、常微分方程式…等,是非常好用的工具書。
標簽:
上傳時間: 2016-08-24
上傳用戶:ynsnjs
利用專案的方式,將不同功能的切割到不同檔案,主要是要學習如何在專案內學習如何用header以及其他檔案, 並加入了如何將讀到的檔案輸出至特定位置,以及讀檔案時的空白如何處理,利用簡單的運算來表示,同樣對初學者很有幫助!
標簽: 方式
上傳時間: 2016-11-19
上傳用戶:xinzhch
指定一個數字轉換回十進位,八進位,十六進位#include <stdio.h> #include <stdlib.h> int main(void) { int number =89 printf("數字 %d\n",number) /* %d 為十進位輸出格式*/ printf("八進位為 %o\n",number) /* %o 為八進位輸出格式*/ printf("十六進位為%x\n",number) /* %x 為十六進位輸出格式*/ system("pause") return 0 }
上傳時間: 2013-11-29
上傳用戶:tyler
對話方塊,依照使用者所選取選項進行對應的輸出項目。
標簽:
上傳時間: 2013-12-24
上傳用戶:yepeng139
本文是以數位訊號處理器DSP(Digital Singal Processor)之核心架構為主體的數位式溫度控制器開發,而其主要分為硬體電路與軟體程式兩部分來完成。而就硬體電路來看分為量測電路模組、DSP周邊電路及RS232通訊模組、輸出模組三個部分,其中在輸出上可分為電流輸出、電壓輸出以及binary command給加熱驅動裝置, RS232 除了可以與PC聯絡外也可以與具有CPU的熱能驅動器做命令傳輸。在計畫中分析現有工業用加熱驅動裝置和溫度曲線的關係,並瞭解其控制情況。軟體方面即是溫控器之中央處理器程式,亦即DSP控制程式,其中包括控制理論、感測器線性轉換程式、I/O介面及通訊協定相關程式。在控制法則上,提出一個新的加熱體描述模型,然後以前饋控制為主並輔以PID控制,得到不錯的控制結果。
標簽: Processor Digital Singal DSP
上傳時間: 2013-12-24
上傳用戶:zjf3110