三種方法讀取鍵值 使用者設計行列鍵盤介面,一般常採用三種方法讀取鍵值。 中斷式 在鍵盤按下時產生一個外部中斷通知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
特點 精確度0.1%滿刻度 ±1位數 可量測 交直流電流/交直流電壓/電位計/傳送器/Pt-100/荷重元/電阻 等信號 顯示范圍-1999-9999可任意規劃 具有異常值與異常次數記錄保留功能 異常信號過高或過低或范圍內或范圍外檢測可任意設定 報警繼電器復歸方式可任意設定 尺寸小,穩定性高 2.主要規格 精確度: 0.1% F.S. ±1 digit 0.2% F.S. ±1 digit(AC) 取樣時間: 16 cycles/sec. 顯示值范圍: -1999 - +9999 digit adjustable 啟動延遲動作時間: 0-99.9 second adjustable 繼電器延遲動作時間: 0-99.9 second adjustable 繼電器復歸方式: Manual (N) / latch(L) can be modified 繼電器動作方向: HI /LO/GO/HL can be modified 繼電器容量: AC 250V-5A, DC 30V-7A 過載顯示: "doFL" 溫度系數: 50ppm/℃ (0-50℃) 顯示幕: Red high efficiency LEDs high 14.22mm(.56")(PV) Red high efficiency LEDs high 7.0mm(.276")(NO) 參數設定方式: Touch switches 記憶型式 : Non-volatile E2PROM memory 絕緣耐壓能力: 2KVac/1 min. (input/output/power) 1600Vdc(input/output 使用環境條件 : 0-50℃(20 to 90% RH non-condensed) 存放環境條件: 0-70℃(20 to 90% RH non-condensed) CE認證: EN 55022:1998/A1:2000 Class A EN 61000-3-2:2000 EN 61000-3-3:1995/A1:2001 EN 55024:1998/A1:2001
上傳時間: 2013-11-02
上傳用戶:fandeshun
DesignSpark PCB 第3版現已推出! 包括3種全新功能: 1. 模擬介面 Simulation Interface 2. 設計計算機 Design Calculator 3. 零件群組 Component Grouping 第3版新功能介紹 (含資料下載) 另外, 中文版的教學已經準備好了, 備有簡體和繁體版, 趕快下載來看看! 設計PCB產品激活:激活入品 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum。
標簽: DesignSpark PCB 設計工具 免費下載
上傳時間: 2013-10-19
上傳用戶:小眼睛LSL
DesignSpark PCB 第3版現已推出! 包括3種全新功能: 1. 模擬介面 Simulation Interface 2. 設計計算機 Design Calculator 3. 零件群組 Component Grouping 第3版新功能介紹 (含資料下載) 另外, 中文版的教學已經準備好了, 備有簡體和繁體版, 趕快下載來看看! 設計PCB產品激活:激活入品 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum。
標簽: DesignSpark PCB 設計工具 免費下載
上傳時間: 2013-10-07
上傳用戶:a67818601
**智能監視系統*** 程序運行時需要視頻捕捉設備,如果沒有,請安裝USB_CAMERA目錄下的設備驅動程序。 ***停車場收費系統*** 先安裝sql server , 其中sa用戶沒有口令,再使用sql目錄下的sql文件建立新數據庫。 ***高校銀卡系統*** 先安裝sql server , 其中sa用戶沒有口令,再使用sql目錄下的sql文件建立新數據庫。 ***郵件短信系統*** 1.實現郵件檢測功能: (1)注冊賬號,注意正確添寫POP3服務器,用戶名,密碼。 2.實現發送短信功能: (1)在注冊賬號時要添寫正確的手機號碼,并選中發送到手機的復選框。 (2)跟據自己購買的GSM模塊說明書設置串口參數,一般是“19200,n,8,1”。 (3)添寫當地短信中心號碼,前面的86可加可不加,如果沒有寫,系統在按“確定”后會自動加上。 (4)注意:如果短信中含有中文字符,則一定要設成Pdu模式,否則短信可能發送失敗
上傳時間: 2013-12-23
上傳用戶:上善若水
一個很好用的 lcd 時鐘程序 C語言 #include<reg51.h> #include<stdio.h> //定義計時器0 的重裝值 #define RELOAD_HIGH 0x3C #define RELOAD_LOW 0xD2 //定義按鍵彈跳時間 #define DB_VAL //定義設置模式的最大時間間隔 #define TIMEOUT 200 //定義游標位置常數 #define HOME 0 #define HOUR 1 #define MIN 2 #define SEC 3
標簽: include define RELOAD stdio
上傳時間: 2014-12-19
上傳用戶:zukfu
小弟撰寫的類神經pca對圖片的壓縮與解壓縮,對來源圖片training過後,可使用該張圖像的特性(eigenvalue和eigenvetex)來對別張圖解壓縮,非常有趣的方式,再設定threashold時注意時值不要過大,因為這牽涉inverse matrex的計算.
標簽: eigenvalue eigenvetex threashol training
上傳時間: 2015-12-02
上傳用戶:wpwpwlxwlx
屬用者輸入一數字n,程式便會產生一個4n*4n的魔術方陣,魔術方陣除顯示於螢幕上並會產生一檔案magic.txt檔案中同樣會有魔術方陣
標簽:
上傳時間: 2016-06-10
上傳用戶:924484786
int main(int argc,char *argv[]) { char ch while(true) { printf("*************************************\n") printf(" 1.Reader Priority\n") printf(" 2.Writer Priority\n") printf(" 3.Exit to Windows\n") printf("*************************************\n") printf("Enter your choice(1,2,3): ") do{ ch=(char)_getch() }while(ch!= 1 &&ch!= 2 &&ch!= 3 ) system("cls") if(ch== 3 ) return 0 else if(ch== 1 ) ReaderPriority("thread.dat") else WriterPriority("thread.dat") printf("\nPress Any Key to Coutinue:") _getch() system("cls") } return 0
上傳時間: 2017-01-06
上傳用戶:gonuiln
PC與單片機雙向通訊智能溫控程序 #include <AT89X51.H> #include <intrins.h> #define Key_UP P1_0 #define Key_DOWN P1_1 #define Key_SET P1_2 #define RelayOutPort P2_0 #define LEDPort P0 #define DELPort P2_1 #define LEDTwoC P3_6 #define LEDThreeC P3_7 #define TMPort P2_7 #define INBUF_LEN 5 //數據長度 unsigned char inbuf1[INBUF_LEN]={ 0 , 0 , 0 , 0 , 0 } //發送緩沖區 unsigned char inbuf2[50] //接收緩沖區 unsigned char count3 void init_serialcomm( void ) { SCON = 0x50 //SCON: serail mode 1, 8-bit UART, enable ucvr TMOD |= 0x20 //TMOD: timer 1, mode 2, 8-bit reload PCON |= 0x80 //SMOD=1 TH1 = 0xFA //Baud:4800 fosc=11.0592MHz IE |= 0x90 //Enable Serial Interrupt TR1 = 1 // timer 1 run } //向串口發送一個字符 void send_char_com( unsigned char ch) { SBUF=ch while (TI== 0 ) TI= 0
標簽: include intrins define Key_UP
上傳時間: 2014-11-29
上傳用戶:風之驕子