找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5645|回复: 0
收起左侧

单片机驱动ADC0809控制led仿真

[复制链接]
ID:137190 发表于 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系统仿真和程序.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. }
复制代码



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表