單片機原理及應用-C51語言李全利_第1頁
單片機原理及應用-C51語言李全利_第2頁
單片機原理及應用-C51語言李全利_第3頁
單片機原理及應用-C51語言李全利_第4頁
單片機原理及應用-C51語言李全利_第5頁
已閱讀5頁,還剩31頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、2022-3-61第第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-634.1 LED、數碼管及蜂鳴器接口技術、數碼管及蜂鳴器接口技術4.1.1 4.1.1 LEDLED接口接口 v LED LED的特性及其灌電流驅動的特性及其灌電流驅動LEDLED典型工作點:典型工作點:1.75V1.75V, ,10mA10mA。單個單個LEDLED驅動特性如下圖:驅動特性如下圖:v 多個多個LEDLED并口直接驅動并口直接驅動 限流與上拉電阻共享驅動限流與上拉電阻共享驅動 2022-3-65void main(void)void

3、 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); DelayMs(500); 【例例4-14-1】 2022-3-66v 數碼管數碼管4.1.2 4.1.2 數碼管接口數碼管接口 2022-3-67v 晶體三極管驅動晶體三極管驅動2022-3-68v 達林頓陣列驅動達林頓陣列驅動2022-3-69v常序相接時常序相接時 uchar code Se

4、gCode = / uchar code SegCode = / 段碼段碼0 x3F,0 x3F,0 x060 x06,0 x5B,0 x4F;,0 x5B,0 x4F;dpgfedcba0 0000110共陰極共陰極字形字形“1 1”編碼示例:編碼示例:0606H H2022-3-610uchar 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

5、xF8,0 x80,0 x90; uchar code BitCode= 0 xfe,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-) /發聲發聲2

6、50ms250ms BEEP = BEEP; BEEP = BEEP; /取反及調用指令占用約取反及調用指令占用約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(); 4.2.1 4.2.1 獨立按鍵接口獨立按鍵接口v 按鍵及其消抖按鍵及其消抖v 簡

7、單開關及輸入接口簡單開關及輸入接口4.2 按鍵及鍵盤接口技術按鍵及鍵盤接口技術2022-3-615v 開關閉合與斷開時的抖動及去抖電路開關閉合與斷開時的抖動及去抖電路 按鍵較少時:去抖電路按鍵較少時:去抖電路 按鍵較多時:軟件延時按鍵較多時:軟件延時, ,通常為通常為10ms10ms2022-3-616v 矩陣鍵盤接口電路矩陣鍵盤接口電路4.2.2 4.2.2 鍵盤接口鍵盤接口v 逐行掃描法逐行掃描法 n 判有無鍵按下。判有無鍵按下。將列線設置為輸出口,輸出全將列線設置為輸出口,輸出全0 0(所有列線為低電平),然后讀行線狀態,若行線狀(所有列線為低電平),然后讀行線狀態,若行線狀態不全為高電

8、平,則可斷定有鍵按下。態不全為高電平,則可斷定有鍵按下。n 判按下哪個鍵。判按下哪個鍵。先置列線先置列線C0C0為低電平,其余列線為為低電平,其余列線為高電平,讀行線狀態,如行線狀態不全為高電平,讀行線狀態,如行線狀態不全為“1”1”,則,則說明所按鍵在該列;否則所按鍵不在該列,再使說明所按鍵在該列;否則所按鍵不在該列,再使C1C1列列線為低電平,其它列為高電平,判斷線為低電平,其它列為高電平,判斷C1C1列有無按鍵按列有無按鍵按下。其余類推。下。其余類推。n 獲得相應鍵號。獲得相應鍵號。鍵號:鍵號:鍵號鍵號 = = 行首號行首號+ +列號列號。行首。行首號為行數乘以行號。根據鍵號就可以進入相

9、應的鍵功號為行數乘以行號。根據鍵號就可以進入相應的鍵功能實現程序。能實現程序。v 線反轉法線反轉法 例如按下例如按下“2”2”號鍵,號鍵,先使列線輸出全先使列線輸出全“0”0”,讀行線,結果為,讀行線,結果為E0HE0H;再使行線輸出全;再使行線輸出全“0”0”,讀列線,結果為,讀列線,結果為0BH0BH。將。將2 2次讀到的結次讀到的結果拼成一個字節,即果拼成一個字節,即EBHEBH,該值稱為鍵值。,該值稱為鍵值。 4.3 字符型字符型LCD顯示器接口技術顯示器接口技術4.3.1 LCD16024.3.1 LCD1602模塊的外形與引腳模塊的外形與引腳 引腳引腳0101、0202:VSSVS

10、S、VDDVDD,接地接地和和+5V+5V引腳引腳引腳引腳0303:VLVL,對比度調整端,對比度調整端,接地接地時對比度最高時對比度最高引腳引腳0404:RSRS,1-1-數據寄存器數據寄存器/0-/0-命令寄存器命令寄存器引腳引腳0505:RWRW,1-1-讀讀/0-/0-寫寫引腳引腳0606:E E,使能端,使能端引腳引腳07071414:D0D0D7D7,8 8位雙向數據線位雙向數據線引腳引腳1515、1616:BLABLA、BLKBLK,背光,背光正、正、負負極極vLCD1602LCD1602模塊組成模塊組成 4.3.2 LCD16024.3.2 LCD1602模塊的組成模塊的組成

