第10章數(shù)模轉(zhuǎn)換_第1頁
第10章數(shù)模轉(zhuǎn)換_第2頁
第10章數(shù)模轉(zhuǎn)換_第3頁
第10章數(shù)模轉(zhuǎn)換_第4頁
第10章數(shù)模轉(zhuǎn)換_第5頁
已閱讀5頁,還剩38頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第第10章章 d/a數(shù)模轉(zhuǎn)換數(shù)模轉(zhuǎn)換10.1 dac0832芯片引腳和內(nèi)部結(jié)構(gòu)芯片引腳和內(nèi)部結(jié)構(gòu) 10.1.1項(xiàng)目項(xiàng)目1:dac0832輸出連續(xù)的鋸齒波輸出連續(xù)的鋸齒波 10.1.2 知識講解知識講解10.2 12位位d/a轉(zhuǎn)換芯片轉(zhuǎn)換芯片 dac1210與與dac0832應(yīng)用應(yīng)用 10.2.1項(xiàng)目項(xiàng)目2:dac0832輸出連續(xù)的三角波輸出連續(xù)的三角波和鋸齒波和鋸齒波 10.2.1知識講解知識講解10.3項(xiàng)目擴(kuò)展與工程應(yīng)用項(xiàng)目擴(kuò)展與工程應(yīng)用 10.3.1 項(xiàng)目項(xiàng)目3:用:用dac0832控制直流電機(jī)控制直流電機(jī) 10.3.2項(xiàng)目項(xiàng)目4:直流電機(jī)轉(zhuǎn)速控制直流電機(jī)轉(zhuǎn)速控制 10.1 dac0832

2、芯片引腳和內(nèi)部結(jié)構(gòu)芯片引腳和內(nèi)部結(jié)構(gòu)10.1.1項(xiàng)目項(xiàng)目1:dac0832輸出連續(xù)的鋸齒波輸出連續(xù)的鋸齒波 1項(xiàng)目要求與目的(1)項(xiàng)目要求:編寫程序,使dac0832輸出連續(xù)的鋸齒波,用示波器觀看。(2)項(xiàng)目目的:了解dac0832芯片的引腳和內(nèi)部結(jié)構(gòu)。了解dac0832芯片的性能及編程方法。掌握8086cpu與dac0832連接硬件電路。2項(xiàng)目電路連接與說明 (1)項(xiàng)目電路連接:dac0832的片選孔用導(dǎo)線接至譯碼處208h20fh插孔,用示波器的輸入探頭接dac0832的輸出插孔。(2)項(xiàng)目說明:本項(xiàng)目是dac0832輸出連續(xù)的鋸齒波模擬電壓,輸出結(jié)果可用示波器觀察,波形如圖10-1所示。

3、d/a轉(zhuǎn)換是把數(shù)字量轉(zhuǎn)化成模擬量的過程,d/a轉(zhuǎn)換取值范圍為一個(gè)周期,采樣點(diǎn)越多,精度越高些,本項(xiàng)目采用的采樣點(diǎn)為256點(diǎn)/周期。0h0h0ffh0h0h0h0ffh0ffh0ffh圖10-1 生成的鋸齒波波形圖 3項(xiàng)目電路原理框圖項(xiàng)目電路原理框圖如圖10-2所示。電路由8086cpu、dac0832芯片、lm358運(yùn)算放大器等組成。圖10-2 dac0832輸出鋸齒波電路圖4項(xiàng)目程序設(shè)計(jì)(1)程序流程圖dac0832輸出連續(xù)的鋸齒波程序流程圖如圖10-3所示。 圖10-3 dac0832輸出連續(xù)的鋸齒波程序流程圖 (2)程序清單dac0832輸出連續(xù)鋸齒波程序清單如下所示。code segm

4、ent assume cs:code start:push cs pop ds mov al,00h ; 鋸齒波的起始值 mov dx, 208h;dac0832地址bg: out dx,al;輸出,進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換時(shí)間1s nop ;延時(shí) nop ;延時(shí) nop ;延時(shí) inc al ;數(shù)字量加1 jmp bg ;循環(huán)code endsend start10.1.2 知識講解知識講解1. 概述概述d/a轉(zhuǎn)換器的作用是將數(shù)字信號轉(zhuǎn)換成模擬的電信號。常用的微機(jī)控制系統(tǒng)示意圖如圖10-4所示,各部分的作用如下所示。(1) 傳感器 溫度、速度、流量、壓力等非電信號,稱為物理量。要把這些物理量轉(zhuǎn)換成電量

