单片机AD转换程序 TLC2543
目前电子大赛在如火如荼的进行着,本人现在把自己在大学期间调试的一些东西贡献出来,希望能够帮到需要的人
谢谢!
完成功能:将TLC2543的通道0进行AD转换并以静态显示方式在LED上显示
使用不同的通道可以根据需要做相应用的修改即可
大家看的主要就是AD的子程序,显示和主程序只是为帮助清析脉络而写的。
**********************************************************/
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int

/*下面是引脚连接关系*/
sbit AD_EOC   =P2^4;   /*转换完成指示*/
sbit AD_IOCLK =P2^3;         /*时 钟*/
sbit AD_DATIN =P2^2;   /*数据入*/
sbit AD_DATOUT=P2^1;   /*数据出*/
sbit AD_CS    =P2^0;   /*片 选*/

sbit SCLK=P3^1;
sbit SDA=P3^0;
uint ad_result;    /*存各模拟通道的数据*/

/*启动A/D转换,并读取上次转换结果*/
uint read2543(CHN)
{
uchar i,temp;
uint read_ad_data = 0;
CHN=CHN<<4;
AD_IOCLK=0;
AD_CS=1;
AD_CS=0;
temp=CHN;
for(i=0;i<12;i++)
{
   read_ad_data=read_ad_data<<1;
   if((temp&0x80)!=0){AD_DATIN=1;}
   else{AD_DATIN=0;}
   if(AD_DATOUT){read_ad_data=read_ad_data+1;}
   AD_IOCLK =1;
   _nop_();_nop_();_nop_();_nop_();
   AD_IOCLK =0;
   _nop_();_nop_();_nop_();_nop_();
   temp=temp<<1;
}
AD_CS=1;
read_ad_data=read_ad_data&0x0fff;
return(read_ad_data);
}

/*显示用的时钟程序*/
void i_clock(void)
{
SCLK=0;
SCLK=1;
SCLK=0;
}

