分享

单片机入门-C51实现用TLC549模数转换用数码管设计电压表解说

 昵称21467945 2018-12-14

单片机入门-C51实现用TLC549模数转换用数码管设计电压表视频教程如下:

视频教程

一、电路图如下:

单片机入门-C51实现用TLC549模数转换用数码管设计电压表解说

二、代码如下:

#include

#include

#define uchar unsigned char

#define uint unsigned int

unsigned char dispbuf[4];

sbit cs=P2^3;

sbit clock=P2^4;

sbit dataout=P2^2;

void disp(uchar*buff);

void delay(uchar time);

uchar i;

uchar code tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

uchar code BIT[4]={0x7f,0xbf,0xdf,0xef};

uchar tlc549()

{

uchar i,temp;

cs=1;

clock=0;

cs=0;

_nop_();

_nop_();

for(i=0;i<>

{

temp<>

temp|=dataout;

clock=1;

_nop_();

clock=0;

}

cs=1;

for(i=17;i>0;i--)

{

_nop_();

}

return temp;

}

void main()

{

uchar vol;

disp(dispbuf);

while(1)

{

vol=tlc549();

vol=vol*1.0/255*500;

dispbuf[3]=vol/100;

dispbuf[2]=vol/10%10;

dispbuf[1]=vol%10;

disp(dispbuf);

}

}

void disp(uchar*buff)

{

uchar ddata;

for(i=0;i<>

{

P0=BIT[i];

ddata=*buff++;

if(i==3)

{

P1=tab[ddata]|0x80;

}

else

{

P1=tab[ddata];

}

delay(100);

}

}

void delay(uchar time)

{

uchar i;

for(i=time;i>0;i--);

}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约