5、,才能進(jìn)行模擬量對數(shù)字量的轉(zhuǎn)換,這種把物理量轉(zhuǎn)換成電量的器件稱為傳感器。目前有溫度、壓力、位移、速度、流量等多種傳感器。(2) a/d轉(zhuǎn)換器把連續(xù)變化的電信號轉(zhuǎn)換為數(shù)字信號的器件稱為模數(shù)轉(zhuǎn)換器,即a/d轉(zhuǎn)換器。(3)d/a轉(zhuǎn)換器把數(shù)字信號轉(zhuǎn)換成模擬信號,去控制執(zhí)行機(jī)構(gòu)的器件,稱為數(shù)模轉(zhuǎn)換器,即d/a轉(zhuǎn)換器。d/a轉(zhuǎn)換即數(shù)/模轉(zhuǎn)換,是將數(shù)字量轉(zhuǎn)換成與其成比例的模擬量。d/a轉(zhuǎn)換器的核心電路是解碼網(wǎng)絡(luò),解碼網(wǎng)絡(luò)主要形式有兩種:一種是權(quán)電阻解碼網(wǎng)絡(luò),另一種是t型電阻網(wǎng)絡(luò)。圖10-4 微機(jī)控制系統(tǒng)示意圖2. d/a轉(zhuǎn)換器的主要技術(shù)指標(biāo)轉(zhuǎn)換器的主要技術(shù)指標(biāo)(1)分辨率分辨率是指d/a轉(zhuǎn)換器可輸出的模擬量

6、的最小變化量,也就是最小輸出電壓(輸入的數(shù)字量只有d0=1)與最大輸出電壓(輸入的數(shù)字量所有位都等于1)之比。也通常定義刻度值與2n 之比(n為二進(jìn)制位數(shù))。二進(jìn)制位數(shù)越多,分辨率越高。例如,若滿量程為5v,根據(jù)分辨率定義,則分辨率為5v/2n 。設(shè)8位d/a轉(zhuǎn)換,即n=8,分辨率為5v/28 19.53mv,即二進(jìn)制變化一位可引起模擬電壓變化19.53mv,該值占滿量程的0.195%,常用1lsb表示。同理:10位d/a轉(zhuǎn)換 1lsb=5000mv/210=4.88mv=0.098%滿量程。 12位d/a轉(zhuǎn)換 1lsb=5000mv/212=1.22mv=0.024%滿量程。 16位d/a轉(zhuǎn)

7、換 1lsb=5000mv/216=0.076mv=0.0015%滿量程。(2)轉(zhuǎn)換精度在理想情況下,精度和分辨率基本一致,位數(shù)越多,精度越高。但由于電源電壓、參考電壓、電阻等各種因素存在著誤差,嚴(yán)格來講精度和分辨率并不完全一致,只要位數(shù)相同,分辨率相同,但相同位數(shù)的不同轉(zhuǎn)換器精度會有所不同。d/a轉(zhuǎn)換精度指模擬輸出實(shí)際值與理想輸出值之間的誤差。包括非線性誤差、比例系數(shù)誤差、漂移誤差等項(xiàng)誤差。用于衡量d/a轉(zhuǎn)換器將數(shù)字量轉(zhuǎn)換成模擬量時(shí),所得模擬量的精確程度。注意:精度與分辨率是兩個(gè)不同的參數(shù)。精度取決于d/a轉(zhuǎn)換器各個(gè)部件的制作誤差,而分辨率取決于d/a轉(zhuǎn)換器的位數(shù)。(3) 影響精度的誤差失調(diào)

8、誤差(零位誤差)定義為:當(dāng)數(shù)值量輸入全為“0”時(shí),輸出電壓卻不為0v。該電壓值稱為失調(diào)電壓,該值越大,誤差越大。增益誤差定義為:實(shí)際轉(zhuǎn)換增益與理想增益之誤差。線性誤差定義:它是描述d/a轉(zhuǎn)換線性度的參數(shù),定義為實(shí)際輸出電壓與理想輸出電壓之誤差,一般用百分?jǐn)?shù)表示 (4)轉(zhuǎn)換速度d/a轉(zhuǎn)換速度是指從二進(jìn)制數(shù)輸入到模擬量輸出的時(shí)間,時(shí)間越短速度越快,一般幾十到幾百微妙。(5)輸出電平范圍輸出電平范圍是指當(dāng)d/a轉(zhuǎn)換器可輸出的最低電壓與可輸出的最高電壓的電壓差值。常用的d/a轉(zhuǎn)換器的輸出范圍是05 v,010 v,2.52.5 v,55 v,1010 v等。3. dac0832芯片引腳芯片引腳d/a接

