標(biāo)題: 51單片機(jī)測(cè)量電壓及電流,ADC0809,asc712 [打印本頁(yè)]

作者: songkdksljf    時(shí)間: 2021-1-7 14:46
標(biāo)題: 51單片機(jī)測(cè)量電壓及電流,ADC0809,asc712
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機(jī)源程序如下:
  1. #include <reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. uchar code table[]={ ~0x3F,/*0*/
  5.         ~0x06,/*1*/
  6.         ~0x5B,/*2*/
  7.         ~0x4F,/*3*/
  8.         ~0x66,/*4*/
  9.         ~0x6D,/*5*/
  10.         ~0x7D,/*6*/
  11.         ~0x07,/*7*/
  12.         ~0x7F,/*8*/
  13.        ~0x6F,/*9*/
  14. };
  15. uchar Tcount;
  16. uint wei3,wei2,wei1,wei0,num,wei4,wei5,wei6,wei7;
  17. bit timerflag,ADflag;
  18. sbit AD_end        =P3^2;
  19. sbit OE=P3^3;
  20. sbit ST=P3^4;
  21. sbit channel=P3^5;
  22. void AD_INT() interrupt 0
  23. {ADflag=1;
  24. AD_end=1;
  25. }
  26. void T0_int()interrupt 1
  27. {TL0|=0xb0;
  28. TH0=0x3c;
  29.    if(--Tcount==0)
  30.      {Tcount=20;
  31.       timerflag=1;}
  32.                   
  33. }
  34. void delay(uint z)
  35. {uint x,y;
  36. for(x=z;x>0;x--)
  37.     for(y=110;y>0;y--);
  38. }
  39. void main()
  40. {
  41. channel = 0;
  42. Tcount=20;
  43. TMOD=0x01;
  44. TL0=0xb0;
  45. TH0=0x3c;
  46. IT0=1;
  47. TR0=1;
  48. ET0=1;
  49. EX0=1;
  50. EA=1;

  51. while(1)
  52. {
  53.                         

  54.   if(timerflag==1)
  55.     {timerflag=0;
  56.      ADflag=0;
  57.      ST=1;
  58.            ST=0;
  59.         
  60.       while(!ADflag);
  61.          {
  62.                                         if(channel == 0)
  63.                                         {
  64.                                                 OE=1;
  65.                                                 num=P2*20-2500;                                       
  66.                                                 wei0=num/1000;
  67.                                                 wei1=num%1000/100;
  68.                                                 wei2=num%100/10;
  69.                                                 wei3=num%10;
  70.                                         }
  71.                                         else
  72.                                         {
  73.                                                 OE=1;
  74.                                                 num=P2*20/100*51;                                       
  75.                                                 wei4=num/1000;
  76.                                                 wei5=num%1000/100;
  77.                                                 wei6=num%100/10;
  78.                                                 wei7=num%10;                                
  79.                                         }

  80.           OE=0;
  81.           ADflag=0;
  82.                                         channel = ~channel;
  83.                                  }
  84.     }
  85.         
  86.                         //顯示電流
  87.         P1=0x01;
  88.   P0=table[wei0];
  89.   delay(1);
  90.   P1=0x02;
  91.   P0=table[wei1]&0X7F;
  92.   delay(1);
  93.   P1=        0X04;        
  94.   P0=table[wei2];
  95.   delay(1);
  96. //  P1=0x08;
  97. //  P0=table[wei3];
  98. //  delay(1);               
  99.                
  100.         //顯示電壓        
  101.         P1=0x10;
  102.   P0=table[wei4];
  103.   delay(1);
  104.   P1=0x20;
  105.   P0=table[wei5];
  106.   delay(1);
  107.   P1=0x40;
  108.   P0=table[wei6]&0x7f;
  109.   delay(1);
  110.   P1=0x80;
  111.   P0=table[wei7];
  112.   delay(1);
  113. }
  114. }

  115.   

復(fù)制代碼

全部資料51hei下載地址:
電流 (2).zip (97.16 KB, 下載次數(shù): 99)

作者: wjcxy3166    時(shí)間: 2021-2-1 11:17
好東西,是需要的東西,謝了!
作者: ChaiLang    時(shí)間: 2021-4-19 21:32
我想請(qǐng)問(wèn)一下怎么測(cè)量?jī)牲c(diǎn)之間的電壓,因?yàn)橛媚碾娐访菜浦荒軠y(cè)出電位。求賜教。
作者: 13934758304    時(shí)間: 2021-5-15 15:24
謝大哥,不錯(cuò)的好東西





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1