没有合适的资源?快使用搜索试试~ 我知道了~
单片机数据采集处理及显示程序设计.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 63 浏览量
2022-07-13
08:30:13
上传
评论
收藏 47KB DOC 举报
温馨提示
试读
16页
单片机数据采集处理及显示程序设计.doc
资源推荐
资源详情
资源评论
第 1 页
单片机数据采集、处理及显示程序设计
一.总体设计方案:
LED 初始显示为 0,采用查询的方式进行键盘扫描,以确
定是否有输入,不停地扫描直到有输入为止:输入为 1 时,按
键无效,继续扫描直到再次有输入,输入为 0 时,则开始进行
数据的采集;采集一个周期,将采集后的数据进行滤波,再求
出 0、1/2Vmax、Vmax,送到 LED 显示,结束后进行键盘扫描,
确定是否有按键 1 输入,有则停止,无则继续进行数据采集,
如此循环。
二.硬件逻辑图:
1. 下图为硬件逻辑图:
2. 单片机及各外设参数选择:
A. 单片机为 8031/8051;
B. 采用外部时钟,振荡频率为 12MHz,则机器周期为 1us;
C. 由于本实验只需 0、1 两个按键就能实现控制(0 实现启动,
1 实现关闭),所以采用简单的 1×2 非编码键盘;
D.由于已知输入信号为幅值 5V 的正弦信号,并要求 A/D 转换
的误差小于 0.02V,因此,选用 ADC0809,其能处理的信号
为 0—5V,不需要进行信号放大;其分辨率为 8 位,转换
的误 差为 0.0196V, 能满足 要求; 其转 换时间 大约 为
100us;
E. 为了保证转换精度,在信号源及 ADC 之间还需加一 S/H,
第 2 页
采用 LF398,保持电容选择为 1000PF;
F. 由于要显示 3 个数据,且小数点后保留两位有效数据,所
以需要 3×4=12 个 LED,本实验选用 7 段 LED;且从左到右,
依次显示 0、1/2Vmax、Vmax;
G.由于要求利用串行口扩展接口来显示数据,所以需连接一
寄存器,本实验采用串行输入、并行输出的移位寄存器:
74LS164。
三.软件编写:
1. 流程图如下:
本实验采用查询的方式来实现键盘的控制;在采集的过程
中由于可能会有随机干扰,信号本身会在某一数值范围附近上
下波动,所以采用算术平均滤波的方式进行滤波;由于输入信
号最大频率为 0.2Hz,选择采样周期为 2Hz,即采样周期为
500ms。
第 3 页
2. 采用汇编进行编程,具体的代码及其说明如下:
ORG 0000H
LJMP START
ORG 0300H
键
0
Y
N
N
键
1
Y
键
0
键
1
Y
N
Y
N
LED 初始显示
为 0
是否有按
键?
延时 10ms
去抖
仍有按键?
键 0?键
1?
启动 ADC 数据采集一
个周期
算术平均值滤
波
计算采集到的数值的最小值、中
间值及最大值
显示在
LED 上
是否仍有按
键?
键 0?键
1?
是否有按
键?
延时 10ms
去抖
第 4 页
START:
ACALL DSP1 ;初始化显示 0.00、0.00、0.00
SCAN:
ACALL KEXAM ;判断是否有按键
JNZ SCAN ;没按键就继续 SCAN
ACALL D10ms ;去抖
ACALL KEXAM
JNZ SCAN
KEY:
SETB P1.1 ;检查键值
SETB P1.3
CLR P1.2
MOV A,P1
ANL A,#02H
CJNE A,#02H,SCAN ;按键为 1 则返回继续查询是否
有按键
;按键为 0,进入到数据采集、转换及显示
ADC:
MOV R1,#40H
MOV DPTR,#07FF8H
MOV R2,#10 ;一个周期采集 10 个点
L9:
剩余15页未读,继续阅读
资源评论
celkhn0210
- 粉丝: 1
- 资源: 3万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功