三種方法讀取鍵值 使用者設計行列鍵盤介面,一般常採用三種方法讀取鍵值。 中斷式 在鍵盤按下時產生一個外部中斷通知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
災色統計聚類的matlab源碼,可用來進行統計分析,計算白化與灰化的情況
標簽: matlab
上傳時間: 2015-10-27
上傳用戶:1583060504
【二項式係數 運算】Dev-C++ 學習,運用Dynamic Programming 動態規劃計算
標簽: Dev-C
上傳時間: 2016-09-19
上傳用戶:冇尾飛鉈
這是一個求數獨遊戲的m-file 在matlab的命令窗口 鍵入>> sudo7 或者run sudo7 的m-file 之後在 9x9 的方格內 填入 數獨的問題 按下 "計算是否有解" 的功能鍵 若不是存在多組的解,則可以 按下 "顯示結果" 的功能鍵, 也可以載入作者測試的"date1"或"date2" 但不可載入及修改"condition"
上傳時間: 2016-11-18
上傳用戶:waizhang
超聲波成像算法,用合成開口法發射超聲波后,收到的信號進行傅立葉變換,延時加算等步驟成像
上傳時間: 2013-12-10
上傳用戶:aix008
15.2 已經加入了有關貫孔及銲點的Z軸延遲計算功能. 先開啟 Setup - Constraints - Electrical constraint sets 下的 DRC 選項. 點選 Electrical Constraints dialog box 下 Options 頁面 勾選 Z-Axis delay欄.
上傳時間: 2013-10-08
上傳用戶:王慶才
一直以來, 電子電路斷路器( E C B ) 都是由一個MOSFET、一個 MOSFET 控制器和一個電流檢測電阻器所組成的。
上傳時間: 2013-10-18
上傳用戶:qwerasdf
許多電信和計算應用都需要一個能夠從非常低輸入電壓獲得工作電源的高效率降壓型 DC/DC 轉換器。高輸出功率同步控制器 LT3740 就是這些應用的理想選擇,該器件能把 2.2V 至 22V 的輸入電源轉換為低至 0.8V 的輸出,並提供 2A 至 20A 的負載電流。其應用包括分布式電源繫統、負載點調節和邏輯電源轉換。
上傳時間: 2013-12-30
上傳用戶:arnold
一.晶片的作用: 晶片為LED的主要原材料,LED主要依靠晶片來發光. 二.晶片的組成. 主要有砷(AS) 鋁(AL) 鎵(Ga) 銦(IN) 磷(P) 氮(N)鍶(Si)這幾種元素中的若干種組成.
標簽: 芯片
上傳時間: 2013-12-10
上傳用戶:離殤
PLC 以 其 可靠性高、抗干擾能力強、配套齊全、功能完善、適應性強等特點,廣泛應用于各種控制領域。PLC作為通用工業控制計算機,是面向工礦企業的工控設備,使用梯形圖符號進行編程,與繼電器電路相當接近,被廣大工程技術人員接受。但是在實際應用中,如何編程能夠提高PLC程序運行速度是一個值得我們思考研究的問題。1 PLC工作原理PLC 與 計 算機的工作原理基本相同,即在系統程序的管理下,通過運行應用程序完成用戶任務。但兩者的工作方式有所不同。計算機一般采用等待命令的工作方式,而PLC在確定了工作任務并裝人了專用程序后成為一種專用機,它采用循環掃描工作方式,系統工作任務管理及應用程序執行都是用循環掃描方式完成的。PLC 有 兩 種基本的工作狀態,即運行(RUN)與停止(STOP)狀態。在這兩種狀態下,PLC的掃描過程及所要完成的任務是不盡相同的,如圖1所示。 PLC在RUN工作狀態時,執行一次掃描操作所的時間稱為掃描周期,其典型值通常為1一100nis,不同PLC廠家的產品則略有不同。掃描周期由內部處理時間、輸A/ 輸出處理執行時間、指令執行時間等三部分組成。通常在一個掃描過程中,執行指令的時間占了絕大部分,而執行指令的時間與用戶程序的長短有關。用戶 程 序 是根據控制要求由用戶編制,由許多條PLC指令所組成。不同的指令所對應的程序步不同,以三菱FX2N系列的PLC為例,PLC對每一個程序步操作處理時間為:基本指令占0.741s/步,功能指令占幾百微米/步。完成一個控制任務可以有多種編制程序的方法,因此,選擇合理、巧妙的編程方法既可以大大提高程序運行速度,又可以保證可靠性。 提高PLC程序運行速度的幾種編程方法2.1 用數據傳送給位元件組合的方法來控制輸出在 PL C應 用編程中,最后都會有一段輸出控制程序,一般都是用邏輯取及輸出指令來編寫,如圖2所示。在圖2所示的程序中,邏輯取的程序步為1,輸出的程序步為2,執行上述程序共需3個程序步。通常情況下,PLC要控制的輸出都不會是少量的,比如,有8個輸出,在條件滿足時要同時輸出。此時,執行圖2所示的程序共需17個程序步。若我們通過位元件的組合并采用數據傳送的方法來完成圖2所示的程序,就會大大減少程序步驟。在三 菱 PLC中,只處理ON/OFF狀態的元件(如X,Y,M和S),稱為位元件。但將位元件組合起來也可以處理數據。位元件組合由Kn加首元件號來表示。位元件每4bit為一組組合成單元。如KYO中的n是組數,當n=1時,K,Yo 對應的是Y3一Yo。當n二2時,KZYo對應的是Y7一Yo。通過位元件組合,就可以用處理數據的方式來處理位元件,圖2程序所示的功能可用圖3所示的傳送數據的方式來完成。
上傳時間: 2013-11-11
上傳用戶:幾何公差