




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第七章第七章 單片機接口技術(shù)單片機接口技術(shù) 第一節(jié)第一節(jié) 鍵盤接口鍵盤接口第二節(jié)第二節(jié) 顯示器接口顯示器接口第三節(jié)第三節(jié) A/D轉(zhuǎn)換器接口轉(zhuǎn)換器接口第四節(jié)第四節(jié) D/A轉(zhuǎn)換器接口轉(zhuǎn)換器接口圖7-1 89C51應(yīng)用系統(tǒng)框圖89C517.1 鍵盤接口鍵盤接口v非編碼鍵盤:按鍵的動作靠軟件識別v編碼鍵盤:硬件電路識別按鍵動作,并產(chǎn)生按鍵的鍵值或編號按下:按下:P1.0輸入低電平輸入低電平0松開:松開:P1.0輸入高電平輸入高電平189C51抖動抖動-去抖去抖 按鍵產(chǎn)生機械抖動,按鍵產(chǎn)生機械抖動,一次按鍵被誤讀為多一次按鍵被誤讀為多次按鍵次按鍵硬件去抖:利用硬件去抖:利用RS觸發(fā)器觸發(fā)器軟件去抖:檢測
2、到鍵動作,延軟件去抖:檢測到鍵動作,延時時510ms,再次讀鍵,確認(rèn),再次讀鍵,確認(rèn)真正有鍵按下真正有鍵按下1. 獨立式非編碼鍵盤接口及處理程序獨立式非編碼鍵盤接口及處理程序MOV A,#0FFHMOV P1,AMOV A,P1JNB ACC.0,KEY0JNB ACC.1,KEY1假設(shè)為假設(shè)為P1口口為什么為什么P1口寫口寫1?獨立式非編碼鍵盤獨立式非編碼鍵盤2. 行列(矩陣)式非編碼鍵盤接口及處理行列(矩陣)式非編碼鍵盤接口及處理程序程序用于較多按鍵,節(jié)省用于較多按鍵,節(jié)省I/O線。線。判斷是否有健按下:判斷是否有健按下:向列線輸出全掃描字向列線輸出全掃描字00H。讀入行線狀態(tài)。若行線有讀
3、入行線狀態(tài)。若行線有0,則有鍵按下;若行線全則有鍵按下;若行線全1,則,則無鍵按下。無鍵按下。KS: MOV P1, #0FH; 全掃描字全掃描字0送送P1高高4位,設(shè)置位,設(shè)置P1低低4位為輸入位為輸入 MOV A, P1 ;讀入讀入P1口狀態(tài)(行線)口狀態(tài)(行線) CPL A ;變正邏輯,變正邏輯,P1.0-3高電平表示有鍵按下高電平表示有鍵按下 ANL A, #0FH ;屏蔽高屏蔽高4位位 RET ;返回,返回,A不為不為0表示有鍵按下表示有鍵按下P1.0P1.1P1.2P1.3P1.4P1.5P1.6P7.7行列式非編碼鍵盤行列式非編碼鍵盤列掃描法:列掃描法:依次將列線送低電平,逐個檢
4、查行線依次將列線送低電平,逐個檢查行線狀態(tài),確定按鍵在某行某列交叉的點上,取得鍵狀態(tài),確定按鍵在某行某列交叉的點上,取得鍵值,執(zhí)行相應(yīng)程序。值,執(zhí)行相應(yīng)程序。P1.4 P1.5 P1.6 P1.7P1.0P1.1P1.2P1.3例:鍵盤掃描程序例:鍵盤掃描程序SERCH: MOV R2,#0EFH MOV R3,#00HLINE0: MOV A,R2 MOV P1,A MOV A,P1 JB ACC.3,LINE1 MOV A,#00H AJMP TRYKLINE1: JB ACC.2,LINE2 MOV A,#04H AJMP TRYK LINE2: JB ACC.1,LINE3 MOV A
5、,#08H AJMP TRYKLINE3: JB ACC.0,NROW MOV A,#0CH AJMP TRYKNROW: INC R3 MOV A,R2 RL A JNB ACC.0,BACK MOV R2,A AJMP LINE0 TRYK: ADD A,R3BACK: RETv程序控制掃描方式只有當(dāng)單片機空閑時才調(diào)用鍵盤掃描子程序v定時掃描方式利用定時器的溢出中斷請求,每隔一定的時間對鍵盤掃描一次v中斷掃描方式提高CPU的效率,當(dāng)鍵盤上有鍵閉合時產(chǎn)生中斷請求單片機對非編碼鍵盤的控制單片機對非編碼鍵盤的控制7.2 顯示器接口顯示器接口LED點陣雙色顯示屏LED16數(shù)段碼管LCD7.2 顯示
6、器接口顯示器接口由發(fā)光二極管組成,分共陽、共陰兩種。 一、一、Light Emitting DiodeLEDLED顯示器如何顯示出指定數(shù)字顯示器如何顯示出指定數(shù)字/ /字符?字符?COM接低電平(共陰極),接低電平(共陰極),COM接高電平(共陽極);接高電平(共陽極);vCOM接低電平;接低電平;v各輸入端輸入一個顯示代碼,如各輸入端輸入一個顯示代碼,如5BH01011011,對應(yīng),對應(yīng)c,f滅,而滅,而a,b,d,e,g點亮,則點亮,則LED顯示字符顯示字符“2”v顯示各種字符的代碼見下表。對顯示各種字符的代碼見下表。對于共陽極于共陽極LED,將顯示代碼取反。,將顯示代碼取反。v若顯示小數(shù)
7、點,可利用若顯示小數(shù)點,可利用D7位。位。D0aD1bD2cD3dD4eD5fD6gD7comh共陰共陰LED限流電阻限流電阻11011010字型表 LED顯示方式顯示方式靜態(tài)顯示:靜態(tài)顯示:電路解法:電路解法:所有所有LEDLED的位選均共同的位選均共同連接到連接到+VCC+VCC或或GNDGND,每個每個LEDLED的的8 8根段選線分別連接一個根段選線分別連接一個8 8位并行位并行I/OI/O口口,從該,從該I/OI/O口送出相應(yīng)的字口送出相應(yīng)的字型碼顯示字型。型碼顯示字型。 CPU送出一個顯示代碼,送出一個顯示代碼,LED一直一直顯示該字形,直到送下一個代碼顯示該字形,直到送下一個代碼
8、才改變顯示字形。才改變顯示字形。特點:原理簡單;顯示亮度強,無特點:原理簡單;顯示亮度強,無閃爍;占用閃爍;占用I/OI/O資源較多。資源較多。 常用常用于位數(shù)較少的場合。于位數(shù)較少的場合。D0aD1bD2cD3dD4eD5fD6gD7comh共陰LED74LS273P0CLK+P2.0WRMOV A,#0FFH ;顯示顯示8MOV DPTR,#0FEFFH; P2.0=0MOVX DPTR,ALED顯示方式:顯示方式:動態(tài)顯示動態(tài)顯示 連接連接:將各個顯示器的輸入:將各個顯示器的輸入(段選段選)線并聯(lián),由一個)線并聯(lián),由一個I/O口口提供字形代碼;由另一個提供字形代碼;由另一個I/O口口提供
9、提供位選位選代碼。代碼。 顯示顯示:采用軟件掃描顯示方法,:采用軟件掃描顯示方法,某個時刻只點亮某個時刻只點亮1個顯示器個顯示器,點亮?xí)r間不超過點亮?xí)r間不超過20ms,分時分時逐個點亮逐個點亮LED。與靜態(tài)顯示相比,特點:與靜態(tài)顯示相比,特點:節(jié)省硬件電路及節(jié)省硬件電路及I/O資源;資源;占用占用CPU時間多;時間多;亮度相對較低;亮度相對較低;適用于適用于LED位數(shù)較多的場合位數(shù)較多的場合。與靜態(tài)顯與靜態(tài)顯示區(qū)別?示區(qū)別?逐位掃描逐位掃描顯示方式顯示方式 6位共陰位共陰LED。利用。利用8155的的PA口(假設(shè)地址口(假設(shè)地址7F01H)作為位選,作為位選,75452反反相驅(qū)動相驅(qū)動;PB口
10、(口(7F02H)作為段選,)作為段選,7407同相驅(qū)動。在片內(nèi)同相驅(qū)動。在片內(nèi)RAM中設(shè)一中設(shè)一顯示緩沖區(qū)顯示緩沖區(qū)40H45H,依次存放要顯示的,依次存放要顯示的6個字符(個字符(高高4位清位清0,即,即0009H,0A0FH)。)。反復(fù)調(diào)用顯示子程序反復(fù)調(diào)用顯示子程序。DIS:MOVR0,#45H;顯示緩沖區(qū)首址顯示緩沖區(qū)首址MOVR2,#01H;位選位選初始值初始值MOVA,R2LP0:MOVDPTR,#7F01H;位選端口位選端口PAMOVXDPTR,A;輸出位選代碼輸出位選代碼INCDPTR;段選端口段選端口PBMOVA,R0;取顯示字符取顯示字符ADDA,#0DH;加偏移量加偏移
11、量MOVCA,A+PC;查表得顯示字符的代碼查表得顯示字符的代碼MOVXDPTR,A;輸出顯示輸出顯示ACALLDIMS;調(diào)用調(diào)用延時延時子程序子程序DECR0;修改顯示緩沖區(qū)指針修改顯示緩沖區(qū)指針MOVA,R2;修改位選指針修改位選指針JBACC.5,LP1;判斷是否全部顯示一次?判斷是否全部顯示一次?RLA;沒有,則左移一位沒有,則左移一位MOVR2,ASJMPLP0LP1:RETDB3FH,06H,5BH,;顯示代碼表格顯示代碼表格01h02h01h06h03h00h41H40H42H43H44H45H通用鍵盤顯示器接口芯片8279v實現(xiàn)對鍵盤和顯示器的自動掃描v識別閉合鍵的鍵號v完成顯
12、示器的動態(tài)掃描,節(jié)約CPU的時間通用鍵盤顯示接口芯片8279鍵盤和顯示器綜合應(yīng)用停車場計數(shù)器停車場計數(shù)器硬件設(shè)計軟件設(shè)計硬件電路設(shè)計硬件電路設(shè)計v顯示部分v計數(shù)部分實際電路多數(shù)采用傳感器,這里用按鍵模擬代替實際電路多數(shù)采用傳感器,這里用按鍵模擬代替停車場計數(shù)器程序設(shè)計停車場計數(shù)器程序設(shè)計 編寫程序的基本思路主程序完成單片機的初始設(shè)定、初始顯示等兩個按鍵可采用查詢或者中斷方式,本例子采用中斷方式各段功能程序地址確定各段功能程序地址確定MAIN主程序流程主程序流程主程序中斷初始化初始車數(shù)設(shè)為0設(shè)置查表首地址十位顯示(P2口)個位顯示(P0口)進(jìn)車中斷子程序進(jìn)車中斷子程序模擬模擬“進(jìn)車進(jìn)車”按鍵按下
13、后按鍵按下后出車中斷子程序出車中斷子程序DEC總結(jié)總結(jié)v通過靜態(tài)顯示和獨立式按鍵完成了一個應(yīng)用系統(tǒng)的設(shè)計。v實際系統(tǒng)通常需傳感器。二、二、LCD液晶顯示器液晶顯示器Liquid Crystal Display 微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧。 這里介紹的字符型液晶模塊是一種用這里介紹的字符型液晶模塊是一種用5x7點陣圖形來點陣圖形來顯示字符的液晶顯示器,根據(jù)顯示的容量可以分為顯示字符的液晶顯示器,根據(jù)顯示的容量可以分為1行行16個字、個字、2行行16個字、個字、2行行20個字等等,這里以常用的個字等等,這里以常用的2行行16個字的個字的1602液晶模塊來介紹它的編程方法。液晶模塊來介紹
14、它的編程方法。 任務(wù):如何在LCD的指定位置顯示出 指定的字符以及字符串。2行16列AbHello world主要內(nèi)容vTC1602A LCD模塊引腳及結(jié)構(gòu)模塊引腳及結(jié)構(gòu)v單片機與字符型單片機與字符型LCD模塊接口模塊接口vLCD接口程序設(shè)計接口程序設(shè)計 12345678910111213141516VSS VDD VORS R/WEDB0 DB1ADB3DB2DB5DB4DB7DB6KLCD模塊模塊Vss: +5V電源管腳(Vcc)VDD: 地管腳(GND)Vo: 液晶顯示驅(qū)動電源(0V5V)V0為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源為液晶顯示器對比度調(diào)整端,接正電源時對比
15、度最弱,接地電源時對比度最高,對比度過高時會產(chǎn)生時對比度最高,對比度過高時會產(chǎn)生“鬼影鬼影”,使用時可以通過一個,使用時可以通過一個10K的電位器的電位器調(diào)整對比度。調(diào)整對比度。一、TC1602A LCD模塊引腳及結(jié)構(gòu) 12345678910111213141516VSS VDD VORS R/WEDB0 DB1ADB3DB2DB5DB4DB7DB6KLCD模塊DB0DB7:數(shù)據(jù)線,可以用8位連接,也可以只用高4位連接,節(jié)約單片機資源,本實驗中采用的是八位連接方法。 12345678910111213141516VSS VDD VORS R/WEDB0 DB1ADB3DB2DB5DB4DB7D
16、B6KLCD模塊A:背光控制正電源K:背光控制地 12345678910111213141516VSS VDD VORS R/WEDB0 DB1ADB3DB2DB5DB4DB7DB6KLCD模塊RS:數(shù)據(jù)和指令選擇控制端,RS=0:命令/狀態(tài);RS=1:數(shù)據(jù)R/W:讀寫控制線,R/W=0:寫操作;R/W=1:讀操作E:數(shù)據(jù)讀寫操作控制位,E線向LCD模塊發(fā)送一個脈沖,LCD模塊與單片機之間將進(jìn)行一次數(shù)據(jù)交換 12345678910111213141516VSS VDD VORS R/WEDB0 DB1ADB3DB2DB5DB4DB7DB6KLCD模塊單片機與LCD模塊之間有四種基本操作: 寫命
17、令寫命令 讀狀態(tài)讀狀態(tài) 寫顯示數(shù)據(jù)寫顯示數(shù)據(jù) 讀顯示數(shù)據(jù)讀顯示數(shù)據(jù) 12345678910111213141516VSS VDD VORS R/WEDB0 DB1ADB3DB2DB5DB4DB7DB6KLCD模塊RSR/W操作操作00寫命令寫命令操作(初始化、光標(biāo)操作(初始化、光標(biāo)定位等)定位等)01讀狀態(tài)讀狀態(tài)操作(讀忙標(biāo)志)操作(讀忙標(biāo)志)10寫數(shù)據(jù)寫數(shù)據(jù)操作(要顯示內(nèi)容)操作(要顯示內(nèi)容)11讀數(shù)據(jù)讀數(shù)據(jù)操作(可以把顯示存操作(可以把顯示存儲區(qū)中的數(shù)據(jù)反讀出來)儲區(qū)中的數(shù)據(jù)反讀出來)二、單片機與字符型LCD模塊接口數(shù)據(jù)線:數(shù)據(jù)線:DB7DB0接接單片機的單片機的P1.7 P1.0控制端:
18、控制端: RS P3.0 R/W P3.1 E P3.2return 單片機與LCD模塊硬件連接v 連線表: A01A07連接1+5V/GND+5V/GND連接2P1.0-P1.7DB0-DB7連接3P3.0RS連接4P3.1RW連接5P3.2E三、LCD接口程序設(shè)計v 程序設(shè)計程序設(shè)計 功能設(shè)置 寫命令寫命令子程序子程序 LCD初始化:初始化:按一定順序?qū)懨钭?如:寫清屏命令字、寫DDRAM光標(biāo)定位地址命令字 顯示數(shù)據(jù) 寫數(shù)據(jù)寫數(shù)據(jù)子程序子程序 讀入狀態(tài)字讀狀態(tài)讀狀態(tài)子程序子程序 1. 寫命令讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實現(xiàn)指令名稱指令名稱控制信號控制信號控制代碼控制代碼R
19、S RWD7 D6 D5 D4 D3 D2 D1 D0清屏清屏0 00 0 0 0 0 0 0 1歸歸home位位0 00 0 0 0 0 0 1 *輸入方式設(shè)置輸入方式設(shè)置0 00 0 0 0 0 1 I/D S顯示狀態(tài)設(shè)置顯示狀態(tài)設(shè)置0 00 0 0 0 1 D C B光標(biāo)畫面滾動光標(biāo)畫面滾動0 00 0 0 1 S/C R/L * *功能設(shè)置功能設(shè)置0 00 0 1 DL N F * *CGRAM地址設(shè)置地址設(shè)置0 00 1 A5 A4 A3 A2 A1 A0DDRAM地址設(shè)置地址設(shè)置0 01 A6 A5 A4 A3 A2 A1 A0讀讀BF和和AC0 1BF AC6 AC5 AC4 A
20、C3 AC2 AC1 AC0寫數(shù)據(jù)寫數(shù)據(jù)1 0數(shù)數(shù) 據(jù)據(jù)讀數(shù)據(jù)讀數(shù)據(jù)1 1數(shù)數(shù) 據(jù)據(jù)清除屏幕-01H ,光標(biāo)復(fù)位到地址00H位置光標(biāo)復(fù)位。光標(biāo)返回到地址00Hreturn指令名稱指令名稱控制信號控制信號控制代碼控制代碼RS RWD7 D6 D5 D4 D3 D2 D1 D0清屏清屏0 00 0 0 0 0 0 0 1歸歸home位位0 00 0 0 0 0 0 1 *輸入方式設(shè)置輸入方式設(shè)置0 00 0 0 0 0 1 I/D S顯示狀態(tài)設(shè)置顯示狀態(tài)設(shè)置0 00 0 0 0 1 D C B光標(biāo)畫面滾動光標(biāo)畫面滾動0 00 0 0 1 S/C R/L * *功能設(shè)置功能設(shè)置0 00 0 1 DL
21、 N F * *CGRAM地址設(shè)置地址設(shè)置0 00 1 A5 A4 A3 A2 A1 A0DDRAM地址設(shè)置地址設(shè)置0 01 A6 A5 A4 A3 A2 A1 A0讀讀BF和和AC0 1BF AC6 AC5 AC4 AC3 AC2 AC1 AC0寫數(shù)據(jù)寫數(shù)據(jù)1 0數(shù)數(shù) 據(jù)據(jù)讀數(shù)據(jù)讀數(shù)據(jù)1 1數(shù)數(shù) 據(jù)據(jù)光標(biāo)和顯示模式設(shè)置。I/DI/D:光標(biāo)移動方向,1:右移,0:左移; S S:屏幕上所有文字是否左移或者右移。S=1:移位S=0:不移位設(shè)整體顯示開關(guān)(D D),光標(biāo)顯示開關(guān)(C C),光標(biāo)位的字符閃耀(B B)D=1;C=0;B=0000011000cH指令名稱指令名稱控制信號控制信號控制代碼
22、控制代碼RS RWD7 D6 D5 D4 D3 D2 D1 D0清屏清屏0 00 0 0 0 0 0 0 1歸歸home位位0 00 0 0 0 0 0 1 *輸入方式設(shè)置輸入方式設(shè)置0 00 0 0 0 0 1 I/D S顯示開關(guān)控制顯示開關(guān)控制0 00 0 0 0 1 D C B光標(biāo)畫面滾動光標(biāo)畫面滾動0 00 0 0 1 S/C R/L * *功能設(shè)置功能設(shè)置0 00 0 1 DL N F * *CGRAM地址設(shè)置地址設(shè)置0 00 1 A5 A4 A3 A2 A1 A0DDRAM地址設(shè)置地址設(shè)置0 01 A6 A5 A4 A3 A2 A1 A0讀讀BF和和AC0 1BF AC6 AC5
23、AC4 AC3 AC2 AC1 AC0寫數(shù)據(jù)寫數(shù)據(jù)1 0數(shù)數(shù) 據(jù)據(jù)讀數(shù)據(jù)讀數(shù)據(jù)1 1數(shù)數(shù) 據(jù)據(jù)S/CS/C:高電平時移動顯示的文字,低電平時移動光標(biāo) 設(shè)接口數(shù)據(jù)位數(shù)(DLDL),顯示行數(shù)(N N),及字型(F F)DL=1,8位 =0: 4位N=1:2行 =0:1行F=1:510 =0: 570011100038H指令名稱指令名稱控制信號控制信號控制代碼控制代碼RS RWD7 D6 D5 D4 D3 D2 D1 D0清屏清屏0 00 0 0 0 0 0 0 1歸歸home位位0 00 0 0 0 0 0 1 *輸入方式設(shè)置輸入方式設(shè)置0 00 0 0 0 0 1 I/D S顯示開關(guān)控制顯示開關(guān)
24、控制0 00 0 0 0 1 D C B光標(biāo)畫面滾動光標(biāo)畫面滾動0 00 0 0 1 S/C R/L * *功能設(shè)置功能設(shè)置0 00 0 1 DL N F * *CGRAM地址設(shè)置地址設(shè)置0 00 1 A5 A4 A3 A2 A1 A0DDRAM地址設(shè)置地址設(shè)置0 01 A6 A5 A4 A3 A2 A1 A0讀讀BF和和AC0 1BF AC6 AC5 AC4 AC3 AC2 AC1 AC0寫數(shù)據(jù)寫數(shù)據(jù)1 0數(shù)數(shù) 據(jù)據(jù)讀數(shù)據(jù)讀數(shù)據(jù)1 1數(shù)數(shù) 據(jù)據(jù)字符發(fā)生器RAM地址設(shè)置設(shè)置DDRAM地址,為顯示定位讀忙信號和光標(biāo)地址 BFBF:為忙標(biāo)志位,高電平表示忙,此時模塊不能接收命令或者數(shù)據(jù),如果為低電
25、平表示不忙。定位光標(biāo)位置把顯示數(shù)據(jù)顯示在某個位置,就是把顯示數(shù)據(jù)寫在相應(yīng)的DDRAM地址中,DDRAM地址占7位。Set DDRAM address命令如下: row12345141516line100H 01H 02H 03H 04H0dH 0eH 0fHline240H 41H 42H 43H 44H4dH 4eH 4fHNOTICENOTICEv光標(biāo)定位,寫入一個顯示字符后,DDRAM地址會自動加自動加1或減或減1,加或減由輸入方式字設(shè)置;v 第1行DDRAM地址與第2行DDRAM地址并不連續(xù)并不連續(xù)。80H81H82H83H84H8dH8eH8fH0c0H0c1H0c2H0c3H0c4
26、H0cdH0ceH0cfH2. 寫數(shù)據(jù)103. 讀狀態(tài)液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時模塊把地址41H中的點陣字符圖形顯示出來,我們就能看到字母“A” 。例如要在液晶模塊的第二行第一個字符的位置顯示字母“A” 第二行第一個字符的地址是40H,那么是否直接寫入40H就可以將光標(biāo)定位在第二行第一個字符的位置呢?這樣不
27、行,因為寫入顯示地址時要求最高位D7恒定為高電平1。所以實際寫入的數(shù)據(jù)應(yīng)該是11000000B(40H)+10000000B(80H)=11000000B(C0H)LCD顯示程序設(shè)計mainLCD初始化光標(biāo)定位顯示字符SJMP $程序在開始時對液晶模塊功能進(jìn)行了初始化設(shè)置,約定了顯示格程序在開始時對液晶模塊功能進(jìn)行了初始化設(shè)置,約定了顯示格式。注意顯示字符時光標(biāo)是自動右移的,無需人工干預(yù),式。注意顯示字符時光標(biāo)是自動右移的,無需人工干預(yù),每次輸每次輸入指令都先調(diào)用判斷液晶模塊是否忙的子程序入指令都先調(diào)用判斷液晶模塊是否忙的子程序 ,然后輸入顯示,然后輸入顯示位置的地址,最后輸入要顯示的字符的代
28、碼。位置的地址,最后輸入要顯示的字符的代碼。 lcd_rs bit P3.0 ;LCD寄存器選擇 lcd_rw bit P3.1 ;LCD讀寫控制 lcd_e bit P3.2 ;LCD選通 lcdio equ P1 lcdbusy equ 33H ;LCD忙寄存 lcddata equ 34H ;LCD傳遞數(shù)據(jù) ORG 0000H ljmp main ;復(fù)位入口,轉(zhuǎn)主程序ORG 030HMain: mov sp,#50H ;設(shè)置堆棧指針 mov dptr,#char1 lcall delay lcall delay lcall lcd_init ;調(diào)液晶初始化 lcall lcd_sendc
29、harloop: nop Ajmp loop lcd_init_3: lcall lcd_readbusy mov a,lcdbusy cjne A,#0,lcd_init_3 mov lcddata,#0dH;顯示狀態(tài)設(shè)置顯示狀態(tài)設(shè)置 lcall lcd_writecomm lcall delaylcd_init_4: lcall lcd_readbusy mov a,lcdbusy cjne A,#0,lcd_init_4 mov lcddata,#01H ;清屏 lcall lcd_writecomm lcall delay retlcd_init: ;液晶初始化程序液晶初始化程序lcd
30、_init_1: lcall lcd_readbusy mov a,lcdbusy cjne A,#0,lcd_init_1 mov lcddata,#38H; 8位2行5x7點陣 lcall lcd_writecomm lcall delaylcd_init_2: lcall lcd_readbusy mov a,lcdbusy cjne A,#0,lcd_init_2 mov lcddata,#06H;文字不動,光標(biāo)自 ;動右移 lcall lcd_writecomm lcall delaylcd_sendchar: ;發(fā)送字符lcd_sendchar_1: lcall lcd_readb
31、usy mov a,lcdbusy cjne A,#0,lcd_sendchar_1 mov lcddata,#80H; lcall lcd_writecomm lcall delay mov r1,#16lcd_sendchar_2: lcall lcd_readbusy mov a,lcdbusy cjne A,#0,lcd_sendchar_2 CLR A movc A,A+DPTR Inc dptr mov lcddata,A lcall lcd_writedata lcall delay djnz r1,lcd_sendchar_2lcd_sendchar_3: lcall lcd_
32、readbusy mov a,lcdbusy cjne A,#0,lcd_sendchar_3 mov lcddata,#0c0H; lcall lcd_writecomm lcall delay mov r1,#16 mov dptr,#char2lcd_sendchar_4: lcall lcd_readbusy mov a,lcdbusy cjne A,#0,lcd_sendchar_4 CLR A movc A,A+DPTR Inc dptr mov lcddata,A lcall lcd_writedata lcall delay djnz r1,lcd_sendchar_4 ret
33、lcd_writecomm: ;寫命令 clr lcd_rs nop clr lcd_rw nop mov lcdio,lcddata nop setb lcd_e nop clr lcd_e retlcd_writedata: ;寫數(shù)據(jù) setb lcd_rs nop clr lcd_rw nop mov lcdio,lcddata nop setb lcd_e nop clr lcd_e retlcd_readdata: ;讀數(shù)據(jù) setb lcd_rs nop setb lcd_rw nop setb lcd_e nop mov lcdbusy,lcdio clr lcd_e retlc
34、d_readbusy: ;讀忙 clr lcd_rs nop setb lcd_rw nop setb lcd_e nop mov lcdbusy,lcdio clr lcd_e anl lcdbusy,#80H retchar1: DB WelcomeTo .;char2: DB ; END7.3 A/D轉(zhuǎn)換器接口技術(shù)vA/D轉(zhuǎn)換器是將模擬量轉(zhuǎn)換成數(shù)字量的器件。轉(zhuǎn)換器是將模擬量轉(zhuǎn)換成數(shù)字量的器件。模擬量可是電壓、電流等電信號,也可是聲、模擬量可是電壓、電流等電信號,也可是聲、光、壓力和溫度等隨時間連續(xù)變化的非電物光、壓力和溫度等隨時間連續(xù)變化的非電物理量。理量。v非電物理量可通過合適的傳感器
35、等轉(zhuǎn)換成電非電物理量可通過合適的傳感器等轉(zhuǎn)換成電信號,模擬量只有轉(zhuǎn)換成數(shù)字量才能被計算信號,模擬量只有轉(zhuǎn)換成數(shù)字量才能被計算機采集、分析和計算處理。機采集、分析和計算處理。A/D轉(zhuǎn)換方法v電壓頻率式:精度高價格低,但轉(zhuǎn)換速度不電壓頻率式:精度高價格低,但轉(zhuǎn)換速度不高高v雙積分式:抗干擾能力好,轉(zhuǎn)換速度低雙積分式:抗干擾能力好,轉(zhuǎn)換速度低v逐次逼近式:轉(zhuǎn)換速度較快,適中逐次逼近式:轉(zhuǎn)換速度較快,適中v并行轉(zhuǎn)換:速度快,價格高并行轉(zhuǎn)換:速度快,價格高v串行轉(zhuǎn)換:體積小,速度滿串行轉(zhuǎn)換:體積小,速度滿硬件設(shè)計考慮的問題v選擇分辨率(選擇分辨率(38位位/912位位/13位以上)位以上)v確定精度(誤
36、差范圍)確定精度(誤差范圍)vA/D轉(zhuǎn)換時間和路數(shù)轉(zhuǎn)換時間和路數(shù)v輸入輸入/輸出特性和范圍輸出特性和范圍v電源種類和功耗電源種類和功耗v工作環(huán)境工作環(huán)境v接口是否方便接口是否方便8051和ADC0809的接口vADC0809是逐次比較式的8路8位A/D轉(zhuǎn)換器,28腳,DIP封裝,轉(zhuǎn)換速度為100s,電源電壓+5VADC0809引腳說明:vIN0IN7:8個模擬量輸入通道個模擬量輸入通道vD0(2-8)D7(2-1):8位數(shù)字量輸出位數(shù)字量輸出vADDC、ADDB、ADDA:通道地址選:通道地址選擇線擇線 000111依次選擇轉(zhuǎn)換依次選擇轉(zhuǎn)換IN0IN7,表,表8-2vALE:地址鎖存允許:地址
37、鎖存允許vSTART:啟動一次:啟動一次A/D轉(zhuǎn)換轉(zhuǎn)換vEOC:轉(zhuǎn)換結(jié)束信號輸出線,開始轉(zhuǎn)換:轉(zhuǎn)換結(jié)束信號輸出線,開始轉(zhuǎn)換時為低電平時為低電平,當(dāng)轉(zhuǎn)換結(jié)束時為高電平。供當(dāng)轉(zhuǎn)換結(jié)束時為高電平。供查詢或申請中斷(查詢或申請中斷(89C51需加反相)需加反相)vOE:輸出允許控制端:輸出允許控制端地址線地址線:C B A選擇的選擇的通道通道0 0 0 IN00 0 1 IN10 1 0 IN20 1 1 IN31 0 0 IN41 0 1 IN51 1 0 IN61 1 1 IN7ADC0809與8051的接口原理圖接地址線查詢?中斷?查詢?中斷?P2.70外部電壓外部電壓u0外部電壓外部電壓u1外
38、部電壓外部電壓u7外部電壓外部電壓u3外部電壓外部電壓u4外部電壓外部電壓u6外部電壓外部電壓u5外部電壓外部電壓u2OEEOC編程要點v選擇模擬量輸入通道選擇模擬量輸入通道v發(fā)出啟動及地址鎖存信號發(fā)出啟動及地址鎖存信號v用延時、查詢或中斷方法等待轉(zhuǎn)換結(jié)束用延時、查詢或中斷方法等待轉(zhuǎn)換結(jié)束v讀取轉(zhuǎn)換結(jié)果讀取轉(zhuǎn)換結(jié)果123456ABCD654321DCBATitleNumberRevisionSizeBDate:13-Feb-1999Sheet of File:C:My Documents考 試 題 圖 .ddbDrawn By:EA/VP31X119X218RESET9RD17WR16INT0
39、12INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD108051D03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1LE1174HC373IN-026msb2-1212-220IN-1272-3192-418IN-2282-582-615IN-312-714lsb2-817IN-42EO
40、C7IN-53ADD-A25IN-64ADD-B24ADD-C23IN-75ALE22ref(-)16ENABLE9START6ref(+)12CLOCK10ADC0809GNDDB0DB1DB2DB0DB1DB2123A74ALS02123A74ALS02 對于一種A/D轉(zhuǎn)換器來說,轉(zhuǎn)換時間作為一項技術(shù)指標(biāo)是已知的和固定的。例如,ADC0809轉(zhuǎn)換時間約為100 s??蓳?jù)此設(shè)計一個延時子程序,A/D轉(zhuǎn)換啟動后即調(diào)用這個延時子程序,延遲時間一到,轉(zhuǎn)換肯定已經(jīng)完成了,接著就可進(jìn)行數(shù)據(jù)傳送。 在這種方式下,EOC引腳懸空。123456ABCD654321DCBATitleNumberRevisio
41、nSizeBDate:13-Feb-1999Sheet of File:C:My Documents考 試 題 圖 .ddbDrawn By:EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD108051D03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D
42、617Q616D718Q719OE1LE1174HC373IN-026msb2-1212-220IN-1272-3192-418IN-2282-582-615IN-312-714lsb2-817IN-42EOC7IN-53ADD-A25IN-64ADD-B24ADD-C23IN-75ALE22ref(-)16ENABLE9START6ref(+)12CLOCK10ADC0809GNDDB0DB1DB2DB0DB1DB2123A74ALS02123A74ALS02 單片機啟動0809后,檢測EOC,若EOC=0則A/D轉(zhuǎn)換沒有結(jié)束,繼續(xù)檢測EOC,直到EOC=1。當(dāng)EOC=1時,A/D轉(zhuǎn)換已經(jīng)結(jié)
43、束,單片機讀取A/D轉(zhuǎn)換結(jié)果。 在這種方式下,EOC必須接到8051的一條I/O線上。P1.0123456ABCD654321DCBATitleNumberRevisionSizeBDate:13-Feb-1999Sheet of File:C:My Documents考 試 題 圖 .ddbDrawn By:EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P24
44、25P2526P2627P2728PSEN29ALE/P30TXD11RXD108051D03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1LE1174HC373IN-026msb2-1212-220IN-1272-3192-418IN-2282-582-615IN-312-714lsb2-817IN-42EOC7IN-53ADD-A25IN-64ADD-B24ADD-C23IN-75ALE22ref(-)16ENABLE9START6ref(+)12CLOCK10ADC0809GNDDB0DB1DB2DB0DB1DB2123A
45、74ALS02123A74ALS02 單片機啟動A/D轉(zhuǎn)換后可以做其它工作,當(dāng)A/D轉(zhuǎn)換結(jié)束時,EOC由0-1經(jīng)過非門傳到INT端,8051收到中斷請求信號,若8051開著中斷,則進(jìn)入中斷服務(wù)程序,在中斷服務(wù)程序中單片機讀取A/D轉(zhuǎn)換的結(jié)果。 在這種方式下, EOC必須經(jīng)過非門接到8051的中斷請求輸入線INT0或INT1上,89C51的中斷觸發(fā)方式為下降沿觸發(fā)。INT1編寫連續(xù)采集編寫連續(xù)采集IN0IN7上的模擬量上的模擬量u0u7的轉(zhuǎn)換程序,并將數(shù)字量存入的轉(zhuǎn)換程序,并將數(shù)字量存入30H37H。MOVR1,#30H;緩存區(qū)首址緩存區(qū)首址MOVDPTR,#7FF8H;P2.7=0,且指向通道
46、且指向通道0(A2A1A0=000)MOVR7,#08H;置通道數(shù)置通道數(shù)LOOP:MOVXDPTR,A;啟動啟動A/D轉(zhuǎn)換轉(zhuǎn)換MOVR6,#55;延時延時110 s等待轉(zhuǎn)換結(jié)束等待轉(zhuǎn)換結(jié)束DJNZR6,$;2個機器周期,個機器周期,12MHz,2s,MOVA,DPTR;讀取轉(zhuǎn)換結(jié)果讀取轉(zhuǎn)換結(jié)果MOVR1,A;存放結(jié)果存放結(jié)果INCR1;修改數(shù)據(jù)區(qū)指針修改數(shù)據(jù)區(qū)指針I(yè)NCDPTR;指向下一個通道指向下一個通道DJNZR7,LOOP;8個通道全采樣完了嗎?個通道全采樣完了嗎?查詢:查詢:JB P1.0,$ JNB P1.0,$中斷方式程序SETB IT1SETB EX1SETB EAMOV R1
47、,#30HMOV DPTR,#7FF8HMOV A,#0MOVX DPTR,APUSH ACCMOVX A,DPTRMOV R1,AINC R1INC DPTRMOVX DPTR,APOP ACCRETI初始化,啟動A/D轉(zhuǎn)換IN0如何接著如何接著啟動下一啟動下一個通道?個通道?實驗-原理、調(diào)試v通道的選擇是由地址線A0、A1、A2來完成,只可用IN0,IN1輸入,電位器v單步運行程序,觀察讀入的A/D轉(zhuǎn)換結(jié)果,并測量對應(yīng)的模擬輸入電壓值,記錄v試采用延時、查詢、中斷,最少兩種7.4 D/A轉(zhuǎn)換器接口轉(zhuǎn)換器接口 后向通道分開關(guān)量、模擬量信號v開關(guān)量:繼電器、接觸器、SSR、晶閘管,如控制電機啟
48、停、信號有無等v模擬量:D/A轉(zhuǎn)換器Solid State RalayDAC0832芯片介紹v分辨率8位v電流輸出,穩(wěn)定時間1sv雙緩沖、單緩沖、直接數(shù)字輸入v單電源供電邏輯結(jié)構(gòu)工作方式v直通方式:各控制端口一直有效v單緩沖方式:輸入寄存器和8位DAC寄存器鎖存信號同時有效;或者一個寄存器控制端一直有效。v雙緩沖方式:輸入寄存器和8位DAC寄存器鎖存信號分開控制v系統(tǒng)只有一路模擬量輸出或幾路模擬量不需同步的輸出場合,可采用單緩沖方式單緩沖方式v實驗:輸出00FFH,0-5V和-5+5V兩種VREF00HFFH通過運放可輸出一個鋸齒波v MOV DPTR,#7FFFHv MOV A,#00HvL
49、OOP:MOVX DPTR,Av INC Av AJMP LOOP產(chǎn)生方波的程序 MOV DPTR, #7FFFH ;設(shè)置設(shè)置D/A口地址口地址 LOOP : MOV A,#FFH ;輸入數(shù)字最大值輸入數(shù)字最大值 MOVX DPTR, A ;輸出對應(yīng)于輸出對應(yīng)于A值的模擬量值的模擬量 ACALL DELAY ;延時延時 MOV A,#00H ;修改修改A的內(nèi)容的內(nèi)容 MOVX DPTR, A ;輸出對應(yīng)于輸出對應(yīng)于A值的模擬量值的模擬量 ACALL DELAY ;延時延時 AJMP LOOP ;循環(huán)輸出下一個方波循環(huán)輸出下一個方波DELAY: 延時程序延時程序?qū)嶒灒狠敵鲣忼X波,三角波。實驗:輸
50、出鋸齒波,三角波。思考:幅值變化的方波、三角波?思考:幅值變化的方波、三角波?雙緩沖方式適用于幾個模擬量同時輸出的系統(tǒng)雙緩沖方式適用于幾個模擬量同時輸出的系統(tǒng)先分時將數(shù)字量裝入兩片先分時將數(shù)字量裝入兩片0832輸入寄存器輸入寄存器(地址地址:P2.5和和P2.6)然后同時選通兩片然后同時選通兩片0832的的DAC寄存器寄存器(地址地址:P2.7),同時輸出模擬量信號同時輸出模擬量信號單通道串行輸出單通道串行輸出A/D芯片芯片TLC1549及接口及接口v逐次比較型10位A/Dv6個工作方式:區(qū)別主要是cs是否連續(xù)為低電平v快速、慢速:決定于I/O CLOCK周期TLC1549與與89C51接口接口89C51 P3.0 P3.1 P3.2TLC1549 ANALOG INCS I/O CLOCK DATA OUT REF-GNDVCCREF+89C51讀取TLC1549中10位數(shù)據(jù)程序如下: ORG 0050HR1549:CLR P3.0 ;片選有效,選中;片選有效,選中TLC1549 MOV R0,#2 ;先讀取高兩位數(shù)據(jù);先讀取高兩位數(shù)據(jù) LCALL RDADA ;調(diào)用讀數(shù)子程序;調(diào)用讀數(shù)子程序 MOV R1,A ;高兩位數(shù)據(jù)存
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年份第3季度《觀察魚》群體智能算法在捕食行為教學(xué)中的應(yīng)用
- 2025年基層黨建述職評議點評意見
- 護(hù)士不良事件書寫規(guī)范
- 尿潴留中醫(yī)護(hù)理
- 多模式鎮(zhèn)痛新理念
- 人員管理與工作分配培訓(xùn)
- 第5章 動態(tài)標(biāo)志設(shè)計
- 德國培訓(xùn)總結(jié)
- 護(hù)理高血壓指南
- 江西省上饒市余干縣私立藍(lán)天中學(xué)2024-2025學(xué)年高二下學(xué)期第一次月考 化學(xué)試題(含解析)
- 實時數(shù)據(jù)驅(qū)動孿生-全面剖析
- 2024年新疆醫(yī)科大學(xué)第八附屬醫(yī)院招聘筆試真題
- 2025年湖南省長沙市中考一模道德與法治試卷(含答案)
- 2025年上半年甘肅省農(nóng)墾集團(tuán)限責(zé)任公司人才招聘380人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年危險化學(xué)品企業(yè)安全生產(chǎn)執(zhí)法檢查重點事項指導(dǎo)目錄
- 中考語文文學(xué)批注-病句表達(dá)欠妥(含答案)
- 15 一分鐘(核心素養(yǎng)公開課一等獎創(chuàng)新教案)
- 2025年河南經(jīng)貿(mào)職業(yè)學(xué)院單招職業(yè)技能測試題庫完整
- 2024年中國大唐集團(tuán)科技創(chuàng)新有限公司招聘考試真題
- 《防護(hù)服穿脫流程》課件
- 2025年山東省職教高考(車輛維修專業(yè))綜合知識高頻必練考試題庫400題含答
評論
0/150
提交評論