《單片機原理及接口技術(shù)》第九章應(yīng)用系統(tǒng)配置及接口技術(shù)_第1頁
《單片機原理及接口技術(shù)》第九章應(yīng)用系統(tǒng)配置及接口技術(shù)_第2頁
《單片機原理及接口技術(shù)》第九章應(yīng)用系統(tǒng)配置及接口技術(shù)_第3頁
《單片機原理及接口技術(shù)》第九章應(yīng)用系統(tǒng)配置及接口技術(shù)_第4頁
《單片機原理及接口技術(shù)》第九章應(yīng)用系統(tǒng)配置及接口技術(shù)_第5頁
已閱讀5頁,還剩70頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第9章應(yīng)用系統(tǒng)配置及接口技術(shù)PC機除了主機以外還需要哪些部分呢?單片機電路有時候也需要鍵盤、顯示等外設(shè)。本章主要內(nèi)容鍵盤顯示器A/D轉(zhuǎn)換D/A轉(zhuǎn)換9.1鍵盤與計算機接口非編碼鍵盤:按鍵的動作靠軟件識別編碼鍵盤:由硬件電路產(chǎn)生按鍵的鍵值或編號,并由硬件識別閉合鍵按下:P1.0輸入低電平0松開:P1.0輸入高電平1鍵功能的實現(xiàn):對于一組鍵或一個鍵盤,需通過接口電路與單片機相連??刹捎貌樵兓蛑袛喾绞綔y試有無鍵按下,再確定是哪一個鍵按下,將該鍵號送入累加器ACC,然后判斷是數(shù)字鍵還是功能鍵,若是數(shù)字鍵,則將鍵號對應(yīng)的數(shù)字送入相關(guān)輸入緩沖區(qū);若是功能鍵,則通過跳轉(zhuǎn)指令轉(zhuǎn)入執(zhí)行該鍵的功能程序,執(zhí)行完后再返回主程序。抖動在按鍵按下與斷開的過程中,按鍵產(chǎn)生機械抖動。抖動現(xiàn)象將使

CPU產(chǎn)生誤判斷。可用硬件或軟件的去除抖動方法9.1.1獨立式非編碼鍵盤接口MOVA,#0FFHMOVP1,AMOVA,P1JNBACC.0,KEY0JNBACC.1,KEY1………假設(shè)為P1口電路簡單;但鍵數(shù)較多時,需占用較多的I/O線準雙向口:輸入時須先寫1用于較多按鍵,節(jié)省I/O線。采用逐行(逐列)掃描法:向列線輸出全掃描字00H。讀入行線狀態(tài)。若行線有0,則有鍵按下;若行線全1,則無鍵按下。9.1.2行列式非編碼鍵盤接口1、鍵盤工作原理——舉例行線:X0~X3,通過電阻接+5V。沒有鍵閉合時,行線呈高電平;某鍵閉合時,該鍵對應(yīng)的行線和列線被短路。此時行線電平由列線電位所決定。例判斷有無鍵閉合:使列線為低電平,讀出行線狀態(tài)。找出哪一個鍵閉合:逐行(逐列)掃描查詢法逐行掃描法:依次將列線送低電平,逐個檢查行線狀態(tài),確定按鍵在某行某列交叉的點上,取得鍵值,執(zhí)行相應(yīng)程序。例:鍵盤掃描程序SERCH:MOVR2,#0EFH MOVR3,#00HLINE0:MOVA,R2 MOVP1,A MOVA,P1 JBACC.3,LINE1 MOVA,#00H AJMPTRYKLINE1:JBACC.2,LINE2 MOVA,#04H AJMPTRYK LINE2:JBACC.1,LINE3MOVA,#08H3210476511109815141312+5VP1.4P1.3P1.089C51P1.7P1.6P1.5P1.2P1.1

AJMPTRYK

LINE3:JBACC.0,LINE4

MOVA,#0CH

AJMPTRYK

LINE4:INCR3

MOVA,R2

RL A

