单片机数据采集、处理及显示程序设计

单片机数据采集、处理及显示程序设计

ID:14443159

大小:147.50 KB

页数:9页

时间:2018-07-28

单片机数据采集、处理及显示程序设计_第1页
单片机数据采集、处理及显示程序设计_第2页
单片机数据采集、处理及显示程序设计_第3页
单片机数据采集、处理及显示程序设计_第4页
单片机数据采集、处理及显示程序设计_第5页
资源描述:

《单片机数据采集、处理及显示程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、单片机数据采集、处理及显示程序设计一.总体设计方案:LED初始显示为0,采用查询的方式进行键盘扫描,以确定是否有输入,不停地扫描直到有输入为止:输入为1时,按键无效,继续扫描直到再次有输入,输入为0时,则开始进行数据的采集;采集一个周期,将采集后的数据进行滤波,再求出0、1/2Vmax、Vmax,送到LED显示,结束后进行键盘扫描,确定是否有按键1输入,有则停止,无则继续进行数据采集,如此循环。二.硬件逻辑图:1.下图为硬件逻辑图:2.单片机及各外设参数选择:A.单片机为8031/8051;B.采用外部时钟,振荡频率为12MHz,则机器周期为1us;C.由于本

2、实验只需0、1两个按键就能实现控制(0实现启动,1实现关闭),所以采用简单的1×2非编码键盘;D.由于已知输入信号为幅值5V的正弦信号,并要求A/D转换的误差小于0.02V,因此,选用ADC0809,其能处理的信号为0—5V,不需要进行信号放大;其分辨率为8位,转换的误差为0.0196V,能满足要求;其转换时间大约为100us;E.为了保证转换精度,在信号源与ADC之间还需加一S/H,采用LF398,保持电容选择为1000PF;F.由于要显示3个数据,且小数点后保留两位有效数据,所以需要3×4=12个LED,本实验选用7段LED;且从左到右,依次显示0、1/2

3、Vmax、Vmax;G.由于要求利用串行口扩展接口来显示数据,所以需连接一寄存器,本实验采用串行输入、并行输出的移位寄存器:74LS164。三.软件编写:1.流程图如下:本实验采用查询的方式来实现键盘的控制;在采集的过程中由于可能会有随机干扰,信号本身会在某一数值范围附近上下波动,所以采用算术平均滤波的方式进行滤波;由于输入信号最大频率为0.2Hz,选择采样周期为2Hz,即采样周期为500ms。键0YNN键1Y键0键1YNYNLED初始显示为0是否有按键?延时10ms去抖仍有按键?键0?键1?启动ADC数据采集一个周期算术平均值滤波计算采集到的数值的最小值、中

4、间值及最大值显示在LED上是否仍有按键?键0?键1?是否有按键?延时10ms去抖1.采用汇编进行编程,具体的代码及其说明如下:ORG0000HLJMPSTARTORG0300HSTART:ACALLDSP1;初始化显示0.00、0.00、0.00SCAN:ACALLKEXAM;判断是否有按键JNZSCAN;没按键就继续SCANACALLD10ms;去抖ACALLKEXAMJNZSCANKEY:SETBP1.1;检查键值SETBP1.3CLRP1.2MOVA,P1ANLA,#02HCJNEA,#02H,SCAN;按键为1则返回继续查询是否有按键;按键为0,进入到

5、数据采集、转换及显示ADC:MOVR1,#40HMOVDPTR,#07FF8HMOVR2,#10;一个周期采集10个点L9:MOVR0,#30HMOVR3,#4L10:MOVA,#0SETBP1.4;S/H保持MOVX@DPTR,A;启动ADCJNBP3.3$;转换结束CLRP1.4;S/H采样MOVXA,@DPTRMOV@R0,AINCR0ACALLD5msDJNZR3,L10ACALLFilter;滤波INCR1ACALLD500msDJNZR2,L9ACALLORDER;计算要显示的值:最小值、最大值及中间值ACALLDSP2;显示值;查询按键ACALL

6、KEXAMJNZADCACALLD10msACALLKEXAMJNZADCSETBP1.1SETBP1.3CLRP1.2MOVA,P1ANLA,#02HCJNEA,#02H,START;按键为1则返回开始,并显示0AJMPADC;下面为子程序:;判断是否有按键KEXAM:SETBP1.1CLRP1.2CLRP1.3MOVA,P1ANLA,#02H;00000010RET;初始化显示0.00、0.00、0.00DSP1:MOVR0,#30HMOVR1,#40HMOVR2,#3L0:MOVR1,#0ACALLCHANGE0;将R1中的值转换为有物理意义的值,存入4

7、个R0中ACALLCHANGE1;将4个R0中的值转化为能显示的数模ACALLDPLED;显示4个R0中的值INCR1DJNZR2,L0RET;输出显示一个LEDDPLED:MOVR0,#30HMOVR4,#4L1:MOVR3,#8MOVA,@R0L2:RLCAMOVP3.0,CCLRP3.1SETBP3.1DJNZR3,L2INCR0DJNZR4,L1RET;将R0中要显示的转换为字模,然后覆盖R0CHANGE1:MOVR0,#30HMOVR4,#4L3:PUSHACCMOVDPTR,#TABLEMOVA,@R0MOVA,@A+DPTRMOV@R0,AINC

8、R0DJNZR4,L3RET;标度变换

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。