11、對于對于16x216x2字符的顯示要增加字符的顯示要增加HD44100HD44100驅動器驅動器 HD44780HD44780本身可以驅動本身可以驅動16x116x1字符字符或或8x28x2字符字符 vHD44780 HD44780HD44780由三部分構成:由三部分構成: nCGRCGRO OM M 字符發生器,字符發生器,存儲不同的點陣字符圖形表,存儲不同的點陣字符圖形表,每個字符都有固定的代碼。每個字符都有固定的代碼。nCGRCGRA AM M 自定義字符發生器,自定義字符發生器,可定義可定義8 8個字符圖形。個字符圖形。nDDRAMDDRAM 顯示緩沖區。顯示緩沖區。 例:代碼例:代碼

12、41H41H顯示字符顯示字符“A A”。 CGRCGRO OM M CGRCGRA AM M 可以自定義可以自定義8 8個字符:個字符:n 07 07n 或或8-158-15 CGRAMCGRAM的內容:的內容: unsigned char code WeekWord= unsigned char code WeekWord= LoadCgram(WeekWord);LoadCgram(WeekWord);DispChar(0,1,0);DispChar(0,1,0);LoadCgramLoadCgram定義為:定義為: WCmd(0 x40); WCmd(0 x40); for(i=0;i6

13、4;i+) for(i=0;i64;i+) WDat(ptcgrami); WDat(ptcgrami); vDDRAMDDRAM有有8080個單元,但個單元,但第第1 1行行僅用僅用00H00H0FH0FH單元,單元,第第2 2行行僅用僅用40H40H4FH4FH單元單元 4.3.3 LCD16024.3.3 LCD1602模塊的命令模塊的命令 序號指令RSR/WD7D6D5D4D3D2D1D01清屏00000000012光標歸位000000001*3輸入模式設置00000001I/DS4顯示與不顯示設置0000001DCB5光標或屏幕內容移位選擇000001S/CR/L*6功能設置0000

14、1DLNF*7CGRAM地址設置0001CGRAM地址8DDRAM地址設置001DDRAM地址9讀忙標志和計數器地址設置01BF計數器地址10寫DDRAM或CGROM10 要寫的數據11讀DDRAM或CGROM11 讀出的數據4.3.4 LCD16024.3.4 LCD1602模塊的命令模塊的命令 v接口電路接口電路 v驅動程序驅動程序sbit RS = P2 0; sbit RS = P2 0; / /* *命令命令/ /數據選擇數據選擇* */ /sbit RW = P2 1; sbit RW = P2 1; / /* *讀讀/ /寫選擇寫選擇* */ /sbit EN = P2 2; s

15、bit EN = P2 2; / /* *高到低使能高到低使能* */ /uchar code dis1= WELCOME TO;uchar code dis1= WELCOME TO;uchar code dis2= HUST ZDH; uchar code dis2= HUST ZDH; uchar code WeekWord= uchar code WeekWord= 0 x18,0 x18,0 x07,0 x08,0 x08,0 x08,0 x07,0 x00, /0 x18,0 x18,0 x07,0 x08,0 x08,0 x08,0 x07,0 x00, /,代碼,代碼 0 x0

16、0 0 x00 0 x00,0 x00,0 x00,0 x00,0 xff,0 x00,0 x00,0 x00, /0 x00,0 x00,0 x00,0 x00,0 xff,0 x00,0 x00,0 x00, /一,代碼一,代碼 0 x010 x01- - ; ; void WCmd(uchar cmd)void WCmd(uchar cmd) Busy();Busy();RS = 0;RS = 0;RW = 0;RW = 0;EN = 1;EN = 1;P0= cmd;P0= cmd;D10us();D10us();EN = 0;EN = 0; 寫命令函數:寫命令函數:寫數據函數:寫數據

17、函數:void WDat(uchar dat)void WDat(uchar dat) Busy(); Busy(); RS = 1;RS = 1;RW = 0;RW = 0;EN = 1;EN = 1;P0= dat;P0= dat;D10us();D10us();EN = 0;EN = 0; void Init()void Init() DelayMs(10);DelayMs(10);WCmd(0 x38); /WCmd(0 x38); /功能設置功能設置:8 8位口,位口,2 2行,行,5 5* *7 7點陣點陣DelayMs(10);DelayMs(10);WCmd(0 x0c); /

18、WCmd(0 x0c); /顯示設置顯示設置:開顯示,關光標,無閃爍:開顯示,關光標,無閃爍DelayMs(10);DelayMs(10);WCmd(0 x06); /WCmd(0 x06); /輸入模式輸入模式:右移一格,地址加:右移一格,地址加1 1DelayMs(10);DelayMs(10);WCmd(0 x01); /WCmd(0 x01); /清顯示清顯示DelayMs(10);DelayMs(10); 初始化函數:初始化函數:void Pos(uchar x,uchar y)void Pos(uchar x,uchar y) if(y=0 x01)if(y=0 x01)WCmd(x|0 x80);/WCmd(x|0 x80);/高位置高位置1 1if(y=0 x02)if(y=0 x02)WCmd(x|0 xc0);/WCmd(x|0 xc0);/高位置高位置1 1,再加,再加40H40H 位置設置及在指定位置顯示字符函數:位置設置及在指定位置顯示字符函數:void DispChar(uchar x,uchar y,uchar dat) void Disp

溫馨提示

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

最新文檔

評論

0/150

提交評論