找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機驅動ADC0809控制led仿真

[復制鏈接]
ID:137190 發(fā)表于 2016-9-26 13:25 | 顯示全部樓層 |閱讀模式
用AT89C51接ADC0809并編一個程序:分別給ADC0809的兩個輸入口分別輸入0~5V的電壓,在C51的四個輸出口對應輸出高低電平。要求如下:
       用IN0控制led1和led2,用IN1控制led3和led4。當通道1的輸入端的電壓小于2V時,led1亮led2滅;當通道1的輸入端的電壓大于3V時,led1滅led2亮。當通道0的輸入端電壓小于2V時led3亮led4滅;當通道0的輸入端電壓大于3V時led3滅led4亮。


0.png 所有資料下載:
0809系統(tǒng)仿真和程序.zip (1.62 MB, 下載次數: 28)

下面是程序源碼:
  1. /***************   writer:shopping.w   ******************/
  2. #include <reg52.h>
  3. #define uint unsigned int
  4. #define uchar unsigned char


  5. sbit OE  = P2^2;
  6. sbit EOC = P2^1;
  7. sbit ST  = P2^0;
  8. uchar CLK;
  9. sbit A1=P0^0;
  10. sbit A2=P0^1;
  11. sbit A3=P0^2;
  12. sbit A4=P0^3;
  13. uint a,b;
  14. void delayMS(uchar ms)
  15. {
  16.         uchar a;
  17.         while(ms--)
  18.         for(a=0;a<120;a--);       
  19. }
  20. void main()
  21. {   TMOD = 0x02;
  22.         TH0 = 0x14;
  23.         TL0 = 0x00;
  24.         IE  = 0x82;
  25.         TR0 =1;       
  26.         while(1)
  27.         {
  28.                 ST=1;
  29.                    P2=0x03;///***************選0通道
  30.                  ST = 0;
  31.                 ST = 1;       
  32.                 ST = 0;
  33.                 delayMS(2);
  34.             while(!EOC);
  35.                    OE  = 1;
  36.                 a=P1;//***********p1給數組
  37.                 delayMS(2);
  38.                 OE  = 0;
  39.             delayMS(200);
  40.                 ST=1;
  41.                 P2=0x13;//******選通道
  42.                 ST = 0;
  43.                 ST = 1;       
  44.                 ST = 0;
  45.                 delayMS(2);
  46.             while(!EOC);
  47.                    OE  = 1;
  48.                 b=P1;//*************p1給數組
  49.                
  50.                 delayMS(2);
  51.                 OE  = 0;
  52.                 delayMS(200);
  53.         if(a<0x66)
  54.                 {
  55.                 if(b<0x66)
  56.                 {
  57.                 P3=0x05;
  58.                 delayMS(200);
  59.                 break;
  60.                 }
  61.                 if(b>0x99)
  62.                 {
  63.                 P3=0x06;
  64.                 delayMS(200);
  65.                 break;
  66.                 }
  67.                 if((b>=0x66)&(b<=0x99))
  68.                 {
  69.                 P3=0x07;
  70.                 delayMS(200);
  71.                 break;
  72.                 }
  73.                 break;

  74.                 }
  75.         if(a>0x99)
  76.            {
  77.                 if(b<0x66)
  78.                 {
  79.                 P3=0x09;
  80.                 delayMS(200);
  81.                 break;
  82.                 }
  83.                 if(b>0x99)
  84.                 {
  85.                 P3=0x0a;
  86.                 delayMS(200);
  87.                 break;
  88.                 }
  89.                 if((b>=0x66)&(b<=0x99))
  90.                 {
  91.                 P3=0x0b;
  92.                 delayMS(200);
  93.                 break;
  94.                 }
  95.                 break;
  96.                 }
  97.         if((a>=0x66)&(a<=0x99))
  98.         {
  99.                 if(b<0x66)
  100.                 {
  101.                 P3=0x0d;
  102.                 delayMS(200);
  103.                 break;
  104.                 }
  105.                 if(b>0x99)
  106.                 {
  107.                 P3=0x0e;
  108.                 delayMS(200);
  109.                 break;
  110.                 }
  111.                 if((b>=0x66)&(b<=0x99))
  112.                 {
  113.                 P3=0x0f;
  114.                 delayMS(200);
  115.                 break;
  116.                 }
  117.                 break;
  118.                 }
  119.         }
  120. }
  121. void Timer0_INT() interrupt 1
  122. {
  123.         CLK = !CLK;
  124. }
復制代碼



回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

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