9、口芯片種類很多,有通用型、高速型、高精度型等,轉(zhuǎn)換位數(shù)有8位、12位、16位等,輸出模擬信號有電流輸出型(如dac0832、ad7522等)和電壓輸出型(如ad558、ad7224等),在應(yīng)用中可根據(jù)實(shí)際需要進(jìn)行選擇。dac0832是采用是采用cmos工藝制造的工藝制造的8位電流輸出型位電流輸出型d/a轉(zhuǎn)換器,分辨轉(zhuǎn)換器,分辨率為率為8位,建立時(shí)間為位,建立時(shí)間為1 s,功耗為,功耗為20 mw,數(shù)字輸入電平為,數(shù)字輸入電平為ttl電平。電平。dac0832是8位電流型d/a轉(zhuǎn)換器,20引腳雙列直插式封裝,引腳如圖10-5所示。20個(gè)引腳中包括與微機(jī)連接的信號線,與外設(shè)連接的信號線以及其他引線

10、,功能如下所示。圖10-5 dac0832引腳 與微機(jī)相連的信號線 d7d0:8位數(shù)據(jù)輸入線,用于數(shù)字量輸入。 ile(19腳):輸入鎖存允許信號,高電平有效。(1腳):片選信號,低電平有效,與ile結(jié)合決定是否有效。(2腳):寫命令l,當(dāng)為低電平,且ile和有效時(shí),把輸入數(shù)據(jù)鎖存入輸入寄存器;、ile和三個(gè)控制信號構(gòu)成第一級輸入鎖存命令。 (18腳): 寫命令2,低電平有效,該信號與配合,當(dāng)有效時(shí),可使輸入寄存器中的數(shù)據(jù)傳送到dac寄存器中。(17腳):傳送控制信號,低電平有效,與配合,構(gòu)成第二級寄存器(dac寄存器)的輸入鎖存命令 與外設(shè)相連的信號線 iout1(12腳):dac電流輸出1

11、,它是輸入數(shù)字量中邏輯電平為“1”的所有位輸出電流的總和。當(dāng)所有位邏輯電平全為“1”時(shí),iout1為最大值;當(dāng)所有位邏輯電平全為“0”時(shí),iout1為“0”。 iout2(11腳):dac電流輸出2,它是輸入數(shù)字量中邏輯電平為“0”的所有位輸出電流的總和。 rf(9腳):反饋電阻,為外部運(yùn)算放大器提供一個(gè)反饋電壓。根據(jù)需要也可外接一個(gè)反饋電阻rf。 其它引線 vref(8腳):參考電壓輸入端(也稱基準(zhǔn)電壓),要求外部提供精密基準(zhǔn)電壓,vref一般在1010 v之間。vcc(20腳):芯片工作電源電壓,一般為515 v。 agnd(3腳):模擬地。 dgnd(10腳):數(shù)字地。注意: 模擬地要連

12、接模擬電路的公共地,數(shù)字地要連接數(shù)字電路的公共地,最后把它們匯接為一點(diǎn)接到總電源的地線上。為避免模擬信號與數(shù)字信號互相干擾,兩種不同的地線不可交叉混接 4.dac0832芯片內(nèi)部結(jié)構(gòu)芯片內(nèi)部結(jié)構(gòu) 結(jié)構(gòu)框圖如圖10-6所示。它是由一個(gè)8位的輸入寄存器、一個(gè)8位的dac寄存器和一個(gè)8位d/a轉(zhuǎn)換器以及控制電路組成。輸入寄存器和dac寄存器可以分別控制,從而可以根據(jù)需要接成兩級輸入鎖存的雙緩沖方兩級輸入鎖存的雙緩沖方式,一級輸入鎖存的單緩沖方式,或接成完全直通的無緩沖方式。式,一級輸入鎖存的單緩沖方式,或接成完全直通的無緩沖方式。圖10-6 dac0832芯片內(nèi)部結(jié)構(gòu)5. d/a轉(zhuǎn)換器的輸出轉(zhuǎn)換器的

13、輸出(1) 電流輸出和電壓輸出 d/a轉(zhuǎn)換的結(jié)果若是與輸入二進(jìn)制碼成比例的電流,稱為電流dac,若是與輸入二進(jìn)制碼成比例的電壓,稱為電壓dac。常用的d/a轉(zhuǎn)換芯片大多屬于電流dac,然而在實(shí)際應(yīng)用中,多數(shù)情況需要電壓輸出,這就需要把電流輸出轉(zhuǎn)換為電壓輸出,采取的措施是用電流dac電路外加運(yùn)算放大器。輸出的電壓可以是單極性電壓,也可以是雙極性電壓。單極性電壓輸出如圖10-7所示。輸出電壓為vout=ir輸出電壓的正負(fù)值視所加參考電壓極性而定(vout的極性與vref),可以有0v5或0v5,也可以有0v10或0v10等輸出范圍。若需雙極性電壓輸出,可在單極性電壓輸出后再加一級運(yùn)算放大器,如圖1