/************显示程序*************/
void led(void)
{uchar code LEDValue[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; //0-9
uchar data num[6];
uchar k,s,DAT;
num[0]=1;
num[1]=0;
num[2]=ad_result/1000;
num[3]=(ad_result-ad_result/1000*1000)/100;
num[4]=(ad_result-ad_result/100*100)/10;
num[5]=ad_result-ad_result/10*10;         //*0.0012;

for(k=0;k<=5;k++)
{
   DAT=LEDValue[num[5-k]];
   for(s=0;s<8;s++){
   SDA=(bit)(DAT&0x01);
   DAT>>=1;
   i_clock();
   }
}
}
/************延时程序*************/
void delay(del)
{
for(del;del>0;del--);
}
/*主 程序*/
void main(void)
{
delay(100);
ad_result=read2543(0); ///*启动0通道转换,第一次转换结果不准确,丢弃*/
do{
     while(!AD_EOC);            /*等待转换完成*/
     ad_result=read2543(0);///*读转换结果,并启动下次转换*/
   led();
delay(5000);
}while(1);
}

单片机AD转换程序 TLC2543相关推荐

  1. c语言编程TLC2543AD采集,51单片机驱动12位AD转换TLC2543电路图+程序

    51单片机驱动12位AD转换TLC2543电路图+程序 2015-06-18 16:51:15   来源:51hei void resultvolt() { volt=volt*5000.0/4334 ...

  2. c语言ad采样程序思路,单片机AD采样程序及其寄存器讲解

    描述 ad采样的步骤:首先将外部的信号,通过电路或者已有的AD芯片转换成 主CPU能接受的电压 信号.但是此电压信号必须转换成8.10 .12位或更高位数的数字才能进一步做计算.另外转换成位数多少表明 ...

  3. 单片机ad显示程序c语言,pic单片机ad转换c程序分享

    A/D转换器是用来通过一定的电路将模拟量转变为数字量.模拟量可以是电压.电流等电信号,也可以是压力.温度.湿度.位移.声音等非电信号.但在A/D转换前,输入到A/D转换器的输入信号必须经各种传感器把各 ...

  4. 单片机c语言ad与da转换实验报告,单片机AD与DA转换实验报告.docx

    单片机AD与DA转换实验报告.docx 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3 ...

  5. 51单片机AD转换pcf8591+数码管显示+Proteus仿真二

    51单片机AD转换pcf8591+数码管显示+Proteus仿真二

  6. 51单片机AD采集滑动变阻器电压并通过串口每秒发送一次电压

    51单片机AD采集电压通过串口每秒发送一次电压值 这个是题目要求,利用AD转换芯片ET2046每秒检测一次滑动变阻器电压,转换成ASCLL码后通过串口发送数据.同时加三个指示灯来显示现在的电压范围. ...

  7. ad采样做按键开关_【经验】如何使用模拟开关对单片机AD口进行扩展?

    很多产品研发工程师在设计电路的过程中都碰到过这样的问题,产品电路和软件都已经按要求设计完成,突然接到产品部的通知,客户要在产品中新增加几个功能,比如温度检测,湿度检测,位置检测.然而之前所选用的单片机 ...

  8. 12位串行AD转换器TLC2543与单片机的接口设计与编程

    第一次做光学仪器的小项目中的一部分是数据采集后经过模数转换,把采集到的电压用数字量输入到单片机中进行处理.此处总结下TLC2543的相关资料和与单片机接口方面的编程.主要的参考资料是TLC2543的d ...

  9. TQ2440 GPIO模拟SPI读取AD转换器TLC2543芯片

    其实接触CSDN好久了,一直没有想写自己的博客,遇到问题的时候才去上CSDN参考别人的资料,想到以后不能脚踩西瓜皮,滑倒哪里是哪里,要一个萝卜一个坑,用CSDN博客记录下自己的每一个脚印,一来自己以后 ...

最新文章

  1. Java系列 – 用Java8新特性进行Java开发太爽了(续)
  2. 和 杠精 聊Redis多线程 :(
  3. java-第十一章-类的无参方法-随机出一个商品规定次数猜对商品归用户所有
  4. FTPFileUtil_FTP文件上传 (spring boot)
  5. DirectX 向量点乘和叉乘
  6. python图像拼接过渡自然_python实现图像拼接功能
  7. C和指针之数组名和数组名和首元素以及sizeof(数组名)和sizeof(数组名作为参数)区别
  8. 【JS 逆向百例】网洛者反爬练习平台第二题:JJEncode 加密
  9. serverless 构建_使用Serverless,StepFunction和StackStorm Exchange构建社区注册应用程序-第2集...
  10. 电平转换电路_【电路】从电平角度理解数字电路
  11. python selenium 小知识点整理笔记(更新中...)
  12. canvas插件_HTML系列之-HTML5新元素之Canvas详解
  13. Objective-C的对象模型
  14. OpenCV 文字绘制——cv::putText详解
  15. JGit、SvnKit - 版本提交日志(1)提取
  16. 应届毕业生面试程序员自我介绍
  17. ubuntu中screen的使用
  18. SVN CentOS7 下配置svn的安装及基础配置介绍
  19. gpasswd命令简介
  20. Linux Centos装机全过程总结,小白入(持续更新中...)

热门文章

  1. MySQL之——mysqldump参数详细说明
  2. 音视频5.4——两个MP3混音合成一个MP3
  3. 单片机中断系统(部分以AT89S52为例)
  4. [渗透工具] - IP资产POC扫描、指纹扫描、端口爆破扫描系统
  5. 大数据分析步骤及分析方法详解
  6. java数组下标异常越界程序,Java程序运行时会自动检查数组的下标是否越界,如果越界,会抛出下面的哪一个异常?...
  7. 路由器与服务器延迟过高,路由器延迟高什么原因(图文)
  8. latex06-LaTeX中的特殊字符
  9. abaqus6.10离线版user‘smanual
  10. 解开硬盘逻辑死锁的一种有效方法 (转)