基于80c51单片机的数据采集及显示系统设计.doc

基于80c51单片机的数据采集及显示系统设计.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
题目:数据采集及显示系统设计 设计基本功能: 利用TLC549做A/D转换器,外界提供模拟电压输入信号,将模拟量转化成数字量,在单片机控制下实现对外部输入信号的数据采集,并将采集数据结果在LED数码管上显示,显示结果为实际输入电压数值。 要求能够实现单次触发存储显示方式,即每按动一次“单次触发”键,能对被测信号进行一次采集与显示。系统在不采集信号时,显示当前时间。 硬件设计 本方案分为三个模块:单片机模块、AD模块、I2C模块,其中I2C模块有时钟、键盘和LED三部分组成。 单片机模块 该模块设计实现单片机最小系统和与其他模块的接口。电路图见图一。 图一 AD模块 该模块是TLC549的电路连接。见图二。 图二 TLC549 I2C模块 本模块是由时钟芯片PCF8563和由ZLG7290连接的键盘、6位LED组成。实现时钟设置、读取,键盘识别,以及显示功能。电路连接见图三、四。 图三 ZLG7290 图四 PCF8563 软件设计 1、流程图见图五。 图五 流程图 2程序 #include REG51.h #include intrins.h #include absacc.h #include VIIC_C51.h #include ZLG7290.h #define PCF8563 0xA2 //定义器件地址 #define WRADDR 0x00 //定义写单元首地址 #define RDADDR 0x02 //定义读单元首地址 #define uchar unsigned char #define uint unsigned int #define ulong unsigned long #define ZLG7290 0x70 //定义器件地址 //定义TLC549串行总线操作端口 sbit CLK=P1^0; sbit DAT=P1^1; sbit CS=P1^2; //定义I2C总线控制端口 sbit SDA=P1^7; sbit SCL=P1^6; //显示缓冲区初始化:DP-51PRO unsigned char disp_buf[8]={0,0,0,0,0,0,0,0};//显示缓存 uchar bdata ADCdata; sbit ADbit=ADCdata^0; sbit KEY_INT=P3^2; sbit RST=P1^0; unsigned char KEY; //保存键值 /*************************************************** **函数名称: TLC549ADC() **函数功能: 读取上一次A/D转换的数据,启动下一次A/D转换 ****************************************************/ uchar TLC549ADC(void) { uchar i; CLK=0; DAT=1; CS=0; for(i=0;i8;i++) { CLK=1; _nop_(); _nop_(); ADCdata=1; ADbit=DAT; CLK=0; _nop_(); } return (ADCdata); } /**************************************** **函数名称: delay() **函数功能: 硬件延时程序 **入口参数: i ****************************************/ unsigned char DelayNS(unsigned char no) { unsigned char i,j; //延时参数 for(; no0; no--) for(i=0; i100; i++) for(j=0; j100; j++); return 0; } /*A/D数据转换处理和输出显示功能函数*/ /******************************************* **函数名称: display() **函数功能: 处理A/D转换后的数据并输出显示 ********************************************/ void display(uchar advalue) { ulong ad_disp; ad_disp=((ulong)advalue)*500/255; disp_buf[2] =(uchar)(ad_disp/100%10)+0x80; disp_buf[1] =(uchar)(ad_disp/10%10);

文档评论(0)

14576 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档