<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 27. ADC0809A/D轉(zhuǎn)換器基本應用技術(shù)

          27. ADC0809A/D轉(zhuǎn)換器基本應用技術(shù)

          作者: 時間:2016-11-18 來源:網(wǎng)絡 收藏
          1.基本知識
          ADC0809是帶有8位A/D轉(zhuǎn)換器、8路多路開關(guān)以及微處理機兼容的控制邏輯的CMOS組件。它是逐次逼近式A/D轉(zhuǎn)換器,可以和單片機直接接口。
          (1).ADC0809的內(nèi)部邏輯結(jié)構(gòu)
          8路模擬量開關(guān)
          8路A/D轉(zhuǎn)換器
          三態(tài)輸出鎖存器
          地址鎖存與譯碼器
          IN0
          IN1
          IN2
          IN3
          IN4
          IN5
          IN6
          IN7
          A
          B
          C
          ALE
          VREF(+)
          VREF(-)
          OE
          EOC
          D0
          D1
          D2
          D3
          D4
          D5
          D6
          D7
          CLK
          ST
          由上圖可知,ADC0809由一個8路模擬開關(guān)、一個地址鎖存與譯碼器、一個A/D轉(zhuǎn)換器和一個三態(tài)輸出鎖存器組成。多路開關(guān)可選通8個模擬通道,允許8路模擬量分時輸入,共用A/D轉(zhuǎn)換器進行轉(zhuǎn)換。三態(tài)輸出鎖器用于鎖存A/D轉(zhuǎn)換完的數(shù)字量,當OE端為高電平時,才可以從三態(tài)輸出鎖存器取走轉(zhuǎn)換完的數(shù)據(jù)。
          (2).引腳結(jié)構(gòu)
          IN0-IN7:8條模擬量輸入通道
          ADC0809對輸入模擬量要求:信號單極性,電壓范圍是0-5V,若信號太小,必須進行放大;輸入的模擬量在轉(zhuǎn)換過程中應該保持不變,如若模擬量變化太快,則需在輸入前增加采樣保持電路。
          地址輸入和控制線:4條
          ALE為地址鎖存允許輸入線,高電平有效。當ALE線為高電平時,地址鎖存與譯碼器將A,B,C三條地址線的地址信號進行鎖存,經(jīng)譯碼后被選中的通道的模擬量進轉(zhuǎn)換器進行轉(zhuǎn)換。A,B和C為地址輸入線,用于選通IN0-IN7上的一路模擬量輸入。通道選擇表如下表所示。
          C
          B
          A
          選擇的通道
          0
          0
          0
          IN0
          0
          0
          1
          IN1
          0
          1
          0
          IN2
          0
          1
          1
          IN3
          1
          0
          0
          IN4
          1
          0
          1
          IN5
          1
          1
          0
          IN6
          1
          1
          1
          IN7
          數(shù)字量輸出及控制線:11條
          ST為轉(zhuǎn)換啟動信號。當ST上跳沿時,所有內(nèi)部寄存器清零;下跳沿時,開始進行A/D轉(zhuǎn)換;在轉(zhuǎn)換期間,ST應保持低電平。EOC為轉(zhuǎn)換結(jié)束信號。當EOC為高電平時,表明轉(zhuǎn)換結(jié)束;否則,表明正在進行A/D轉(zhuǎn)換。OE為輸出允許信號,用于控制三條輸出鎖存器向單片機輸出轉(zhuǎn)換得到的數(shù)據(jù)。OE=1,輸出轉(zhuǎn)換得到的數(shù)據(jù);OE=0,輸出數(shù)據(jù)線呈高阻狀態(tài)。D7-D0為數(shù)字量輸出線。
          CLK為時鐘輸入信號線。因ADC0809的內(nèi)部沒有時鐘電路,所需時鐘信號必須由外界提供,通常使用頻率為500KHZ,
          VREF(+),VREF(-)為參考電壓輸入。
          2.ADC0809應用說明
          (1).ADC0809內(nèi)部帶有輸出鎖存器,可以與AT89S51單片機直接相連。
          (2).初始化時,使ST和OE信號全為低電平。
          (3).送要轉(zhuǎn)換的哪一通道的地址到A,B,C端口上。
          (4).在ST端給出一個至少有100ns寬的正脈沖信號
          (5).是否轉(zhuǎn)換完畢,我們根據(jù)EOC信號來判斷。
          (6).當EOC變?yōu)楦唠娖綍r,這時給OE為高電平,轉(zhuǎn)換的數(shù)據(jù)就輸出給單片機了。
          3.實驗任務
          如下圖所示,從ADC0809的通道IN3輸入0-5V之間的模擬量,通過ADC0809轉(zhuǎn)換成數(shù)字量在數(shù)碼管上以十進制形成顯示出來。ADC0809的VREF接+5V電壓。
          4.電路原理

          圖1.27.1
          5.系統(tǒng)板上硬件連線
          (1).把“單片機系統(tǒng)板”區(qū)域中的P1端口的P1.0-P1.7用8芯排線連接到“動態(tài)數(shù)碼顯示”區(qū)域中的ABCDEFGH端口上,作為數(shù)碼管的筆段驅(qū)動。
          (2).把“單片機系統(tǒng)板”區(qū)域中的P2端口的P2.0-P2.7用8芯排線連接到“動態(tài)數(shù)碼顯示”區(qū)域中的S1S2S3S4S5S6S7S8端口上,作為數(shù)碼管的位段選擇。
          (3).把“單片機系統(tǒng)板”區(qū)域中的P0端口的P0.0-P0.7用8芯排線連接到“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的D0D1D2D3D4D5D6D7端口上,A/D轉(zhuǎn)換完畢的數(shù)據(jù)輸入到單片機的P0端口
          (4).把“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的VREF端子用導線連接到“電源模塊”區(qū)域中的VCC端子上;
          (5).把“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的A2A1A0端子用導線連接到“單片機系統(tǒng)”區(qū)域中的P3.4P3.5P3.6端子上;
          (6).把“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的ST端子用導線連接到“單片機系統(tǒng)”區(qū)域中的P3.0端子上;
          (7).把“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的OE端子用導線連接到“單片機系統(tǒng)”區(qū)域中的P3.1端子上;
          (8).把“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的EOC端子用導線連接到“單片機系統(tǒng)”區(qū)域中的P3.2端子上;
          (9).把“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的CLK端子用導線連接到“分頻模塊”區(qū)域中的/4端子上;
          (10).把“分頻模塊”區(qū)域中的CKIN端子用導線連接到“單片機系統(tǒng)”區(qū)域中的ALE端子上;
          (11).把“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的IN3端子用導線連接到“三路可調(diào)壓模塊”區(qū)域中的VR1端子上;
          6.程序設計內(nèi)容
          (1).進行A/D轉(zhuǎn)換時,采用查詢EOC的標志信號來檢測A/D轉(zhuǎn)換是否完畢,若完畢則把數(shù)據(jù)通過P0端口讀入,經(jīng)過數(shù)據(jù)處理之后在數(shù)碼管上顯示。
          (2).進行A/D轉(zhuǎn)換之前,要啟動轉(zhuǎn)換的方法:
          ABC=110選擇第三通道
          ST=0,ST=1,ST=0產(chǎn)生啟動轉(zhuǎn)換的正脈沖信號
          7.匯編源程序
          CHEQU30H
          DPCNTEQU31H
          DPBUFEQU33H
          GDATAEQU32H
          STBITP3.0
          OEBITP3.1
          EOCBITP3.2

          ORG00H
          LJMPSTART
          ORG0BH
          LJMPT0X
          ORG30H
          START:MOVCH,#0BCH
          MOVDPCNT,#00H
          MOVR1,#DPCNT
          MOVR7,#5
          MOVA,#10
          MOVR0,#DPBUF
          LOP:MOV@R0,A
          INCR0
          DJNZR7,LOP
          MOV@R0,#00H
          INCR0
          MOV@R0,#00H
          INCR0
          MOV@R0,#00H
          MOVTMOD,#01H
          MOVTH0,#(65536-4000)/256
          MOVTL0,#(65536-4000)MOD256
          SETBTR0
          SETBET0
          SETBEA
          WT:CLRST
          SETBST
          CLRST
          WAIT:JNBEOC,WAIT
          SETBOE
          MOVGDATA,P0
          CLROE
          MOVA,GDATA
          MOVB,#100
          DIVAB
          MOV33H,A
          MOVA,B
          MOVB,#10
          DIVAB
          MOV34H,A
          MOV35H,B
          SJMPWT
          T0X:NOP
          MOVTH0,#(65536-4000)/256
          MOVTL0,#(65536-4000)MOD256
          MOVDPTR,#DPCD
          MOVA,DPCNT
          ADDA,#DPBUF
          MOVR0,A
          MOVA,@R0
          MOVCA,@A+DPTR
          MOVP1,A
          MOVDPTR,#DPBT
          MOVA,DPCNT
          MOVCA,@A+DPTR
          MOVP2,A
          INCDPCNT
          MOVA,DPCNT
          CJNEA,#8,NEXT
          MOVDPCNT,#00H
          NEXT:RETI
          DPCD:DB3FH,06H,5BH,4FH,66H
          DB6DH,7DH,07H,7FH,6FH,00H
          DPBT:DB0FEH,0FDH,0FBH,0F7H
          DB0EFH,0DFH,0BFH,07FH
          END

          8.C語言源程序
          #include
          unsignedcharcodedispbitcode[]={0xfe,0xfd,0xfb,0xf7,
          0xef,0xdf,0xbf,0x7f};
          unsignedcharcodedispcode[]={0x3f,0x06,0x5b,0x4f,0x66,
          0x6d,0x7d,0x07,0x7f,0x6f,0x00};
          unsignedchardispbuf[8]={10,10,10,10,10,0,0,0};
          unsignedchardispcount;

          sbitST=P3^0;
          sbitOE=P3^1;
          sbitEOC=P3^2;
          unsignedcharchannel=0xbc;//IN3
          unsignedchargetdata;

          voidmain(void)
          {
          TMOD=0x01;
          TH0=(65536-4000)/256;
          TL0=(65536-4000)%256;
          TR0=1;
          ET0=1;
          EA=1;

          P3=channel;

          while(1)
          {
          ST=0;
          ST=1;
          ST=0;
          while(EOC==0);
          OE=1;
          getdata=P0;
          OE=0;
          dispbuf[2]=getdata/100;
          getdata=getdata%10;
          dispbuf[1]=getdata/10;
          dispbuf[0]=getdata%10;
          }
          }

          voidt0(void)interrupt1using0
          {
          TH0=(65536-4000)/256;
          TL0=(65536-4000)%256;
          P1=dispcode[dispbuf[dispcount]];
          P2=dispbitcode[dispcount];
          dispcount++;
          if(dispcount==8)
          {
          dispcount=0;
          }
          }


          關(guān)鍵詞: ADC0809AD轉(zhuǎn)換

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();