第4章80C51的并行口應用_第1頁
第4章80C51的并行口應用_第2頁
第4章80C51的并行口應用_第3頁
第4章80C51的并行口應用_第4頁
第4章80C51的并行口應用_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、2022-3-71第第4 4章章 80C5180C51人機接口技術人機接口技術LEDLED、數碼管及蜂鳴器接口技術、數碼管及蜂鳴器接口技術 4.1按鍵及鍵盤接口技術按鍵及鍵盤接口技術 4.2字符型字符型LCDLCD顯示器接口技術顯示器接口技術 4.3單片機單片機最小系統最小系統AT89S52AT89S52LEDLED數碼管數碼管蜂鳴器蜂鳴器LCDLCD按鍵按鍵鍵盤鍵盤開關開關n 每根口線最大可吸收每根口線最大可吸收10mA10mA的(灌)電流的(灌)電流n P0P0口吸收電流的總和不能超過口吸收電流的總和不能超過26mA26mA n P1P1、P2P2和和P3P3每個口吸收電流的總和限制在每個

2、口吸收電流的總和限制在15mA15mA n 4 4個口所有口線的吸收電流總和限制在個口所有口線的吸收電流總和限制在71mA71mA 2022-3-734.1 LED、數碼管及蜂鳴器接口技術、數碼管及蜂鳴器接口技術4.1.1 4.1.1 LEDLED接口接口 v LED LED的特性及其灌電流驅動的特性及其灌電流驅動LEDLED典型工作點:典型工作點:1.75V1.75V, ,10mA10mA。單個單個LEDLED驅動特性如下圖:驅動特性如下圖:v 多個多個LEDLED并口直接驅動并口直接驅動 限流與上拉電阻共享驅動限流與上拉電阻共享驅動 2022-3-75【例例4-14-1】 uchar co

3、deuchar code ScanCode= ScanCode=0 x01;0 x02,0 x04,0 x08,0 x10,0 x20 x01;0 x02,0 x04,0 x08,0 x10,0 x20,0 x40,0 x800,0 x40,0 x80 ;void main(void)void main(void) uchar i; uchar i; P21 = 1; P21 = 1; while(1)while(1) for(i=0;i8;i+) for(i=0;i8;i+) DataPort= ScanCodei; DataPort= ScanCodei; DelayMs(500); De

4、layMs(500); 2022-3-762022-3-77v/ /* *將四個將四個I/OI/O口的燈點亮或點暗口的燈點亮或點暗* */ /v#include#include vmain()main() / / 主程序開始主程序開始 v P0=0X00; / P0=0X00; / 初值初值=0000 0000,=0000 0000,狀態(tài)為將所有的燈全部點亮狀態(tài)為將所有的燈全部點亮( (共陽共陽) )P1=0X00; / P1=0X00; / 初值初值=0000 0000,=0000 0000,狀態(tài)為將所有的燈全部點亮狀態(tài)為將所有的燈全部點亮( (共陽共陽) )v P2=0XFF; / P2=

5、0XFF; / 初值初值=1111 1111,=1111 1111,狀態(tài)為將所有的燈全部點暗狀態(tài)為將所有的燈全部點暗( (共陽共陽) )v P3=0XFF; / P3=0XFF; / 初值初值=1111 1111,=1111 1111,狀態(tài)為將所有的燈全部點暗狀態(tài)為將所有的燈全部點暗( (共陽共陽) ) 2022-3-78v 數碼管數碼管4.1.2 4.1.2 數碼管接口數碼管接口 2022-3-794.1.2 4.1.2 數碼管接口數碼管接口 靜態(tài)顯示靜態(tài)顯示動態(tài)掃描動態(tài)掃描2022-3-7104.1.2 4.1.2 數碼管接口數碼管接口 2022-3-7114.1.2 4.1.2 數碼管接

6、口數碼管接口 dpdpg gf fe ed dc cb ba a0 0000110共陰極共陰極字形字形“1 1”編碼示例:編碼示例:0606H H2022-3-712v常序相接時常序相接時 2022-3-713uchar code SegCode = uchar code SegCode = / / 段碼段碼0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90; 0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90; uchar code BitCode= 0 x

7、fe,0 xfd,0 xfb,0 xf7; uchar code BitCode= 0 xfe,0 xfd,0 xfb,0 xf7; / / 位碼位碼uchar DispBuf4;uchar DispBuf4; /顯示數字要先送入此緩沖數組顯示數字要先送入此緩沖數組 void BufToSeg(void)void BufToSeg(void) uchar i; uchar i; for(i = 0; i 4; i+) for(i = 0; i 0; j-) for (j = 400; j 0; j-) /發(fā)聲發(fā)聲250ms250ms BEEP = BEEP; BEEP = BEEP; /取反及

8、調用指令占用約取反及調用指令占用約3us3us d622us(); d622us(); /共延時共延時625us625us,周期,周期1250us1250us,頻率頻率800Hz800Hz for (j = 400 for (j = 400* *4; j 0; j-) 4; j 0; j-) /靜音靜音1000ms1000ms BEEP = 1; / BEEP = 1; /關閉蜂鳴器關閉蜂鳴器 d622us(); d622us(); 2022-3-717v彈性按鍵彈性按鍵v 自鎖按鍵自鎖按鍵v撥動開關撥動開關v撥碼開關撥碼開關v電源開關電源開關4.2 按鍵及鍵盤接口技術按鍵及鍵盤接口技術4.2