14、0-8所示。如果基準(zhǔn)電壓vref)為+5v,則第一個(gè)運(yùn)算放大器a0的輸出v1為0到5v。由vref為第二個(gè)運(yùn)算放大器a提供一個(gè)偏移電流,該電流方向與a0輸出的電流方向相反,使得由vref引入的偏移電流正好是a0輸出電流的1/2。因而a的運(yùn)放輸出將在a0運(yùn)放輸出的基礎(chǔ)上產(chǎn)生位移。此時(shí),雙極性輸出電壓與vref及a0運(yùn)放輸出v1的關(guān)系為 vout =2v1+vref,即vout=(2v1+vref)。若v1=0,則vout =5;若v1=5,則vout =+5。vout輸出范圍有55和-1010。(2) 輸出零點(diǎn)和滿刻度的調(diào)正在精度要求較高的d/a轉(zhuǎn)換器中都有調(diào)零和調(diào)滿刻度調(diào)整電位器,調(diào)整時(shí),將d

15、/a輸出接數(shù)字電壓表,然后用程序送數(shù)據(jù)啟動d/a轉(zhuǎn)換。例如8位d/a轉(zhuǎn)換器,輸出為單極性0v5,可用程序送00h,調(diào)節(jié)調(diào)零電位器,使輸出為0。再用程序送ffh,調(diào)節(jié)滿刻度調(diào)整電位器,使d/a輸出為滿量程5v減去最低位所對應(yīng)的電壓值,最低位所對應(yīng)的電壓值等于vfs1lsb,其中1lsb=1/256,fs為滿量程電壓。對雙極性輸出,設(shè)為55,可用程序先給d/a送00h,調(diào)整調(diào)零電位器,使輸出為5,然后再送ffh,調(diào)整滿刻度電位器,使輸出為滿量程10v減去一個(gè)最低位所對應(yīng)的電壓值。圖10-7單極性電壓輸出圖10-8雙極性電壓輸出6dac0832的工作方式的工作方式dac0832內(nèi)部有兩級輸入緩沖寄存

16、器。當(dāng)le1=1(高電平)時(shí)(即ile=1, =0,=0),輸入寄存器的輸出端信號隨d7d0的變化而變化;當(dāng)le1=0時(shí)(即ile=0,或 =1,或=1),輸入寄存器鎖存d7d0的當(dāng)前值。當(dāng)le2=1時(shí)(即=0, =0),dac寄存器的輸出信號跟隨輸入寄存器的輸出端信號變化;當(dāng)le2=0時(shí)(即=1或 =1),dac寄存器鎖存當(dāng)前輸入寄存器輸出的值,送d/a轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。因此dac0832有3種工作方式。(1)雙緩沖方式雙緩沖方式:數(shù)據(jù)通過二個(gè)寄存器鎖存后送入d/a轉(zhuǎn)換電路,執(zhí)行兩次寫操作才能完成一次d/a轉(zhuǎn)換。這種方式特別適用于要求同時(shí)輸出多個(gè)模擬量的場合。這種方式通常采用的接線是:ile固

17、定接+5v,cpu的信號復(fù)連接到、和,用作為輸入寄存器的片選信號,分別接到兩個(gè)i/o口地址譯碼輸出,接線如圖10-9所示。圖10-9 dac0832雙緩沖方式(2) 單緩沖方式單緩沖方式:兩個(gè)寄存器中的一個(gè)處于直通狀態(tài),輸入數(shù)據(jù)只經(jīng)過一級緩沖送入d/a轉(zhuǎn)換器電路,例如,把、接數(shù)字信號地,使dac寄存器處于直通狀態(tài),ile接+5v, 接cpu的,接i/o口地址譯碼。在這種方式下,只需執(zhí)行一次寫操作,即可完成d/a轉(zhuǎn)換,可以提高dac的數(shù)據(jù)吞吐量。這種方式接線如圖10-10所示。 圖10-10 dac0832單緩沖方式 (3) 直通方式直通方式:兩個(gè)寄存器都處于直通狀態(tài),即ile=1、和都接數(shù)字信

