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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3718|回復: 0
收起左側

基于AT89C51單片機的ADC0809兩路數據采集代碼Proteus仿真

[復制鏈接]
ID:920091 發(fā)表于 2021-5-17 17:37 | 顯示全部樓層 |閱讀模式
調整電位器的阻值改變模擬輸入電壓

完成對ADC0809(模數轉換器)的兩個通道的輸入模擬量進行轉換,兩個通道的結果顯示各占3位,同時顯示在8位數碼管上(有效顯示位數為6位)。兩個通道的采集模擬輸入電壓的大小由兩個滑動電位器來調節(jié),后續(xù)也可以換成溫度傳感器,光線傳感器,紅外傳感器等各種傳感器,可構成測量不同變量的檢測電路。

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.png

單片機源程序如下:
  1. /******************************************************************************/

  2. #include <reg51.h>
  3. #define uchar unsigned char

  4. sbit dula=P2^0;
  5. sbit wela=P2^1;

  6. sbit CLK=P1^3;
  7. sbit ST=P1^2;
  8. sbit OE=P1^0;
  9. sbit EOC=P1^1;

  10. sbit wei1=P2^1;
  11. sbit wei2=P2^2;
  12. sbit wei3=P2^3;

  13. sbit wei4=P2^5;
  14. sbit wei5=P2^6;
  15. sbit wei6=P2^7;

  16. uchar code dulatab[]={0x3f,0x06,0x5b,0x4f,0x66,
  17.                                           0x6d,0x7d,0x07,0x7f,0x6f,0x40}; //數字編碼0-9
  18. uchar code welatab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//位控制字

  19. uchar count;

  20. void delay(uchar time)         //延時
  21. {
  22.         uchar i,j;
  23.         for(i=0;i<time;i++)
  24.         {
  25.                 for(j=0;j<110;j++)
  26.                 ;
  27.         }
  28. }

  29. /*********系統(tǒng)初始化***********/
  30. void init()
  31. {
  32. P2=0xff;
  33. EA = 1;                     //開總中斷
  34. TMOD = 0x02;                //設定定時器T0工作方式  
  35. TH0=216;                    //利用T0中斷產生CLK信號
  36. TL0=216;                                         //定時40us頻率25K
  37. TR0=1;                      //啟動定時器T0
  38. ET0=1;
  39. ST=0;
  40. OE=0;  
  41. P1=0x30;
  42. }

  43. void write1(uchar num)
  44. {

  45.         uchar i,j,k;
  46.         k=num/100;
  47.         j=num%100/10;
  48.         i=num%10;

  49.         P2=0xff;
  50.         P0=dulatab[k];
  51.         wei4=0;

  52.         delay(4);
  53.         
  54.         P2=0xff;
  55.         P0=dulatab[j];
  56.         wei5=0;

  57.         delay(4);
  58.         
  59.         P2=0xff;
  60.         P0=dulatab[i];
  61.         wei6=0;

  62.         delay(4);
  63. }

  64. void write0(uchar num)
  65. {
  66.         uchar i,j,k;
  67.         k=num/100;
  68.         j=num%100/10;
  69.         i=num%10;

  70.         P2=0xff;
  71.         P0=dulatab[k];
  72.         wei1=0;

  73.         delay(4);
  74.         
  75.         P2=0xff;
  76.         P0=dulatab[j];
  77.         wei2=0;

  78.         delay(4);
  79.         
  80.         P2=0xff;
  81.         P0=dulatab[i];
  82.         wei3=0;

  83.         delay(4);

  84. }
  85. uchar adin0()
  86. {
  87.         uchar value;
  88.         OE=0;
  89.         EOC=1;
  90.         ST=0;
  91.         P1&=0x8f;
  92.         P1|=0x30;
  93.         delay(10);
  94.         ST=1;
  95.         delay(10);
  96.         ST=0;
  97.         while(!EOC);
  98. //        EOC=0;
  99.         delay(10);
  100.         OE=1;
  101.         delay(1);
  102.         value=P3;
  103.         OE=0;
  104.         return value;
  105. }
  106. uchar adin1()
  107. {
  108.         uchar value;
  109.         OE=0;
  110.         EOC=1;
  111.         ST=0;
  112.         P1&=0x8f;
  113.         P1|=0x00;
  114.         delay(10);
  115.         ST=1;
  116.         delay(10);
  117.         ST=0;
  118.         while(!EOC);
  119. //        EOC=0;
  120.         delay(10);
  121.         OE=1;
  122.         delay(1);
  123.         value=P3;
  124.         OE=0;
  125.         return value;
  126. }
  127. void main()
  128. {
  129.         uchar in0,in1;
  130.         init();
  131.         while(1)
  132.         {
  133.                 in0=adin0();
  134.                 write0(in0);
  135.                 in1=adin1();
  136.                 write1(in1);
  137.         }               
  138. }


  139. void timer0(void) interrupt 1
  140. {
  141. CLK=~CLK;
  142. }
復制代碼

所有資料51hei提供下載:
基于AT89C51的兩路數據采集.zip (512.5 KB, 下載次數: 93)

評分

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

查看全部評分

回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

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