9、.1 4.2.1 獨立按鍵接口獨立按鍵接口v 按鍵及其消抖按鍵及其消抖v 簡單開關及輸入接口簡單開關及輸入接口4.2 按鍵及鍵盤接口技術按鍵及鍵盤接口技術2022-3-719v 開關閉合與斷開時的抖動及去抖電路開關閉合與斷開時的抖動及去抖電路 按鍵較少時:去抖電路按鍵較少時:去抖電路 按鍵較多時:軟件延時按鍵較多時:軟件延時, ,通常為通常為10ms10ms2022-3-7204.2 按鍵及鍵盤接口技術按鍵及鍵盤接口技術2022-3-721#includesbitP3_3=P33;void delay10ms(void) /延時10ms函數 unsigned char a,b; for(b=1

10、51;b0;b-); for(a=29;a0;a-); voidmain()unsignedcharcodetable16=0 xC0, 0 xF9, 0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90,0 x88,0 x83,0 xC6,0 xA1,0 x86,0 x8E;/0-F譯碼表unsignedchartemp=1;/按鍵后初值1P1=0 xC0;/按鍵前顯示02022-3-722while(1)while(P3_3=1);delay10ms();/保證10ms的非1if(P3_3=0)while(P3_3=0);delay10ms();

11、/保證10ms的非0if(P3_3=1)P1=tabletemp;/顯示數值temp=temp+1;if(temp=16) temp=0; /到16清02022-3-723v 矩陣鍵盤接口電路矩陣鍵盤接口電路4.2.2 4.2.2 鍵盤接口鍵盤接口v 逐行掃描法逐行掃描法 n 判有無鍵按下。判有無鍵按下。將列線設置為輸出口,輸出全將列線設置為輸出口,輸出全0 0(所有列線為低電平),然后讀行線狀態(tài),若行線狀(所有列線為低電平),然后讀行線狀態(tài),若行線狀態(tài)不全為高電平,則可斷定有鍵按下。態(tài)不全為高電平,則可斷定有鍵按下。n 判按下哪個鍵。判按下哪個鍵。先置列線先置列線C0C0為低電平,其余列線為

12、為低電平,其余列線為高電平,讀行線狀態(tài),如行線狀態(tài)不全為高電平,讀行線狀態(tài),如行線狀態(tài)不全為“1 1”,則說,則說明所按鍵在該列;否則所按鍵不在該列,再使明所按鍵在該列;否則所按鍵不在該列,再使C1C1列線列線為低電平,其它列為高電平,判斷為低電平,其它列為高電平,判斷C1C1列有無按鍵按下。列有無按鍵按下。其余類推。其余類推。n 獲得相應鍵號。獲得相應鍵號。鍵號:鍵號:鍵號鍵號 = = 行首號行首號+ +列號列號。行首。行首號為行數乘以行號。根據鍵號就可以進入相應的鍵功號為行數乘以行號。根據鍵號就可以進入相應的鍵功能實現程序。能實現程序。2022-3-74.2.2 4.2.2 鍵盤接口鍵盤接

13、口v1. 掃描法掃描法v2. 反轉法反轉法每個按鍵得到時間不同每個按鍵得到時間不同1)P1口賦值0 x0F,即00001111,如0鍵按下了,則這時P1口的實際值為00001110(0 x0E);2)P1口賦值0 xF0,即11110000,如0鍵按下了,則這時P1口的實際值為11100000(0 xE0); 3)將兩次P1口的實際值相加為11101110(0 xEE);4)4*4鍵盤鍵值表0 xee,0 xde,0 xbe,0 x7e,0 xed,0 xdd,0 xbd,0 x7d,0 xeb,0 xdb,0 xbb,0 x7b,0 xe7,0 xd7,0 xb7,0 x77;5)無鍵按下為

14、11111111(0 xFF)。v 線反轉法線反轉法 例如按下例如按下“2 2”號鍵,號鍵,先使列線輸出全先使列線輸出全“0 0”,讀行線,結果為,讀行線,結果為E0HE0H;再使行線輸出全;再使行線輸出全“0 0”,讀列線,結果為,讀列線,結果為0BH0BH。將。將2 2次讀到的結果拼次讀到的結果拼成一個字節(jié),即成一個字節(jié),即EBHEBH,該值稱為鍵值。,該值稱為鍵值。 2022-3-7272022-3-728#includevoidmain(void)unsignedcharh_code,l_code,key_code;while(1)P0=0 xF0;h_code=P0;h_code=h

15、_code&0 xF0;P0=0 x0F;l_code=P0;l_code=l_code&0 x0F;key_code=h_code|l_code;if(key_code!=0 xFF)2022-3-729switch(key_code)case0 xEE:P1=0 xC0;break;case0 xDE:P1=0 xF9;break;case0 xBE:P1=0 xA4;break;case0 x7E:P1=0 xB0;break;case0 xED:P1=0 x99;break;case0 xDD:P1=0 x92;break;case0 xBD:P1=0 x82;break;ca

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論