18、號地,數(shù)據(jù)直接送入d/a轉(zhuǎn)換器電路進(jìn)行d/a轉(zhuǎn)換。這種方式可用于一些不采用微機(jī)的控制系統(tǒng)中。 10.2 12位位d/a轉(zhuǎn)換芯片轉(zhuǎn)換芯片 dac1210與與dac0832應(yīng)用應(yīng)用1項(xiàng)目要求與目的項(xiàng)目要求與目的(1)項(xiàng)目要求:編寫程序,使d/a轉(zhuǎn)換模塊輸出連續(xù)三角波和鋸齒波。(2)項(xiàng)目目的: 掌握dac0832芯片的性能,使用方法及對應(yīng)硬件電路。 了解d/a轉(zhuǎn)換的編程方法。 掌握8086cpu與dac接口電路。10.2.1項(xiàng)目項(xiàng)目2:dac0832輸出連續(xù)的三角波和鋸齒波輸出連續(xù)的三角波和鋸齒波2項(xiàng)目電路連接與說明項(xiàng)目電路連接與說明(1)項(xiàng)目電路連接:dac0832的片選孔用導(dǎo)線接至譯碼處208h

19、20fh插孔,用示波器的輸入探頭接dac0832的輸出插孔。(2)項(xiàng)目說明:d/a轉(zhuǎn)換是把數(shù)字量轉(zhuǎn)化成模擬量的過程,本項(xiàng)目是dac0832輸出連續(xù)的三角波和鋸齒波模擬電壓,輸出結(jié)果可用示波器觀察。3項(xiàng)目電路原理圖項(xiàng)目電路原理圖項(xiàng)目電路原理框圖如圖10-11所示。電路由8086cpu、dac0832芯片、lm358運(yùn)算放大器等組成 圖10-11 dac0832輸出連續(xù)的三角波和鋸齒波電路圖4項(xiàng)目程序設(shè)計(jì)項(xiàng)目程序設(shè)計(jì)(1)程序流程圖 圖10-12 dac0832輸出連續(xù)的三角波和鋸齒波程序流程圖2)程序清單dac0832輸出連續(xù)三角波和鋸齒波清單如下所示。code segmentassume cs

20、:code start: push cs ;置指針 pop dsbg: nop mov dx,208h;dac0832地址 mov al,00h;置轉(zhuǎn)換初值mov cx,07ffh;置循環(huán)值bb: out dx,al ;轉(zhuǎn)換輸出鋸齒波 add al,01 ;數(shù)字量加1 cmp al,00h;比較數(shù)字量為00h嗎 jnz bb;不為00h轉(zhuǎn)bbloop bb;判斷循環(huán)次數(shù)為0 嗎,不為0轉(zhuǎn)bbnopmov al,00h;置轉(zhuǎn)換初值mov cx,07ff h;置循環(huán)值ee: out dx,al;轉(zhuǎn)換輸出三角波add al,01h ;數(shù)字量加1cmp al,0ffh;比較是否是ffh,jne ee

21、; 不為ffh轉(zhuǎn)eeff: out dx,al ; 為ffh轉(zhuǎn)換sub al,01h ; 數(shù)字量減1cmp al,00h; 比較是否是00h,jne ff ; 不為00h轉(zhuǎn)ffloop ee ; 判斷循環(huán)次數(shù)為0 嗎,不為0轉(zhuǎn)eejmp bg ;循環(huán)code endsend start10.2.1知識講解知識講解 1. dac 1210的引腳與內(nèi)部結(jié)構(gòu)的引腳與內(nèi)部結(jié)構(gòu)(1)dac 1210的引腳dac 12l0的引腳如圖10-13所示,引腳功能如下所示。與cpu相連的引腳d0d11:12位數(shù)據(jù)輸入端。(1腳):片選信號,輸入、低電平有效。(2腳):寫信號1,輸入、低電平有效。在有效時(shí),用它將數(shù)

22、字鎖存于第一級鎖存器中。/(23腳):12位4位輸入選擇,輸入。高電平時(shí),高8位和低4位輸入鎖存;低電平時(shí),低4位輸入鎖存。(21腳):傳送控制信號,輸入、低電平有效。 (22腳):寫信號2,輸入、低電平有效。在有效的條件下,第一級鎖存器中的數(shù)據(jù)傳送到第二級的12位dac寄存器中。 與外設(shè)相連的引腳 iout1(13腳):dac電流輸出1。它是邏輯電平為l的各位輸出電流之和。 iout2(14腳):dac電流輸出2。它是邏輯電平為0的各位輸出電流之和。 rf(11腳):反饋電阻。該電阻被制作在芯片內(nèi),用作運(yùn)算放大器的反饋電阻。其它 vref(10腳):基準(zhǔn)電壓輸入端。 vcc(24腳):邏輯電