JNBACC.0,BACK

MOVR2,A

AJMPLINE0

TRYK:ADDA,R3

BACK:RET 9.1.3單片機對非編碼鍵盤的控制程序掃描方式CPU不斷調(diào)用鍵盤處理程序,對鍵盤進行掃描定時掃描方式利用定時器的溢出中斷請求,每隔一定的時間對鍵盤掃描一次中斷掃描方式提高CPU的效率,當鍵盤上有鍵閉合時產(chǎn)生中斷請求9.2LED顯示器及接口設(shè)計1、由發(fā)光二極管組成,分共陽、共陰兩種。

LowEmittingDiode問題引入:

LED顯示器如何顯示出指定數(shù)字/字符?comcom2.LED顯示字符方法:COM接低電平;各輸入端輸入一個顯示代碼,如5BH=01011011,對應(yīng)c,f滅,而a,b,d,e,g點亮,則LED顯示字符“2”顯示各種字符的代碼見下表。對于共陽極LED,將顯示代碼取反。若顯示小數(shù)點,可利用D7位。限流電阻字型表

靜態(tài)顯示方式連接

所有LED的位選均共同連接到+VCC或GND,每個LED的8根段選線分別連接一個8位并行I/O口,從該I/O口送出相應(yīng)的字型碼顯示字型。

特點原理簡單;顯示亮度強,無閃爍;占用I/O資源較多。

常用于位數(shù)較少的場合。動態(tài)顯示將各個顯示器的輸入(段選)線并聯(lián),由一個I/O口提供字形代碼;由另一個I/O口提供位選代碼。采用軟件掃描顯示方法,某個時刻只點亮1個顯示器,點亮時間不超過20ms,分時逐個點亮LED。與靜態(tài)顯示相比,特點:節(jié)省硬件電路及I/O資源;占用CPU時間多;亮度相對較低;適用于LED位數(shù)較多的場合。視覺暫留特性6位共陰LED。利用8155的PA口(假設(shè)地址7F01H)作為位選,75452反相驅(qū)動;PB口(7F02H)作為段選,7407同相驅(qū)動。在片內(nèi)RAM中設(shè)一顯示緩沖區(qū)79H~7EH,依次存放要顯示的6個字符(高4位清0,即00~09H,0A~0FH)。反復調(diào)用顯示子程序。DIS:MOVR0,#7EH;顯示緩沖區(qū)首址MOVR2,#01H;位選初始值MOVA,R2LP0:MOVDPTR,#7F01H;位選端口PAMOVX@DPTR,A;輸出位選代碼INCDPTR;段選端口PBMOVA,@R0;取顯示字符ADDA,#0DH;加偏移量MOVCA,@A+PC;查表得顯示字符的代碼MOV@DPTR,A;輸出顯示ACALLDIMS;調(diào)用延時子程序DECR0;修改顯示緩沖區(qū)指針MOVA,R2;修改位選指針JBACC.5,LP1;判斷是否全部顯示一次?RLA;沒有,則左移一位MOVR2,ASJMPLP0LP1:RETDB3FH,06H,5BH,…;顯示代碼表格LCD液晶顯示器LiquidCrystalDisplay

微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧。任務(wù):如何在LCD的指定位置顯示出指定的字符以及字符串。2行×16列AbHelloworld主要內(nèi)容TC1602ALCD模塊引腳及結(jié)構(gòu)單片機與字符型LCD模塊接口LCD接口程序設(shè)計

12345678910111213141516VSSVDDVORSR/WEDB0DB1ADB3DB2DB5DB4DB7DB6KLCD模塊Vss:+5V電源管腳(Vcc)VDD:

地管腳(GND)Vo:

液晶顯示驅(qū)動電源(0V~5V)V0為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度。一、TC1602ALCD模塊引腳及結(jié)構(gòu)

12345678910111213141516VSSVDDVORSR/WEDB0DB1ADB3DB2DB5DB4DB7DB6KLCD模塊DB0~DB7:數(shù)據(jù)線,可以用8位連接,也可以只用高4位連接,節(jié)約單片機資源,本實驗中采用的是八位連接方法。

