找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3599|回復(fù): 1
收起左側(cè)

adc0809測(cè)量0到5v電壓的單片機(jī)源碼與仿真

[復(fù)制鏈接]
ID:313824 發(fā)表于 2018-4-22 16:32 | 顯示全部樓層 |閱讀模式
adc0809芯片測(cè)量0到5v仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)

0.jpg

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

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

  61. TH0=(65536-2)/256;          //重裝計(jì)數(shù)初值
  62. TL0=(65536-2)%256;          //重裝計(jì)數(shù)初值
  63. CLK=!CLK;                          //取反
  64. }

  65. /*************************************************************************
  66.                                 主函數(shù)       
  67. **************************************************************************/
  68. void main()
  69. {
  70. TMOD=0X01;                          //定時(shí)器中斷0

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

所有資料51hei提供下載:
ad0809.zip (305.89 KB, 下載次數(shù): 52)


回復(fù)

使用道具 舉報(bào)

ID:323423 發(fā)表于 2018-5-7 15:04 | 顯示全部樓層
樓主,幫了我大忙了,太感謝了。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表