欢迎来到天天文库
浏览记录
ID:9938250
大小:134.50 KB
页数:14页
时间:2018-05-16
《数据采集及显示系统设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、题目:数据采集及显示系统设计设计基本功能:利用TLC549做A/D转换器,外界提供模拟电压输入信号,将模拟量转化成数字量,在单片机控制下实现对外部输入信号的数据采集,并将采集数据结果在LED数码管上显示,显示结果为实际输入电压数值。要求能够实现单次触发存储显示方式,即每按动一次“单次触发”键,能对被测信号进行一次采集与显示。系统在不采集信号时,显示当前时间。硬件设计本方案分为三个模块:单片机模块、AD模块、I2C模块,其中I2C模块有时钟、键盘和LED三部分组成。1、单片机模块该模块设计实现单片机最小系统和与其他模块的接口。电路图见图一。图一2、AD模块该模块是TLC549的电路连接。见图二。
2、图二TLC5491、I2C模块本模块是由时钟芯片PCF8563和由ZLG7290连接的键盘、6位LED组成。实现时钟设置、读取,键盘识别,以及显示功能。电路连接见图三、四。图三ZLG7290图四PCF8563软件设计1、流程图见图五。按下2键按一下3键按两下3键按两下2键按下5键按下1键再次按1键第一次按下1键开始时钟、键盘初始化显示年月日扫描键盘AD采样显示结果扫描键盘显示时间扫描键盘时位闪烁按4键加1年份闪烁按4键加1月份闪烁按4键加1分位闪烁按4键加1日闪烁按4键加1按三下2键图五流程图2程序#include#include#include3、acc.h>#include"VIIC_C51.h"#include"ZLG7290.h"#definePCF85630xA2//定义器件地址#defineWRADDR0x00//定义写单元首地址#defineRDADDR0x02//定义读单元首地址#defineucharunsignedchar#defineuintunsignedint#defineulongunsignedlong#defineZLG72900x70//定义器件地址//定义TLC549串行总线操作端口sbitCLK=P1^0;sbitDAT=P1^1;sbitCS=P1^2;//定义I2C总线控制端口sbitSDA=P14、^7;sbitSCL=P1^6;//显示缓冲区初始化:DP-51PROunsignedchardisp_buf[8]={0,0,0,0,0,0,0,0};//显示缓存ucharbdataADCdata;sbitADbit=ADCdata^0;sbitKEY_INT=P3^2;sbitRST=P1^0;unsignedcharKEY;//保存键值/*****************************************************函数名称:TLC549ADC()**函数功能:读取上一次A/D转换的数据,启动下一次A/D转换**************************5、**************************/ucharTLC549ADC(void){uchari;CLK=0;DAT=1;CS=0;for(i=0;i<8;i++){CLK=1;_nop_();_nop_();ADCdata<<=1;ADbit=DAT;CLK=0;_nop_();}return(ADCdata);}/******************************************函数名称:delay()**函数功能:硬件延时程序**入口参数:i****************************************/unsignedcharDelayN6、S(unsignedcharno){unsignedchari,j;//延时参数for(;no>0;no--)for(i=0;i<100;i++)for(j=0;j<100;j++);return0;}/*A/D数据转换处理和输出显示功能函数*//*********************************************函数名称:display()**函数功能:处理A/D转换后的数据并输出显示********************************************/voiddisplay(ucharadvalue){ulongad_disp;ad_disp=((7、ulong)advalue)*500/255;disp_buf[2]=(uchar)(ad_disp/100%10)+0x80;disp_buf[1]=(uchar)(ad_disp/10%10);disp_buf[0]=(uchar)(ad_disp/1%10);disp_buf[3]=31;disp_buf[4]=31;disp_buf[5]=31;disp_buf[6]=31;disp_bu
3、acc.h>#include"VIIC_C51.h"#include"ZLG7290.h"#definePCF85630xA2//定义器件地址#defineWRADDR0x00//定义写单元首地址#defineRDADDR0x02//定义读单元首地址#defineucharunsignedchar#defineuintunsignedint#defineulongunsignedlong#defineZLG72900x70//定义器件地址//定义TLC549串行总线操作端口sbitCLK=P1^0;sbitDAT=P1^1;sbitCS=P1^2;//定义I2C总线控制端口sbitSDA=P1
4、^7;sbitSCL=P1^6;//显示缓冲区初始化:DP-51PROunsignedchardisp_buf[8]={0,0,0,0,0,0,0,0};//显示缓存ucharbdataADCdata;sbitADbit=ADCdata^0;sbitKEY_INT=P3^2;sbitRST=P1^0;unsignedcharKEY;//保存键值/*****************************************************函数名称:TLC549ADC()**函数功能:读取上一次A/D转换的数据,启动下一次A/D转换**************************
5、**************************/ucharTLC549ADC(void){uchari;CLK=0;DAT=1;CS=0;for(i=0;i<8;i++){CLK=1;_nop_();_nop_();ADCdata<<=1;ADbit=DAT;CLK=0;_nop_();}return(ADCdata);}/******************************************函数名称:delay()**函数功能:硬件延时程序**入口参数:i****************************************/unsignedcharDelayN
6、S(unsignedcharno){unsignedchari,j;//延时参数for(;no>0;no--)for(i=0;i<100;i++)for(j=0;j<100;j++);return0;}/*A/D数据转换处理和输出显示功能函数*//*********************************************函数名称:display()**函数功能:处理A/D转换后的数据并输出显示********************************************/voiddisplay(ucharadvalue){ulongad_disp;ad_disp=((
7、ulong)advalue)*500/255;disp_buf[2]=(uchar)(ad_disp/100%10)+0x80;disp_buf[1]=(uchar)(ad_disp/10%10);disp_buf[0]=(uchar)(ad_disp/1%10);disp_buf[3]=31;disp_buf[4]=31;disp_buf[5]=31;disp_buf[6]=31;disp_bu
此文档下载收益归作者所有