12345678910111213141516VSSVDDVORSR/WEDB0DB1ADB3DB2DB5DB4DB7DB6KLCD模塊A:背光控制正電源K:背光控制地

12345678910111213141516VSSVDDVORSR/WEDB0DB1ADB3DB2DB5DB4DB7DB6KLCD模塊單片機與LCD模塊之間有四種基本操作: 寫命令 讀狀態(tài) 寫顯示數(shù)據(jù) 讀顯示數(shù)據(jù)

12345678910111213141516VSSVDDVORSR/WEDB0DB1ADB3DB2DB5DB4DB7DB6KLCD模塊RSR/W操作00寫命令操作(初始化、光標定位等)01讀狀態(tài)操作(讀忙標志)10寫數(shù)據(jù)操作(要顯示內(nèi)容)11讀數(shù)據(jù)操作(可以把顯示存儲區(qū)中的數(shù)據(jù)反讀出來)

12345678910111213141516VSSVDDVORSR/WEDB0DB1ADB3DB2DB5DB4DB7DB6KLCD模塊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模塊與單片機之間將進行一次數(shù)據(jù)交換TC1602A的內(nèi)部結(jié)構(gòu)由DDRAM、CGRAM、CGROM、IR、DR、BF、AC等大規(guī)模集成電路組成DDRAM:存放要LCD顯示的數(shù)據(jù)。CGROM:存放192個5*7的點陣字符,只讀不寫CGRAM:存儲特殊造型的造型碼IR:存儲MCU寫給LCD的指令碼DR:相當于數(shù)據(jù)緩沖器BF:忙碌信號AC:地址計數(shù)器:負責計數(shù)寫入/讀出CGRAM、DDRAM的數(shù)據(jù)地址,AC依照MCU對LCD的設(shè)置值而自動修改其本身內(nèi)容。讀寫操作、屏幕和光標的操作都是通過指令編程來實現(xiàn)指令名稱控制信號控制代碼RSRWD7D6D5D4D3D2D1D0清屏0000000001歸home位000000001*輸入方式設(shè)置00000001I/DS顯示狀態(tài)設(shè)置0000001DCB光標畫面滾動000001S/CR/L**功能設(shè)置00001DLNF**CGRAM地址設(shè)置0001A5A4A3A2A1A0DDRAM地址設(shè)置001A6A5A4A3A2A1A0讀BF和AC01BFAC6AC5AC4AC3AC2AC1AC0寫數(shù)據(jù)10數(shù)據(jù)讀數(shù)據(jù)11數(shù)據(jù)清除屏幕---01H,光標復位到地址00H位置光標復位。光標返回到地址00Hreturn指令名稱控制信號控制代碼RSRWD7D6D5D4D3D2D1D0清屏0000000001歸home位000000001*輸入方式設(shè)置00000001I/DS顯示狀態(tài)設(shè)置0000001DCB光標畫面滾動000001S/CR/L**功能設(shè)置00001DLNF**CGRAM地址設(shè)置0001A5A4A3A2A1A0DDRAM地址設(shè)置001A6A5A4A3A2A1A0讀BF和AC01BFAC6AC5AC4AC3AC2AC1AC0寫數(shù)據(jù)10數(shù)據(jù)讀數(shù)據(jù)11數(shù)據(jù)光標和顯示模式設(shè)置。I/D:光標移動方向,1:右移,0:左移;S:屏幕上所有文字是否左移或者右移。S=1:移位S=0:不移位設(shè)整體顯示開關(guān)(D),光標顯示開關(guān)(C),光標位的字符閃耀(B)D=1;C=0;B=000001100——0cH指令名稱控制信號控制代碼RSRWD7D6D5D4D3D2D1D0清屏0000000001歸home位000000001*輸入方式設(shè)置00000001I/DS顯示開關(guān)控制0000001DCB光標畫面滾動000001S/CR/L**功能設(shè)置00001DLNF**CGRAM地址設(shè)置0001A5A4A3A2A1A0DDRAM地址設(shè)置001A6A5A4A3A2A1A0讀BF和AC01BFAC6AC5AC4AC3AC2AC1AC0寫數(shù)據(jù)10數(shù)據(jù)讀數(shù)據(jù)11數(shù)據(jù)S/C:高電平時移動顯示的文字,低電平時移動光標

設(shè)接口數(shù)據(jù)位數(shù)(DL),顯示行數(shù)(N),及字型(F)DL=1,8位=0:4位N=1:2行=0:1行F=1:5×10=0:5×700111000——38H指令名稱控制信號控制代碼RSRWD7D6D5D4D3D2D1D0清屏0000000001歸home位000000001*輸入方式設(shè)置00000001I/DS顯示開關(guān)控制0000001DCB光標畫面滾動000001S/CR/L**功能設(shè)置00001DLNF**CGRAM地址設(shè)置0001A5A4A3A2A1A0DDRAM地址設(shè)置001A6A5A4A3A2A1A0讀BF和AC01BFAC6AC5AC4AC3AC2AC1AC0寫數(shù)據(jù)10數(shù)據(jù)讀數(shù)據(jù)11數(shù)據(jù)字符發(fā)生器RAM地址設(shè)置設(shè)置DDRAM地址,為顯示定位讀忙信號和光標地址BF:為忙標志位,高電平表示忙,此時模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。二、單片機與字符型LCD模塊接口數(shù)據(jù)線:DB7~DB0接單片機的P1.7~P1.0控制端:

RS~~P3.0R/W~~P3.1

E~~P3.2

單片機與LCD模塊硬件連接

連線表:

A01A07連接1+5V/GND+5V/GND連接2P1.0-P1.7DB0-DB7連接3P3.0RS連接4P3.1RW連接5P3.2E液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認模塊的忙標志為低電平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符三、LCD接口程序設(shè)計程序設(shè)計功能設(shè)置——寫命令子程序

LCD初始化:按一定順序?qū)懨钭秩纾簩懬迤撩钭?、寫DDRAM光標定位地址命令字顯示數(shù)據(jù)——寫數(shù)據(jù)子程序讀入狀態(tài)字——讀狀態(tài)子程序

定位光標位置把顯示數(shù)據(jù)顯示在某個位置,就是把顯示數(shù)據(jù)寫在相應(yīng)的DDRAM地址中,DDRAM地址占7位。SetDDRAMaddress命令如下:row12345……141516line100H01H02H03H04H……0dH0eH0fHline240H41H42H43H44H……4dH4eH4fH≈≈≈≈NOTICE≈≈≈≈光標定位,寫入一個顯示字符后,DDRAM地址會自動加1或減1,加或減由輸入方式字設(shè)置;第1行DDRAM地址與第2行DDRAM地址并不連續(xù)。80H81H82H83H84H8dH8eH8fH0c0H0c1H0c2H0c3H0c4H0cdH0ceH0cfH每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時模塊把地址41H中的點陣字符圖形顯示出來,我們就能看到字母“A”。例如要在液晶模塊的第二行第一個字符的位置顯示字母“A”

