基于C语言的89C51与TLC2543AD转换器的驱动程序设计.docVIP

基于C语言的89C51与TLC2543AD转换器的驱动程序设计.doc

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于C语言的89C51与TLC2543AD转换器的驱动程序设计

评阅成绩 电子信息技术综合实训报告 竞赛题名称:基于C语言的89C51与TLC2543AD转换器的驱动程序的设计 队员名称: 评阅人签名: 2012年9月15日 1、设计思路描述: 设计思路: 硬件部分基于80C51单片机和TLC2543组成多路数据采集系统,采用89C51作为控制部件,控制数据的采集、显示、传输,它是整个系统的核心。由TLC2543作为此数据采集系统的A/D转换芯片,进行模数转换得到模拟信号测量值,它使用开关电容逐次逼近技术完成A/D转换过程由于是串行输入结构,能够节省51系列单片机的I/O资源。硬件设计的主要任务是TLC2543和单片机的接口电路设计,输入信号的调理电路设计。 软件部分主要涉及A/D转换程序的编写,1602LCD驱动的编写,从TLC2543所接收数据的处理等。 原理框图:见图1。 图1 模数转换系统框图 2、硬件电路图: 由ProteusEDA工具软件所绘制原理图,见图2。 图2 模数转换系统原理图 3、算法数学描述: 算法1: for(i=0;i6;i++) { ad_result=AD_Conver(0); sum+=ad_result; } ad=sum*5.0/4096/6; 说明:对TLC2543的返回值ad_result进行求和,然后取平均数。 算法2: num[0]=ad_result/10000+0; num[2]=ad_result%10000/1000+0; num[3]=ad_result%1000/100+0; num[4]=ad_result%100/10+0; num[5]=ad_result%10+0; 说明:分别求出LCD显示数值各位的数值。 4、软件流程图: 1602LCD程序流程图,见图3。 图3 1602LCD程序流程图 主程序流程图,见图4。 图4 主程序流程图 5、测试方法描述:(含模块与系统测试方法) 由探针对模拟信号输入端口进行电压测量,数值为2.71192V,见图5。 图5 对模拟信号采样并处理,得模拟信号输入端口电压测量值为2.7111V,见图6。 图6 6、测试数据: 滑动滑动变阻器改变模拟输入端口电压,共测得数据5组数据,见表1。 探针测量值(V) 2.7119 2.4265 2.1410 1.8556 1.5703 LCD示值(V) 2.7111 2.4255 2.1398 1.8554 1.5698 表1 7、数据分析与结论: 测试数据分析: ∆x1=0.0008 ∆x2=0.0001 ∆x3=0.0012 (舍去) ∆x4=0.0002 ∆x5=0.0005 误差平均值:∆x1+∆x2+∆x4+∆x5=0.0008 结论:由以上计算结果可知,该系统误差较小,能满足日常所需的测量精度要求,同时反映出TLC2543模数转换芯片具有误差小,分辨率较高,因此在仪器仪表中有较为广泛的应用。 附件一:程序源代码 #includereg51.h #includeintrins.h #define uchar unsigned char #define uint unsigned int sbit RS=P3^5; sbit RW=P3^6; sbit E=P3^4; sbit BF=P0^7; //1602忙碌标志位 void delay1ms() {uchar i,j; for(i=0;i10;i++) for(j=0;j33;j++) ; } void delay(uchar n) //延时n毫秒 {uchar i; for(i=0;in;i++) delay1ms();} unsigned char BusyTest(void) //result=1为忙碌;result=0为不忙碌 {bit result; RS=0; RW=1; //高电平进行读操作 E=1; //E=1,才允许读写 _nop_(); _nop_(); _nop_(); _nop_(); result=BF; E=0; return result;} void WriteInstruction (uchar dictate) //写指令 { while(BusyTest()==1); RS=0; //R

文档评论(0)

f8r9t5c + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档