23、源。 agnd(3腳):模擬地。 dgnd(12腳):數(shù)字地。(2) dac 12l0的內(nèi)部結(jié)構(gòu)dac 12l0的內(nèi)部結(jié)構(gòu)如圖10-14所示。dac l210的內(nèi)部結(jié)構(gòu)與dac 0832非常相似,也具有雙緩沖輸入寄存器,不同的是dac l210的雙緩沖和da轉(zhuǎn)換均為12位。dac l210的內(nèi)部由一個(gè)8位鎖存器、一個(gè)4位鎖存器、一個(gè)12位dac鎖存器及12位da轉(zhuǎn)換器組成 圖10-13 dac1210的引腳 圖10-14 dac1210的內(nèi)部結(jié)構(gòu) 2. dac0832應(yīng)用應(yīng)用下面是以電路圖10-10 所示dac0832單緩沖方式為基礎(chǔ)來說明幾種典型應(yīng)用。設(shè)dac0832的片選接至譯碼處地址為2

24、08h20fh。(1)鋸齒波)鋸齒波在計(jì)算機(jī)控制系統(tǒng)中,常常需要一個(gè)線性增長的電壓,這個(gè)線性增長的電壓就可以用d/a轉(zhuǎn)換去實(shí)現(xiàn),并用示波器來觀察轉(zhuǎn)換結(jié)果。我們只需要將數(shù)字量0255依次遞增連續(xù)送到dac0832進(jìn)行d/a轉(zhuǎn)換,在運(yùn)算放大器的輸出端就可得到如圖10-15所示的鋸齒波波形,控制程序如下所示。 start: mov al,0 ;數(shù)字量初始值;數(shù)字量初始值 mov dx,208h ;dac0832地址地址 out dx,al inc al ;數(shù)字量加;數(shù)字量加1 jmp start ;循環(huán);循環(huán)圖10-15 鋸齒波波形圖 以上是從0到vfs(滿量程)經(jīng)過了256小步完成的,如果要改變鋸

25、齒波的斜率,只要延長每小步的時(shí)間,程序修改為如下所示。 start: mov al,0 ;數(shù)字量初始值;數(shù)字量初始值 mov dx,208h ;dac0832地址地址 out dx,al call delay ;調(diào)延時(shí)子程序,時(shí)間的長短根據(jù)需要確定調(diào)延時(shí)子程序,時(shí)間的長短根據(jù)需要確定 inc al ;數(shù)字量加;數(shù)字量加1 jmp start ;循環(huán);循環(huán)(2)三角波)三角波三角波波形圖如圖10-16所示,控制程序如下所示。start: mov al,0 ;數(shù)字量初始值;數(shù)字量初始值 mov dx,208h ;dac0832地址地址ee: out dx,al;轉(zhuǎn)換轉(zhuǎn)換,產(chǎn)生三角波產(chǎn)生三角波 ad

26、d al,01h ;數(shù)字量加數(shù)字量加1 cmp al,0ffh;比較是否是比較是否是ffh, jne ee ; 不為不為ffh轉(zhuǎn)轉(zhuǎn)bbff: out dx,al ; 為為ffh轉(zhuǎn)換轉(zhuǎn)換 sub al,01h ; 數(shù)字量減數(shù)字量減1 cmp al,00h; 比較是否是比較是否是00h, jne ff ; 不為不為00h轉(zhuǎn)轉(zhuǎn)ff jmp start ;循環(huán)循環(huán)圖10-16三角波波形圖 (3) 方波方波方波波形圖如圖10-17所示,控制程序如下所示。start: mov al,0 ;最小數(shù)字量;最小數(shù)字量 mov dx,208h ;dac0832地址地址 out dx,al call delay ;

27、調(diào)延時(shí)子程序,時(shí)間的長短根據(jù)需要確定調(diào)延時(shí)子程序,時(shí)間的長短根據(jù)需要確定 mov al,0ffh ;最大數(shù)字量;最大數(shù)字量 mov dx,208h ;dac0832地址地址 out dx,al call delay ;調(diào)延時(shí)子程序,時(shí)間的長短調(diào)延時(shí)子程序,時(shí)間的長短 jmp start ;循環(huán)循環(huán)圖10-17 方波波形圖只要在輸出的延時(shí)時(shí)間的長短不同,就可得到如圖10-18所示的矩形波。圖10-18 矩形波波形圖(4) 梯形波梯形波梯形波波形圖如圖10-19所示,控制程序如下所示。start: mov al,0 ;最小數(shù)字量;最小數(shù)字量 mov dx,208h ;dac0832地址地址 out

