久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5087|回復: 0
打印 上一主題 下一主題
收起左側

數模轉換ADC0809數字電壓表

[復制鏈接]
跳轉到指定樓層
樓主
項目數模轉換ADC0809數字電壓表
51單片機做的數模轉換ADC0809芯片的數字電壓表的proteus仿真原理圖如下:


ADC0808芯片 介紹是含8 位A/D 轉換器、8 路多路開關,以及與微型計算機兼容的控制邏輯的CMOS組件,其轉換方法為逐次逼近型。ADC0808的精度為 1/2LSB。在AD 轉換器內部有一個高阻抗斬波穩定比較器,一個帶模擬開關樹組的256 電阻分壓器,以及一個逐次通近型寄存器。8 路的模擬開關的通斷由地址鎖存器和譯碼器控制,可以在8 個通道中任意訪問一個單邊的模擬信號。
內部結構
ADC0808是CMOS單片型逐次逼近式A/D轉換器,它有8路模擬開關、地址鎖存與譯碼器、比較器、8位開關樹型A/D轉換器
引腳功能(外部特性)
ADC0808芯片有28條引腳,采用雙列直插式封裝,如右圖所示。各引腳功能如下:
1~5和26~28(IN0~IN7):8路模擬量輸入端。
8、14、15和17~21:8位數字量輸出端。
22(ALE):地址鎖存允許信號,輸入,高電平有效。
6(START): A/D轉換啟動脈沖輸入端,輸入一個正脈沖(至少100ns寬)使其啟動(脈沖上升沿使0809復位,下降沿啟動A/D轉換)。
7(EOC): A/D轉換結束信號,輸出,當A/D轉換結束時,此端輸出一個高電平(轉換期間一直為低電平)。
9(OE):數據輸出允許信號,輸入,高電平有效。當A/D轉換結束時,此端輸入一個高電平,才能打開輸出三態門,輸出數字量。
10(CLK):時鐘脈沖輸入端。要求時鐘頻率不高于640KHZ。
12(VREF(+))和16(VREF(-)):參考電壓輸入端
11(Vcc):主電源輸入端。
13(GND):地。
23~25(ADDA、ADDB、ADDC):3位地址輸入線,用于選通8路模擬輸入中的一路
極限參數
電源電壓(Vcc):6.5V

     控制端輸入電壓:-0.3V~15V
     其它輸入和輸出端電壓:-0.3V~Vcc+0.3V
     貯存溫度:-65℃~+150℃
     功耗(T=+25℃):875mW
     引線焊接溫度:①氣相焊接(60s):215℃;②紅外焊接(15s):220℃
     抗靜電強度:400V
輸出端

out8為最低位out1為最高位,out8-out1分別接單片機的P0.0到P0.7端。

單片機源程序如下:



單片機源程序如下:
  1. #include <reg52.h>             //頭文件
  2. #define uchar unsigned char           //宏定義無符號字符型
  3. #define uint  unsigned  int           //宏定義無符號整型
  4. code uchar seg7code[10]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //顯示段碼 數碼管字跟
  5. uchar wei[4]={0XEf,0XDf,0XBf,0X7f};  //位的控制端                                                                 //位控制碼
  6. sbit ST=P3^0;   //A/D啟動轉換信號
  7. sbit OE=P3^1;   //數據輸出允許信號
  8. sbit EOC=P3^2;  //A/D轉換結束信號
  9. sbit CLK=P3^3;  //時鐘脈沖  
  10. uint z,x,c,v,AD0809, date;        //定義數據類型
  11. /******************************************************************
  12. 延時函數
  13. ******************************************************************/
  14. void delay(uchar t)
  15. {
  16.   uchar i,j;
  17.    for(i=0;i<t;i++)
  18.    {
  19.             for(j=13;j>0;j--);
  20.          { ;
  21.          }
  22.    }
  23. }
  24. /**********************************************************************
  25.                 數碼管動態掃描
  26. *********************************************************************/
  27. void xianshi() //顯示函數
  28. {
  29. uint z,x,c,v;
  30.   z=date/1000;                         //求千位
  31.   x=date%1000/100;                 //求百位
  32.   c=date%100/10;                 //求十位
  33.   v=date%10;                         //求個位

  34.       P2=0XFF;
  35.           P0=seg7code[z]&0x7f;
  36.           P2=wei[0];
  37.           delay(10);
  38.           P2=0XFF;  
  39.       P0=seg7code[x];
  40.           P2=wei[1];
  41.           delay(10);
  42.           P2=0XFF;  
  43.              P0=seg7code[c];
  44.           P2=wei[2];
  45.           delay(10);
  46.           P2=0XFF;  
  47.       P0=seg7code[v];
  48.           P2=wei[3];
  49.           delay(10);
  50.           P2=0XFF;
  51.   }
  52. /*************************************************************************
  53.                                 CLK振蕩信號        
  54. **************************************************************************/
  55. void timer0( ) interrupt 1 //定時器0工作方式1
  56. {

  57. TH0=(65536-2)/256;          //重裝計數初值
  58. TL0=(65536-2)%256;          //重裝計數初值
  59. CLK=!CLK;                          //取反
  60. }

  61. /*************************************************************************
  62.                                 主函數        
  63. **************************************************************************/
  64. void main()
  65. {
  66. TMOD=0X01;                          //定時器中斷0

  67. CLK=0;                                  //脈沖信號初始值為0
  68. TH0=(65536-2)/256;          //定時時間高八位初值
  69. TL0=(65536-2)%256;          //定時時間低八位初值
  70. EA=1;                                  //開CPU中斷
  71. ET0=1;                                  //開T/C0中斷
  72. TR0=1;
  73. while(1)                           //無限循環
  74.         {
  75.         ST=0;                                //使采集信號為低
  76.         ST=1;                                //開始數據轉換
  77.         ST=0;                                //停止數據轉換
  78.         while(!EOC);                //等待數據轉換完畢
  79.         OE=1;                                //允許數據輸出信號
  80.         AD0809=P1;                    //讀取數據
  81.         OE=0;                                //關閉數據輸出允許信號
  82.         if(AD0809>=251)                //電壓顯示不能超過5V
  83.         AD0809=250;
  84.         date=AD0809*20;                //數碼管顯示的數據值,其中20為采集數據的毫安值
  85.         xianshi();                        //數碼管顯示函數
  86.    
  87.     }
  88. }        
復制代碼

評分

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

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 美国av毛片| 免费观看成人av | 欧美日本一区 | 日韩一区二区三区四区五区 | 99久久99| 久久这里只有精品首页 | 久久久久久99 | 亚洲精品电影网在线观看 | 毛片免费看 | 国产区精品 | 成年免费大片黄在线观看一级 | 91精品久久久久久久久久入口 | heyzo在线| 98久久 | 人人做人人澡人人爽欧美 | 视频在线h| 国产高清免费视频 | 天天操天天天 | 欧美一级高潮片免费的 | 另类亚洲视频 | 亚洲精品国产成人 | 亚洲视频区 | 欧美黑人一区 | 草久久免费视频 | 国产精品久久久久久久久久久久冷 | 国产高清在线视频 | 99久久婷婷国产综合精品电影 | 中文精品久久 | 国产精品久久久久久久久免费高清 | 中文字幕 国产精品 | 国产一区二区三区视频 | 台湾佬久久 | 粉嫩一区二区三区性色av | h小视频 | 国产第一页在线观看 | 亚洲国产成人在线视频 | 国产日韩久久久久69影院 | 国产精品亚洲第一 | 久久久久久久久久久福利观看 | 免费在线一区二区三区 | 亚洲国产精品美女 |