×
嵌入式开发 > 详情

TLC549模数转换C51程序

发布时间:2020-07-01 发布时间:
|
/*******************************************程序功能:将采集的模拟量数据转换为数字量数据, 并在P2口的流水灯上体现出来。涉及芯片:TLC549         ********************************************/
#includereg52.h>
#define uint unsigned int
#define uchar unsigned charsbit clock=P3^3;//时钟线
sbit dout=P3^4;//数据输出端
sbit cs=P3^5;//片选(低电平有效)
void delay(uint t){   while(t--);}uchar read_549()//数据得采集
{uint i;uchar k=0x00;//定义一个变量k,将在dout上采集的到的数据装进Kdout=1;//该地方置不置高电平都可以,应为单片机的I/O口默认值为高点平
for(i=0;i8;i++){if(dout){k++;}k=k1;clock=1;//高电平期间采集dout线上的数据
clock=0;delay(10);}return k;//返回值
}uchar shuchu_549()//数据得读取
{uchar date;cs=0;//片选低电平时数据有效
date=read_549();//将read_549()函数中采集到的数据付给变量
datecs=1;//片选拉高,表示数据读取完毕
delay(50);return date;//返回值
}void main(){while(1){P2=shuchu_549(); }}/**********************************************详细分析TLC549芯片时序图:1、串行数据A7位先输出(即最高位)A0位最后输出。2、在每一次I/O clock的高电平期间DATA OUT线就产生有效输出,每出现一次I/O clock信号并对8个字节数据输出。一个周期出现8次 I/Oclock信号并对8个字节输出。3、在CS变为低电平后,最高位自动置于DATA OUT总线上。其余7位(A6~A0)在7个I/O clock下降沿由时钟同步输出。B7~B0以同样的方式跟在其后。4、在片选CS变为低电平后1.4微秒I/O clock才允许跳变。5、在片选CS变为低电平后到数据线DATA OUT线上输出数据的时间间隔为1.2微秒;6、只要I/O CLOCK变高就可以读取DATA OUT线上的数据。**********************************************/


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
现场总线系统的功能安全评价