AT89C52实现的DA输出

来源:互联网 发布:同性恋软件 blued下载 编辑:程序博客网 时间:2024/05/01 21:43

AT89C52控制DAC0808实现的DA输出

下面是其Proteus实现图:



AT89C52实现的DA输出

下面是其C51代码:

#include<reg52.h>

int d1,d2,d3,d4;
float d;
intdis[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

void init()
{
 P3=0xfe;  //使P3 输出高电平
 P1=dis[0];    //初始化,使其输出全 O
 P2=0x00;

   ET0=0;  // 禁用T0中断
 ET1=0;  //禁用T1中断
 EX0=0; //禁止外0中断
 EX1=0; //禁止外1中断

   EA=0;   // 中断禁止
}

void Delay5()  //延时5ms 
{
 int i;
 for(i=5;i>0;i--)
 ;
}

void Display()
   
  P2=0xff;    //显示第一位
  P1=dis[d1]|0x80;
  P2=0x0e;

  Delay5();    //显示第二位
  P2=0xff;
  P1=dis[d2];
  P2=0x0d;

  Delay5();    //显示第三位
  P2=0xff;
  P1=dis[d3];
  P2=0x0b;

  Delay5();    //显示第四位
  P2=0xff;
  P1=dis[d4];
  P2=0x07;

  Delay5();
}

void main()
{
 int i,j,k;

 init();

 for(i=0;i<=255;i++)
 {
  P0=i;
  d=((1.99/255))*i;
  d1=(int)d;
  d2=(int)(d*10);
  d3=(int)(d*100);
  d4=(int)(d*1000);
  for(j=200;j>0;j--)
  {
   for(k=20;k>0;k--)
   {
    P0=i;
    Display();
   }
  }
 

}

原创粉丝点击