第二行第一個字符的地址是40H,那么是否直接寫入40H就可以將光標定位在第二行第一個字符的位置呢?這樣不行,因為寫入顯示地址時要求最高位D7恒定為高電平1所以實際寫入的數(shù)據(jù)應(yīng)該是01000000B(40H)+10000000B(80H)=11000000B(C0H)LCD顯示程序設(shè)計mainLCD初始化光標定位顯示字符SJMP$RSEQUP3.0RWEQUP3.1EEQUP3.5ORG0000HMOVP1,#00000001B;清屏ACALLENABLEMOVP1,#00111000B;8位2行5x7點陣ACALLENABLEMOVP1,#00001111B;顯示器開、光標開、閃爍開ACALLENABLEMOVP1,#00000110B;文字不動,光標自動右移ACALLENABLEMOVP1,#0C0H;寫入顯示起始地址(第二行第一個位置)ACALLENABLEMOVP1,#01000001B;字母A的代碼SETBRSCLRRWCLREACALLDELAYSETBEAJMP$程序在開始時對液晶模塊功能進行了初始化設(shè)置,約定了顯示格式。注意顯示字符時光標是自動右移的,無需人工干預,每次輸入指令都先調(diào)用判斷液晶模塊是否忙的子程序DELAY,然后輸入顯示位置的地址000H,最后輸入要顯示的字符A的代碼41H。在液晶模塊的第二行第一個字符的位置顯示字母“A”:返回命令字ENABLE:CLRRS;寫入控制命令的子程序

CLRRW CLRE ACALLDELAY SETBE RETDELAY:MOVP1,#0FFH;判斷液晶顯示器是否忙的子程序

CLRRS SETBRW CLRE NOP SETBE JBP1.7,DELAY;如果P1.7為高電平表示忙就循環(huán)等待

RETEND9.3A/D轉(zhuǎn)換接口技術(shù)A/D轉(zhuǎn)換器是將模擬量轉(zhuǎn)換成數(shù)字量的器件。模擬量可以是電壓、電流等電信號,也可以是聲、光、壓力和溫度等隨時間連續(xù)變化的非電物理量。非電物理量可通過合適的傳感器等轉(zhuǎn)換成電信號,模擬量只有轉(zhuǎn)換成數(shù)字量才能被計算機采集、分析和計算處理。A/D轉(zhuǎn)換器的主要技術(shù)指標分辨率:即輸出的數(shù)字量變化一個相鄰的值所對應(yīng)的輸入模擬量的變化量。通常用數(shù)字輸出最低位(LSB)所對應(yīng)的模擬輸入的電平值表示。(3~8位/9~12位/13位以上)精度:反映實際A/D轉(zhuǎn)換器在量化值上與理想A/D轉(zhuǎn)換器的差值??杀硎境山^對精度和相對精度轉(zhuǎn)換時間:由啟動轉(zhuǎn)換命令到轉(zhuǎn)換結(jié)束信號開始有效的時間間隔輸入/輸出特性和范圍電源種類和功耗工作環(huán)境接口是否方便接口時注意的問題模擬量輸入信號的連接輸出數(shù)字量引腳的連接內(nèi)部無輸出鎖存器的,需通過鎖存器或I/O接口與單片機相連;輸出位數(shù)高于8位的,應(yīng)該分步讀出數(shù)字量。A/D轉(zhuǎn)換器的啟動方式片選信號選中的基礎(chǔ)上,發(fā)出啟動該芯片所需的信號判斷A/D轉(zhuǎn)換器結(jié)束及讀取數(shù)據(jù)

轉(zhuǎn)換結(jié)束標記信號,如EOC

讀取數(shù)據(jù)指令:MOVXA,@DPTR參考電源的連接

模擬量信號為單極性時:接模擬地,接參考電源正端;雙極性時,接參考電源負端,接參考電源正端A/D轉(zhuǎn)換方法雙積分式:抗干擾能力好,轉(zhuǎn)換速度低逐次逼近式:轉(zhuǎn)換速度較快,適中并行輸出:ADC0809串行輸出:TLC1549逐次逼近法A/D轉(zhuǎn)換原理逐次逼近法:對每一位進行試探的過程,即判斷該位應(yīng)為0還是1。假設(shè)A/D轉(zhuǎn)換器是8位數(shù)字輸出,首先是每一個位都為0,即0000000010000000,D/A——〉Vs,*1000000,…………**100000,…………依此類推*******1,…………..雙積分A/D轉(zhuǎn)換原理在進行一次A/D轉(zhuǎn)換時,開關(guān)先把Vx采樣輸入到積分器,積分器從0V開始進行固定時間T的正向積分,時間T到后,開關(guān)將與Vx極性相反的基準電壓VREF輸入到積分器進行反相積分,到輸出為0V時停止反相積分。反相積分時積分器的斜率是固定的,Vx越大,積分器的輸出電壓就越大,反相積分時間就越長。計數(shù)器在反相積分時間內(nèi)計數(shù)值就是輸入電壓Vx在時間T內(nèi)的平均值對應(yīng)的數(shù)字量。電子開關(guān)計數(shù)器控制邏輯VxVref減0比較器積分器數(shù)字量時鐘9.3.189C51和ADC0809的接口ADC0809是逐次逼近式的8路8位A/D轉(zhuǎn)換器,并行輸出,28腳,DIP封裝,轉(zhuǎn)換速度為100μs,電源電壓+5VADC0809引腳說明:IN0~IN7:8個模擬量輸入通道D0(2-8)~D7(2-1):8位數(shù)字量輸出ADDC、ADDB、ADDA:通道地址選擇線