28、 dx,al l0: call delay ;調(diào)延時(shí)子程序,時(shí)間的長短根據(jù)需要確定調(diào)延時(shí)子程序,時(shí)間的長短根據(jù)需要確定 l1: inc al out dx,al cmp al,0ffh jnz l1 call delay l2: dec al out dx,al cmp al,00h jnz l2 jmp l0圖10-19 梯形波波形圖10.3項(xiàng)目擴(kuò)展與工程應(yīng)用項(xiàng)目擴(kuò)展與工程應(yīng)用 10.3.1 項(xiàng)目項(xiàng)目3:用:用dac0832控制直流電機(jī)控制直流電機(jī) 1項(xiàng)目要求與目的項(xiàng)目要求與目的(1)項(xiàng)目要求:利用實(shí)驗(yàn)板上的8255的pb口接3只開關(guān)k0、k1和k2,通過開關(guān)的閉合來實(shí)現(xiàn)直流電機(jī)的不同轉(zhuǎn)速,

29、dac0832做d/a轉(zhuǎn)換器, 編制程序,將二進(jìn)制數(shù)字量,通過dac0832把數(shù)字量轉(zhuǎn)換模擬量輸出去控制直流電機(jī)轉(zhuǎn)速。(2)項(xiàng)目目的:掌握d/a轉(zhuǎn)換與8086cpu的接口方法。了解8255芯片性能及編程。了解d/a芯片dac0832轉(zhuǎn)換性能及編程。掌握8255芯片與8086cpu的接口方法 2項(xiàng)目電路連接與說明項(xiàng)目電路連接與說明 (1)項(xiàng)目電路連接:8255的片選孔用導(dǎo)線接至譯碼處200h207h插孔, dac0832的片選孔用導(dǎo)線接至譯碼處208h20fh插孔,dac0832的輸出aout用導(dǎo)線接至直流電機(jī)的dcin插孔。(2)項(xiàng)目說明:8255的pb口接3只開關(guān)k0、k1和k2,pa口接3

30、只發(fā)光二極管led,k0閉合led0燈亮,數(shù)字量00h送dac0832轉(zhuǎn)換,輸出控制直流電機(jī)轉(zhuǎn)速,通過開關(guān)的閉合來實(shí)現(xiàn)直流電機(jī)的不同轉(zhuǎn)速。3項(xiàng)目電路原理框圖項(xiàng)目電路原理框圖用8255控制直流電機(jī)轉(zhuǎn)速電路原理框圖如圖10-20所示。電路由8086cpu芯片、dac0832芯片、8255a芯片、開關(guān)和直流電機(jī)等組成。 圖10-20 用8255控制直流電機(jī)轉(zhuǎn)速電路原理框圖4項(xiàng)目程序設(shè)計(jì)(1)程序流程圖用8255控制直流電機(jī)轉(zhuǎn)速程序流程圖如圖10-21所示 圖10-22 程序流程圖 (2)程序清單用8255控制直流電機(jī)轉(zhuǎn)速程序清單如下所示。code segmentassume cs:code star

31、t: mov dx , 203h ;8255的控制口地址的控制口地址 mov al , 82h ;pa輸出,輸出,pb輸入輸入 out dx , al k0: mov dx , 201h ;pb口地址口地址 in al , dx ;讀開關(guān)的狀態(tài)讀開關(guān)的狀態(tài) and al , 01h ;與與pb0相相“與與” jnz k1 ;k0沒有閉合(沒有閉合(k00)轉(zhuǎn))轉(zhuǎn)k1 mov dx , 200h ; k0閉合(閉合(k0=0),),led0亮亮 mov al , 0feh ; led0亮亮 out dx , al mov dx , 208h;dac0832地址地址 mov al , 00h ;

32、數(shù)字量數(shù)字量00h送去轉(zhuǎn)換輸出送去轉(zhuǎn)換輸出0v out dx , al jmp k0 k1: mov dx , 201h ;pb口地址口地址 in al , dx and al , 02h ;與與pb1相相“與與” jnz k2 ;k1沒有閉合(沒有閉合(k10)轉(zhuǎn))轉(zhuǎn)k2 mov dx , 200h ; k1閉合(閉合(k1=0),),led1亮亮 mov al , 0fdh ; led1亮亮 out dx , al mov dx , 208h ;dac0832地址地址 mov al , 80h ; 數(shù)字量數(shù)字量80h送去轉(zhuǎn)換輸出送去轉(zhuǎn)換輸出2.5v out dx , al jmp k0 k

