单片机数据采集、处理及显示程序设计_第1页
单片机数据采集、处理及显示程序设计_第2页
单片机数据采集、处理及显示程序设计_第3页
单片机数据采集、处理及显示程序设计_第4页
单片机数据采集、处理及显示程序设计_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

3、 ;G. 由于要求利用串行口扩展接口来显示数据,所以需连接一寄存器,本实验采用串行输入、并行输出的移位寄存器:74LS164.软件编写:1 .流程图如下:本实验采用查询的方式来实现键盘的控制;在采集的过程中由于可能会有随机干扰,信号本身会在某一数值范围附近上下波动,所以采用算术平均滤波的方式进行滤波;由于 输入信号最大频率为 0.2Hz,选择采样周期为 2Hz,即采样周期为500ms。2.采用汇编进行编程,具体的代码及其说明如下:ORG 0000HLJMP STARTORG 0300HSTART:ACALL DSP1 ;初始化显示 0.00、0.00、0.00SCAN:ACALL KEXAM

4、;判断是否有按键JNZ SCAN;没按键就继续 SCANACALL D10ms ; 去抖ACALL KEXAMJNZ SCANKEY:SETB P1.1 ; 检查键值SETB P1.3CLR P1.2MOV A,P1ANL A,#02HCJNE A,#02H,SCAN ;按键为 1 则返回继续查询是否有按键;按键为 0,进入到数据采集、转换及显示ADC:MOV R1,#40HMOV DPTR,#07FF8HMOV R2,#10;一个周期采集 10 个点L9:MOV R0,#30HMOV R3,#4L10:MOV A,#0SETB P1.4MOVX DPTR,AJNB P3.3 $CLR P1.

5、4MOVX A,DPTRMOV R0,AINC R0;S/H 保持;启动 ADC ; 转换结束 ;S/H 采样ACALL D5msDJNZ R3,L10ACALL FilterINC R1ACALL D500ms;滤波DJNZ R2,L9ACALL ORDERACALL DSP2 ;查询按键ACALL KEXAM;计算要显示的值 :最小值、最大值及中间值;显示值JNZ ADCACALL D10msACALL KEXAMJNZ ADCSETB P1.1SETB P1.3CLR P1.2MOV A,P1ANL A,#02HCJNE A,#02H,START ;按键为1则返回开始,并显示0AJMP

6、ADC;下面为子程序:;判断是否有按键KEXAM:SETB P1.1CLR P1.2CLR P1.3MOV A,P1ANL A,#02H;0000 0010RET;初始化显示 0.00、0.00、0.00DSP1:MOV R0,#30HMOV R1,#40HMOV R2,#3L0:MOV R1,#0ACALL CHANGE0将R1中的值转换为有物理意义的值,存入4个R0中ACALL CHANGE1将4个R0中的值转化为能显示的数模ACALL DPLED显示4个R0中的值INC R1DJNZ R2,L0RET;输出显示一个 LEDDPLED:MOV R0,#30HMOV R4,#4L1:MOV

7、R3,#8MOV A,R0L2:RLC AMOV P3.0,CCLR P3.1SETB P3.1DJNZ R3,L2INC R0DJNZ R4,L1RET;将RO中要显示的转换为字模,然后覆盖R0CHANGE1:MOV R0,#30HMOV R4,#4L3:PUSH ACCMOV DPTR,#TABLEMOV A,R0MOV A,A+DPTRMOV R0,AINC R0DJNZ R4,L3RET;标度变换:将R1中的值转换为有物理意义的值,并存入 4个R0中(如将125 转换为2.45V)CHANGE0:PUSH ACCPUSH B;除17MOV A,R1MOV B,#11H;除以 17DIV

8、 ABMOV R0,AINC R0MOV A,BMOV B,#0AHMUL ABMOV A,BMOV B,#11H;除以 17DIV ABMOV R0,AINC R0MOV A,BMOV B,#0AHMUL ABMOV A,BMOV B,#11H;除以 17DIV ABMOV R0,A;除3DEC R0DEC R0DEC R0MOV A,R0MOV B,#03H;除以 3DIV ABMOV R0,AINC ROMOV A,BMOV B,#0AHMUL ABMOV A,BADD A,R0MOV B,#03H;除以 3DIV ABMOV R0,AINC ROMOV A,BMOV B,#0AHMUL

9、 ABMOV A,BADD A,R0MOV B,#03H;除以 3DIV AB;将小数点10加上INC ROMOV R0,ADEC RODEC ROMOV A,ROINC ROMOV RO,ADEC ROMOV RO,#1OHPOP BPOP ACCRET;延时5msD5ms:MOV R2,#0AH;10L4:MOV R3,#F8H ;248L5:DJNZ R3,L5;248*2=496DJNZ R2,L4;500*10=5000us=5msRET;延时10msD10ms:MOV R2,#14H;20L4:MOV R3,#F8H ;248L5:DJNZ R3,L5;248*2=496;500*

10、20=10000us=10msDJNZ R2,L4RET;延时500msD500ms:MOV R2,#100 L6:MOV R3,#4 L7:MOV R4,#249 L8:NOPNOPNOPDJNZ R4,L8DJNZ R3,L7DJNZ R2,L6RET;125*5=1245;1249*4=4996;5000*100=500000us=500ms;算术平均滤波,将得到的值存入R1中Filter:PUSH PSWPUSH APUSH BMOV FLAG,#00HMOV R4,#4MOV R0,#30HCLR AL11:ADD A,R0JNC NEXTINC FLAGNEXT:INC RODJN

11、Z R4, L11MOV R5,#4DIVIDE:MOV B,AMOV A,FLAGCLR CRRC AMOV FLAG AMOV A,BRRC ADJNZ R5,DIVIDEMOV R1,APOP BPOP APOP PSWRET;将采集到的R1中的10个值进行排序,采用冒泡法ORDER:MOV R3,#9L12:MOV A,R3MOV R4,AMOV R1,#40HL13:MOV A,R1INC R1CLR CSUBB A,R1JC DONEMOV A,R1DEC R1XCH A,R1INC R1MOV R1,ADONE:DJNZ R4,L13DJNZ R3,L12RET;显示R1中的值DSP2:MOV R1,#40HACALL CHANGE0将R1中的值转换为有物理意义的值,存入4个R0中ACALL CHANGE1将4个R0中的值转化为能显示的数模ACALL DPLED显示4个R0中的值INC R1MOV R3,#2L14:MOV R4,#4INC R1DJNZ R4,L14ACALL CHANGE0将R1中的值转换为有物理意义的值,存入4个R0中ACALL CHANGE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论