• /  99
  • 下載費用: 24.9積分  

單片機原理(第三版)呂建忠版5.ppt

'單片機原理(第三版)呂建忠版5.ppt'
第5章 MCS–51單片機的接口與應用 5.1 按鍵、鍵盤及其接口5.2 顯示及顯示器接口5.3 A/D轉換器接口5.4 D/A轉換器接口5.5 行程開關、晶閘管、 繼電器與單片機的接口5.1 按鍵、鍵盤及其接口5.1.1 鍵輸入過程與軟件結構圖5.1 MCS–51單片機鍵輸入過程 5.1.2 鍵盤接口和鍵輸入軟件中應解決的幾個問題 1.消除鍵抖動鍵穩定鍵按下前沿抖動前沿抖動圖5.2 鍵合斷時的電壓抖動圖5.3 消除鍵抖動電路 2.鍵編碼及鍵值 (1) 用鍵盤連接的I/O線的二進制組合表示鍵碼。例如用4行、4列線構成的16個鍵的鍵盤,可使用一個8位I/O口線的高、低4位口線的二進制數的組合表示16個鍵的編碼,如圖5.4(a)所示。各鍵相應的鍵值為88H、84H、82H、81H、48H、44H、42H、41H、28H、24H、22H、21H、18H、14H、12H、11H。這種鍵值編碼軟件較為簡單直觀,但離散性大,不便安排散轉程序的入口地址。 (2) 順序排列鍵編碼。如圖5.4(b)所示。這種方法,鍵值的形成要根據I/O線的狀態作相應處理。鍵碼可按下式形成:鍵碼=行首鍵碼+列號圖5.4 行列式鍵盤的編碼與鍵值 (a) 二進制組合編碼;(b) 順序排列編碼 3.鍵盤的監測方法 對于計算機應用系統,鍵盤掃描只是CPU工作的一部分,鍵盤處理只是在有鍵按下時才有意義。對是否有鍵按下的信息輸入方式有中斷方式與查詢方式兩種。5.1.3 獨立式按鍵1.獨立式按鍵接口結構圖5.5 獨立式按鍵的接口電路示意圖(a) 中斷方式;(b) 查詢方式 2.獨立式按鍵的軟件結構 下面是查詢方式的鍵盤程序。K0~K7為功能程序入口地址標號,其地址間隔應能容納JMP指令字節,PROM0~PROM7分別為每個按鍵的功能程序。設I/O為P1口。START:MOV A,#0FFH ; MOV P1,A ;置P1口為輸入狀態 MOV A,P1 ;鍵狀態輸入 JNB ACC.0,K0 ;檢測0號鍵是否按下,按下轉 JNB ACC.1,K1 ;檢測1號鍵是否按下,按下轉JNB ACC.2,K2 ;檢測2號鍵是否按下,按下轉 JNB ACC.3,K3 ;檢測3號鍵是否按下,按下轉 JNB ACC.4,K4 ;檢測4號鍵是否按下,按下轉 JNB ACC.5,K5 ;檢測5號鍵是否按下,按下轉 JNB ACC.6,K6 ;檢測6號鍵是否按下,按下轉 JNB ACC.7,K7 ;檢測7號鍵是否按下,按下轉 JMP START ;無鍵按下返回,再順次檢測K0:AJMP PROM0K1:AJMP PROM1 K7:AJIMP PROM7;入口地址表 … PROM0:……………………… ;0號鍵功能程序 ……………………… JMP START ;0號鍵功能程序執行完返回PROM1:……………………… ;0號鍵功能程序 ……………………… JMP START ;1號鍵功能程序執行完返回 ……………………… ;7號鍵功能程序PROM7: ……………………… JMP START ;7號鍵功能程序執行完返回…5.1.4 行列式鍵盤 行列式鍵盤又叫矩陣式鍵盤。用I/O口線組成行、列結構,按鍵設置在行列的交點上。例如4×4的行列結構可組成16個鍵的鍵盤。因此,在按鍵數量較多時,可以節省I/O口線。 1.行列式鍵盤的接口 行列式鍵盤的接口方法有許多,例如直接接口于單片機的I/O口上;利用擴展的并行I/O接口;用串行口擴展并行I/O口接口;利用一種可編程的鍵盤、顯示接口芯片8279進行接口等。其中,利用擴展的并行I/O接口方法方便靈活,在單片機應用系統中比較常用。圖5.6 8155擴展I/O口組成的行列式鍵盤 2.鍵盤工作原理 按鍵設置在行、列線的交點上,行、列線分別連接到按鍵開關的兩端。行線通過上拉電阻接+5 V,被箝位在高電平狀態。 對鍵盤的工作過程可分兩步:第一步是CPU首先檢測鍵盤上是否有鍵按下;第二步是再識別是哪一個鍵按下。 檢測鍵盤上有無鍵按下可采用查詢工作方式、定時掃描工作方式和中斷工作方式。 1) 查詢工作方式 鍵盤中有無鍵按下是由列線送入全掃描字,讀入行線狀態來判別的。其方法是:PA口輸出00H,即所有列線置成低電平,然后將行線電平狀態讀入累加器A中。如果有鍵按下,總會有一根行線電平被拉至低電平,從而使行輸入狀態不全為"1"。 鍵盤中哪一個鍵按下是由列線逐列置低電平后,檢查行輸入狀態,稱為逐列掃描。其方法是:從PA0開始,依次輸出"0",置對應的列線為低電平,然后從PC口讀入行線狀態,如果全為"1",則所按下之鍵不在此列;如果不全為"1",則所按下的鍵必在此列,而且是與0電平行線相交的交點上的那個鍵。 為求取鍵碼,在逐列掃描時,可用計數器記錄下當前掃描列的列號,然后用行線值為"0"的行首鍵碼加列號的辦法計算。有鍵按下否調用6 ms延時子程序開 始調用12 ms延時子程序有鍵按下否判斷閉合鍵,鍵碼入棧保存閉合鍵釋放否鍵碼 → A返 回YYYNNN圖5.7 鍵盤掃描子程序流程框圖鍵盤掃描子程序如下:KEY1:ACALL KS1 ;調用判斷有無鍵按下子程序 JNZ LK1 ;有鍵按下時,(A)≠ 0轉消抖延時 AJMP KEY1 ;無鍵按下返回 LK1:ACALL TM12S ;調12 ms延時子程序 ACALL KS1 ;查有無鍵按下,若有則真有鍵按下 JNZ LK2 ;鍵(A)≠ 0逐列掃描 AJMP KEY1 ;不是真有鍵按下,返回 LK2;MOV R2,#0FEH ;。省略部分。 A,#DATA ;8位數字量送累加器MOVX @DPTR,A ;向鎖存器寫入數字量,同時啟動轉換圖5.24 單路DAC0830/DAC0831/DAC0832控制時序 下面的程序可使DAC0830/DAC0831/ DAC0832輸出呈漸升驟降的電壓鋸齒波。 START:MOV DPTR,#7FFFH MOV A,#00 LOOP :MOVX @DPTR,A INC A MOV R0,#data ;data為延時常數 DJNZ R0,$ ;延時,改變data可改變鋸齒波周期T值 SJMP LOOP o圖5.25 由軟件產生的鋸齒波 圖5.26 兩路DAC0830/DAC0831/DAC0832與單片機接口邏輯圖 如果圖5.26中的模擬輸出分別用于示波器的X、Y偏轉,則MCS-51執行下面的程序后,可使示波器上的光點根據參數X、Y的值同步移動。MOV DPTR,#0DFFFHMOV A,#XMOVX @DPTR,A ;將參數X寫入DAC(1)的數據輸入鎖存器MOV DPTR,#0BFFFHMOV A,#YMOVX @DPTR,A ;將參數Y寫入DAC(1)的數據輸入鎖存器MOV DPTR,#7FFFHMOVX @DPTR,A ;兩片DAC同時啟動轉換,同步輸出SJMP $ 3.DAC0830/DAC0831/DAC0832的模擬輸出方式 DAC0830/DAC0831/DAC0832屬于電流輸出型的D/A轉換器,其轉換結果是與輸入數字量成正比的電流。這種形式的輸出不能直接帶動負載,需經運算放大器放大并轉換成電壓輸出。電壓輸出又根據不同的場合,需要單極性電壓輸出和雙極性電壓輸出。 圖5.22、圖5.25所示的接口電路是單極性電壓輸出,運放的輸出電壓為其中,D為用十進制表示的數字輸入量。例如,設VREF =-5 V,當D=FFH=255時,這是最大的輸出電壓。 若D=01H=1時,這是最低位LSB對應的輸出電壓。運放的輸出電壓與參考電壓VREF是反極性。根據運放的理想情況,運放A2的反向輸入端"虛地",且I1+I2=0,而如果選擇R2=R3=2R1,則可以得到VOUT2=–(2VOUT1+VREF) 設VREF=+5 V,當VOUT1=0 V時,VOUT2=5 V;VOUT1=–2.5 V時, VOUT2=0 V;VOUT1=–5 V時, VOUT2=5 V??梢?,VOUT2將VOUT1輸出電壓范圍0~5 V轉換成雙極性電壓范圍–5~+5 V。因 所以5.4.3 高于8位D/A轉換器與單片機的接口 在微機控制系統中,為了提高精度需要采用10位、12位、14位,甚至更高位數的D/A轉換器芯片。高于8位的D/A轉換器芯片與8位單片機接口,被轉換的數據至少要分兩次送出。這需要解決兩個問題:一是分時傳送的數據格式,二是數據不同時傳送可能引起的輸出模擬量而出現"毛刺"。后一問題可通過D/A轉換芯片內部或外部增加鎖存器,達到兩級緩沖,使被轉換數據完整進入二級緩沖器,開始轉換。圖5.28 8位系統的12位數據格式(a) 左對齊格式; (b) 右對齊格式 1.DAC1208系列的結構與引腳功能表5.4 DAC1208系列精度 精 度型 號0.012úC12080.024úC12090.05úC1210圖5.29 DAC0830系列結構框圖 2.DAC1208系列D/A轉換器與MCS-51單片機的接口圖5.30 DAC1208系列與單片機接口邏輯圖 D/A轉換程序如下: MOV DPTR,#4001H ;使DPTR指向8位輸入鎖存器MOV R1,#DIGIT ;使R1指向12位數的高8位單元MOV A,@R1 ;取高8位轉換數據MOVX @DPTR,A ;向DAC1208送高8位數據DEC DPTR ;使DPTR指向4位輸入鎖存器INC R1 ;使R1指向12位數的低4位單元MOV A,@R1 ;取低4位轉換數據SWAP A MOVX @DPTR,A ;再向DAC1208送低4位數據MOV DPTR,#6000H ;使DPTR指向DAC鎖存器MOVX @DPTR,A ;完成12位D/A轉換5.5 行程開關、晶閘管、繼電器與單片機的接口5.5.1 光電耦合器件 光電耦合器件是由發光二極管(發光源)與受光源(如光敏三極管、光敏晶閘管或光敏集成電路等)封裝在一起,構成電-光-電轉換器件。根據受光源結構的不同,可以將光電耦合器件分為晶體管輸出的光電耦合器件和晶閘管輸出的光電耦合器件兩大類。 晶體管輸出的光電耦合器件的內部結構如圖5.31所示。圖 5.31 晶體管光耦器件結構圖 圖5.32 晶閘管輸出光耦內部結構 5.5.2 行程開關、繼電器觸點與單片機的接口圖5.33 開關、觸點狀態輸入接口 5.5.3 晶閘管元件與單片機接口圖5.34 光耦晶閘管與單片機接口示例 為了避免誤觸發,在MOC304第4引腳和外部大功率雙向可控硅陰極之間增加了泄放電阻R3。R2是MOC3041導通的限流電阻,避免因電流過大引起MOC3041過流而損壞。 當單片機P1.1引腳輸出低電平時,MOC3041內部的發光二極管導通,由于MOC3041內部帶有過零觸發電路,交流電壓過零后將觸發內部的雙向可控硅而導通,結果外部大功率雙向晶閘管導通,從而接通交流負載。5.5.4 繼電器與單片機接口圖5.35 繼電器與單片機接口示例(a) 驅動微型繼電器;(b) 驅動較大功率繼電器 當P1.0輸出低電平時,V1導通,繼電器吸合;當P1.0輸出高電平時,V1截止,繼電器不吸合。在繼電器吸合到斷開的瞬間,由于線圈中的電流不能突變,將在線圈產生下正上負的感應電壓,使晶體管集電極承受很高電壓,有可能損壞驅動管V1,為此在繼電器線圈兩端并接一個續流二極管VD2,使線圈兩端的感應電壓被箝位在0.7 V左右。正常工作時,線圈上的電壓上正下負,二極管VD2截止,對電路沒有影響。當繼電器驅動電壓VCC大于5 V時,VCC電壓可能通過三極管V1串入低壓回路,為此在7406和V1之間加二極管VD2。
關 鍵 詞:
第三 原理 單片機
 天天文庫所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:單片機原理(第三版)呂建忠版5.ppt
鏈接地址: http://www.476824.live/p-51496948.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服點擊這里,給天天文庫發消息,QQ:1290478887 - 聯系我們

本站為“文檔C2C交易模式”,即用戶上傳的文檔直接賣給(下載)用戶,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有【成交的100%(原創)】。本站是網絡服務平臺方,若您的權利被侵害,侵權客服QQ:1290478887 歡迎舉報。

[email protected] 2017-2027 http://www.476824.live 網站版權所有

粵ICP備19057495號 

收起
展開
球探网即时蓝球比分 彩视播陕西快乐10分 广西11选5欢迎到店 快乐十二选五辽宁一 河北11选五开奖真准网 广西体育彩票 福建快3开奖 乌鲁木齐股指期货配资 上海11选5遗漏数据一定牛 福建11选5任玩法 吉林11选五玩法说明