33、2: mov dx , 201h ;pb口地址口地址 in al , dx and al , 04h ;與與pb2相相“與與” jnz k0 ;k2沒有閉合(沒有閉合(k20)轉(zhuǎn))轉(zhuǎn)k0 mov dx , 200h ; ;k2閉合(閉合(k2=0),),led2亮亮 mov al , 0fbh out dx , al mov dx , 208h ;dac0832地址地址 mov al , 0ffh ; 數(shù)字量數(shù)字量ffh送去轉(zhuǎn)換輸出送去轉(zhuǎn)換輸出5v out dx , al jmp k0 code ends end start10.3.2項(xiàng)目項(xiàng)目4:直流電機(jī)轉(zhuǎn)速控制:直流電機(jī)轉(zhuǎn)速控制 1項(xiàng)目要求

34、與目的項(xiàng)目要求與目的(1)項(xiàng)目要求:利用實(shí)驗(yàn)板上的dac0832做d/a轉(zhuǎn)換器,轉(zhuǎn)換的結(jié)果控制直流電機(jī)的轉(zhuǎn)速,編制程序,將二進(jìn)制數(shù)字量轉(zhuǎn)換成模擬量,控制直流電機(jī)的轉(zhuǎn)速,根據(jù)轉(zhuǎn)速用8255的pa口輸出到發(fā)光二極管左循環(huán)顯示。(2)項(xiàng)目目的:掌握d/a轉(zhuǎn)換與8086cpu的接口方法。了解d/a芯片dac0832編程。了解8255芯片編程方法。2項(xiàng)目電路連接與說明項(xiàng)目電路連接與說明 (1)項(xiàng)目電路連接:dac0832的片選孔用導(dǎo)線接至譯碼處208h20fh插孔,aout接至直流電機(jī)的dcin端,直流電機(jī)的ckm端接至8255的pb0,用來讀直流電機(jī)的轉(zhuǎn)速,8255的片選孔用導(dǎo)線接至譯碼處200h20

35、7h插孔,發(fā)光二極管led的l0-l7分別用導(dǎo)線接至8255的pa0-pa7。(2)項(xiàng)目說明:在電壓允許范圍內(nèi),直流電機(jī)的轉(zhuǎn)速隨著電壓的升高而加快。將電壓經(jīng)過驅(qū)動后加在直流電機(jī)上,使其運(yùn)轉(zhuǎn)。在電機(jī)轉(zhuǎn)盤上安裝一個(gè)小磁鐵,用霍爾元件感應(yīng)直流電機(jī)轉(zhuǎn)速,用8086cpu控制8255的pb0讀回感應(yīng)脈沖,從而測算出電機(jī)轉(zhuǎn)速,并用led左循環(huán)的速度顯示出來。3項(xiàng)目電路原理框圖項(xiàng)目電路原理框圖直流電機(jī)轉(zhuǎn)速控制電路原理框圖如圖10-23所示。電路由8086cpu芯片、dac0832芯片、8255a芯片直流電機(jī)、霍爾元件和發(fā)光二極管led等組成 圖10-23 直流電機(jī)轉(zhuǎn)速控制電路原理框圖 4項(xiàng)目程序設(shè)計(jì)項(xiàng)目程序

36、設(shè)計(jì) 圖10-24 直流電機(jī)轉(zhuǎn)速控制程序流程圖(2)程序清單)程序清單直流電機(jī)轉(zhuǎn)速控制程序清單如下所示。直流電機(jī)轉(zhuǎn)速控制程序清單如下所示。code segment assume cs:codestart:mov al,82h ;8255的的pa口輸出,口輸出,pb口輸入,方式口輸入,方式0 mov dx,203h ;8255控制口控制口 out dx,al ;寫控制字;寫控制字 mov ah,0feh ;置初值接;置初值接pa0的的led亮亮 again:mov dx,208h ;dac0832地址地址 mov al,0ffh ;設(shè)置電機(jī)轉(zhuǎn)速(送;設(shè)置電機(jī)轉(zhuǎn)速(送ffh去轉(zhuǎn)換)去轉(zhuǎn)換) out dx,al ;dac0832轉(zhuǎn)換轉(zhuǎn)換 call delay ;調(diào)延時(shí)子程序;調(diào)延時(shí)子程序 call read ;調(diào)測轉(zhuǎn)速及;調(diào)測轉(zhuǎn)速及l(fā)ed燈左循環(huán)子程序燈左循環(huán)子程序 mov dx,208h ;dac0832地址地址 mov al,0a0h ;設(shè)置電機(jī)轉(zhuǎn)速(送;設(shè)置電

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論