单片机数据采集、处理及显示程序设计一.总体设计方案: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,采纳 LF398,保持电容选择为 1000PF;F. 由于要显示 3 个数据,且小数点后保留两位有效数据,所以需要 3×4=12 个 LED,本实验选用 7 段 LED;且从左到右,依次显示 0、1/2Vmax、Vmax;G.由于要求利用串行口扩展接口来显示数据,所以需连接一寄存器,本实验采纳串行输入、并行输出的移位寄存器:74LS164
三.软件编写:1. 流程图如下:本实验采纳查询的方式来实现键盘的控制;在采集的过程中由于可能会有随机干扰信号本身会在某一数值范围附近上下波动,所以采纳算术平均滤波的方式