000~111依次選擇轉(zhuǎn)換IN0~IN7ALE:地址鎖存允許START:啟動一次A/D轉(zhuǎn)換EOC:轉(zhuǎn)換結(jié)束信號輸出線,開始轉(zhuǎn)換時為低電平,當轉(zhuǎn)換結(jié)束時為高電平。供查詢或申請中斷OE:輸出允許控制端ADC0809與89C51的接口原理圖接地址線查詢?中斷?P2.7=0外部電壓u0外部電壓u1外部電壓u7外部電壓u3外部電壓u4外部電壓u6外部電壓u5外部電壓u289C51P1.0或int1編程要點選擇模擬量輸入通道發(fā)出啟動及地址鎖存信號用查詢或中斷方法等待轉(zhuǎn)換結(jié)束(延時)讀取轉(zhuǎn)換結(jié)果編寫采集IN0~IN7上的模擬量u0~u7的轉(zhuǎn)換程序,并將數(shù)字量存入30H~37H。MOVR1,#30H;緩存區(qū)首址MOVDPTR,#7FF8H;P2.7=0,且指向通道0(A2A1A0=000)MOVR7,#08H;置通道數(shù)LOOP:MOVX@DPTR,A;啟動A/D轉(zhuǎn)換MOVR6,#55;延時110μs等待轉(zhuǎn)換結(jié)束DJNZR6,$;2個機器周期,12MHz,2μs,MOVxA,@DPTR;讀取轉(zhuǎn)換結(jié)果MOV@R1,A;存放結(jié)果INCR1;修改數(shù)據(jù)區(qū)指針I(yè)NCDPTR;指向下一個通道DJNZR7,LOOP;8個通道全采樣完了嗎?…或JBP1.0,$中斷方式程序SETBIT1SETBEX1SETBEAMOVDPTR,#7FF8HMOVA,#0MOVX@DPTR,A…EINT1:MOVDPTR,#7FF8HMOVXA,@DPTRMOV30H,AMOVA,#00MOVX@DPTR,ARETI初始化,啟動A/D轉(zhuǎn)換IN0讀取數(shù)據(jù),再次啟動IN0如何接著啟動下一個通道?EINT1:INCDPTRINCR0MOVXA,@DPTRMOV@R0,AMOVA,#00MOVX@DPTR,ARETI9.3.2單通道串行輸出A/D芯片TLC1549及接口逐次比較型10位A/D6個工作方式:區(qū)別主要是cs是否連續(xù)為低電平快速、慢速:決定于I/OCLOCK周期TLC1549工作原理CS無效,I/OCLOCK被禁止,DATAOUT處于高阻狀態(tài),CS有效,I/OCLOCK控制DATAOUT輸出前次轉(zhuǎn)換數(shù)據(jù),同時A/D轉(zhuǎn)換器對本次轉(zhuǎn)換采樣。方式1工作時序TLC1549與89C51接口89C51

P3.0P3.1P3.2TLC1549ANALOGINCSI/OCLOCK

DATAOUTREF-GNDVCCREF+89C51讀取TLC1549中10位數(shù)據(jù)程序如下:

ORG0050HR1549:CLRP3.0:片選有效,選中TLC1549MOVR0,#2;先讀取高兩位數(shù)據(jù)

LCALLRDADA;調(diào)用讀數(shù)子程序

MOVR1,A;高兩位數(shù)據(jù)存入R1MOVR0,#8;要讀取低8位數(shù)據(jù)

LCALLRDATAMOVR2,A;低8位數(shù)據(jù)存入R2SETBP3.0;片選無效

CLRP3.1;時鐘低電平

RET;程序結(jié)束RDADA:CLRP3.1;時鐘低電平

MOVC,P3.2;數(shù)據(jù)送進位位CYRLCA;數(shù)據(jù)送累加器ASETBP3.1;時鐘變高電平

DJNZR0,RDATA;讀書結(jié)束了嗎

RET;子程序結(jié)束D/A:DigitalsignalAnalogysignal衡量D/A性能的主要參數(shù)分辨率:輸出的模擬量最小變化量滿刻度誤差:輸入全1時輸出電壓與理想值的誤差電流穩(wěn)定時間:描述D/A轉(zhuǎn)換速率快慢的重要參數(shù),一般是指輸入數(shù)字量從全0變成全1時,輸出模擬量穩(wěn)定到相應(yīng)范圍內(nèi)所經(jīng)歷的時間9.3D/A轉(zhuǎn)換接口技術(shù)9.3.1并行輸入DAC0832芯片8位電流輸出,穩(wěn)定時間1μs雙緩沖、單緩沖、直接數(shù)字輸入DAC0832的引腳D0~D7:數(shù)據(jù)輸入線ILE:數(shù)據(jù)鎖存允許控制信號輸入線,高電片有效CS:片選信號XFFR:數(shù)據(jù)傳輸控制信號輸入線WR1:輸入鎖存器寫選通輸入線WR2:DAC寄存器寫選通輸入線IOUT1:電流輸出線,當DAC寄存器為全1時IOUT1最大IOUT2:電流輸出線,其值和IOUT1值之和為一常數(shù)Rfb:反饋信號輸入線,改變Rfb端外接電值可調(diào)整轉(zhuǎn)換滿量程精度VREF:基準電壓輸入線AGND:模擬地DGND:數(shù)字地DAC0832邏輯結(jié)構(gòu)工作方式直通方式:數(shù)據(jù)線上的數(shù)據(jù)字節(jié)直通D/A轉(zhuǎn)換器轉(zhuǎn)換并輸出。單緩沖方式:輸入數(shù)據(jù)在控制信號作用下,直接打入DAC寄存器中雙緩沖方式:數(shù)字量的輸入鎖存和D/A轉(zhuǎn)換輸出時分兩步完成的。單路模擬量輸出的89C51系統(tǒng)89C51DAC0832工作于單緩沖方式,ILE接+5V,CS和XFER相連后由MCS-51的P2.7控制

WR1和WR2相連后由MCS-51的WR控制.這樣,89C51對DAC0832執(zhí)行一次寫操作就把一個數(shù)據(jù)直接寫入DAC寄存器,模擬量輸出隨之而變化.系統(tǒng)只有一路模擬量輸出或幾路模擬量不需同步的輸出場合,可采用單緩沖方式

89C51執(zhí)行下面的程序后,運放的輸出端將產(chǎn)生一個鋸齒形電壓波:WAVE:MOVDPTR,#7FFFH;設(shè)置D/A口地址

MOVA,#0;輸入數(shù)字初值LOOP:MOVX@DPTR,A;輸出對應(yīng)于A值的模擬量

INCA;修改A的內(nèi)容

AJMPLOOP試寫出產(chǎn)生方波的程序?

產(chǎn)生方波的程序

MOVDPTR,#7FFFH;設(shè)置D/A口地址

LOOP:MOVA,#FFH;輸入數(shù)字最大值

溫馨提示

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

評論

0/150

提交評論