⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tlc549_c.c

📁 用51单片机实现的串行AD和DA的源程序
💻 C
字号:
#include<reg51.h>
unsigned char d[4],n;
unsigned char code tab[11]={0x3f,6,0x5b,0x4f,
                   0x66,0x6d,0x7d,7,0x7f,0x6f,0};
unsigned char code digit[4]={0xf8,0xf4,0xf2,0xf1};
sbit adcs=0x96;
sbit adclk=0x95;
sbit addata=0x94;

unsigned char bdata adc;
    sbit  adclow=adc^0;

unsigned char adconvert()
{   unsigned char i;
    adcs=1;
    adcs=0;
    adclk=0;
    for(i=0;i<8;i++)
    {   adclk=1;
        adclow=addata;
        adclk=0;
        if(i<7) adc=adc<<1;
    }
    adclk=0;
    adcs=1;
    return(adc);
}

vtobcd(unsigned int hexs)
{       unsigned int va;
        unsigned char ii;
        va=10000;
        d[0]=10;
        for(ii=1;ii<4;ii++)
        {    d[ii]=hexs/va;
             hexs=hexs % va;
             va=va/10;
        }
        
}

void delay(unsigned char dy)
{
   while(--dy);
}

timer() interrupt 1 using 1
{
    TH0=(65536-1000)/256;
    TL0=(65536-1000)%256;
    n=n++;
    if(n>3) n=0;
    P0=0;
    P2=digit[n];
    P0=tab[d[n]]; 
    if(n==0)P0=tab[d[n]]+0x80;
     
 }


   
main()
{    unsigned char ad,j;
     unsigned int k,v;
     TMOD=0X21;
     TR0=1;
     ET0=1;
     EA=1;
     n=0;
     k=193;
  while(1)
     {
      ad=adconvert();
      
      v=ad*k;
      vtobcd(v);
      for(j=0;j<200;j++)  delay(250);
     }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -