欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 16514|回復: 4
收起左側

ADC0809模數轉換程序及詳解

[復制鏈接]
ID:138707 發表于 2018-6-8 22:00 | 顯示全部樓層 |閱讀模式
本帖最后由 ziba108 于 2018-6-8 22:02 編輯

ADC0809模數轉換程序及詳解

       對于初學者通過51單片機在加ADC0809模數轉換尤其很重要,很多傳感器得來的數據必須轉換后
進一步通過51單片機來送到下一個環節,所以跟深層的了解模數轉換很有必要。


模數轉換器最重要的參數是轉換的精度,通常用輸出的數字信號的位數的多少表示。轉換器能夠準確輸出的數字信號的位數越多,表示轉換器能夠分辨輸入信號的能力越強,轉換器的性能也就越好。
  A/D 轉換一般要經過采樣、保持、量化及編有些過程是合并進碼4 個過程。在實際電路中,如采樣和保持,量化和編碼在轉換過程中行的,是同時實現的。 而ADC0809是采樣頻率為8位的、以逐次逼近原理進行模—數轉換的器件。其內部有一個8通道多路開關,它可以根據地址碼鎖存譯碼后的信號,只選通8路模擬輸入信號中的一個進行A/D轉換。
  ADC0809主要特性:
  188AD轉換器,即分辨率8位。
  2)具有轉換起停控制端。
  3)轉換時間為100μs
  4)單個+5V電源供電
  5)模擬輸入電壓范圍0~+5V,不需零點和滿刻度校準。
  6)工作溫度范圍為-40~+85攝氏度
  7)低功耗,約15mW
  ADC0809內部結構
圖片1.jpg
ADC0809外部特性(引腳功能)
圖片2.png
ADC0809芯片有28條引腳,采用雙列直插式封裝,下面說明各引腳功能。
  IN0IN78路模擬量輸入端。
  2-12-88位數字量輸出端。
  ADDAADDBADDC3位地址輸入線,用于選通8路模擬輸入中的一路
  ALE:地址鎖存允許信號,輸入,高電平有效。
  STARTAD轉換啟動信號,輸入,高電平有效。
  EOCAD轉換結束信號,輸出,當AD轉換結束時,此端輸出一個高電平(轉換期間一直為低電平)。
  OE:數據輸出允許信號,輸入,高電平有效。當AD轉換結束時,此端輸入一個高電平,才能打開輸出三態門,輸出數字量。
  CLK:時鐘脈沖輸入端。要求時鐘頻率不高于640KHZ
  REF+)、REF-):基準電壓。
  Vcc:電源,單一+5V
GND:地。

ADC0809的工作過程是:首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此 地址經譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復位。下降沿啟動 AD轉換,之后EOC輸出信號變低,指示轉換正在進行。直到AD轉換完成,EOC變為高電平,指示AD轉換結束,結果數據已存入鎖存器,這個信號可 用作中斷申請。當OE輸入高電平 時,輸出三態門打開,轉換結果的數字量輸出到數據總線上。

值得一提的是,我按照上面電路,把ADABC三腳共同接接地時,AD0809088始終輸出高電平,最后當我把BC共同接地,在程序中給A一個0,則AD0809正常運行,有輸出,并且發現當所給的時鐘頻率越低,最高精度的那位輸出越穩定。
ADC0809模數轉換完整的程序:
  #includereg52.h
  #define uint unsigned int
  #define uchar unsigned char
  uchar aaqianbaishige;
  uint temp;
  sbit clock=P2^0;
  sbit start=P2^1;
  sbit eoc=P2^2;
  sbit oe=P2^3;
  sbit ale=P2^4;
  sbit adda=P2^5;
  uchar code table[]={
  0x3f0x060x5b0x4f
  0x660x6d0x7d0x07
  0x7f0x6f0x770x7c
  0x390x5e0x790x71
  };
  //void displayuchar baiuchar shiuchar ge;
  void delayuint z;
  void main()   {
  TMOD=0x20; //設置定時器1為工作方式2
  TH1=0x216; //216
  TL1=0x216; //216
  EA=1; //開總中斷
  ET1=1; //t1中斷
  TR1=1;
  start=0; //復位
  oe=0; //輸出
  adda=0;
  //eoc=0;
  ale=0; //關閉地址選擇
  while1   {
  start=0;
  ///delay10;
  start=1; // 復位
  ale=1; // 打開地址選擇
  adda=0;
  ///delay10;
  start=0; // 開始轉換
  ale=0; // 關地址
  //delay1;
  whileeoc==0; // 等待eoc變為1
  //delay1;
  oe=1; // 打開輸出
  //delay1;
  //P1=0xff;
  temp=P1; // p1p3
  oe=0; // 關輸出
  temp=temp*50;
  temp=temp/256;
  qian=temp/1000;
  bai=temp%1000/100;
  shi=temp%100/10;
  ge=temp%10;
  P3=0x00;
  P0=0xfe;
  P3=tableqian;
  delay50;
  P3=0x00;
  P0=0xfd;
  P3=tablebai;
  delay50;
  P3=0x00;
  P0=0xfb;
  P3=tableshi;
  delay50;
  P3=0x00;
  P0=0xf7;
  P3=tablege;   }   }
  void delayuint z   {
  uint xy;
  forx=z;x0;x--
  fory=1;y0;y--;
  }
  void cl() interrupt 3    {
clock=clock;
}
ADC0809模數轉換程序及詳解.docx (140.61 KB, 下載次數: 88)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:366868 發表于 2018-7-7 16:10 | 顯示全部樓層
額這一個程序換了好幾個名字發了好幾次
回復

使用道具 舉報

ID:442451 發表于 2018-12-8 23:02 | 顯示全部樓層
學習一下,雖然有點過時;
回復

使用道具 舉報

ID:371895 發表于 2018-12-9 10:55 | 顯示全部樓層
謝謝分享。。。。。。。。。。。。。。
回復

使用道具 舉報

ID:419391 發表于 2020-5-17 09:49 | 顯示全部樓層
很好的資源,學習了
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表