欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

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

    • 资源ID:3346574       资源大小:39.09KB        全文页数:9页
    • 资源格式: DOCX        下载积分:6.99金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要6.99金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    单片机数据采集处理及显示程序设计单片机数据采集、处理及显示程序设计 一 总体设计方案: LED初始显示为0,采用查询的方式进行键盘扫描,以确定是否有输入,不停地扫描直到有输入为止:输入为1时,按键无效,继续扫描直到再次有输入,输入为0时,则开始进行数据的采集;采集一个周期,将采集后的数据进行滤波,再求出0、1/2Vmax、Vmax,送到LED显示,结束后进行键盘扫描,确定是否有按键1输入,有则停止,无则继续进行数据采集,如此循环。 二 硬件逻辑图: 1 下图为硬件逻辑图: 2 单片机及各外设参数选择: A 单片机为8031/8051; B 采用外部时钟,振荡频率为12MHz,则机器周期为1us; C 由于本实验只需0、1两个按键就能实现控制,所以采用简单的1×2非编码键盘; D 由于已知输入信号为幅值5V的正弦信号,并要求A/D转换的误差小于0.02V,因此,选用ADC0809,其能处理的信号为05V,不需要进行信号放大;其分辨率为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 流程图如下: 本实验采用查询的方式来实现键盘的控制;在采集的过程中由于可能会有随机干扰,信号本身会在某一数值范围附近上下波动,所以采用算术平均滤波的方式进行滤波;由于输入信号最大频率为0.2Hz,选择采样周期为2Hz,即采样周期为500ms。 LED初始显示为0 是否有按键? Y 延时10ms去抖 N N 仍有按键? Y 键0?键1? 键0 键1 启动ADC 数据采集一个周期 算术平均值滤波 计算采集到的数值的最小值、中间值及最大值 显示在LED上 N 是否有按键? Y 延时10ms去抖 N 键1 2 采用汇编进行编程,具体的代码及其说明如下: ORG 0000H LJMP START ORG 0300H START: ACALL DSP1 ;初始化显示0.00、0.00、0.00 SCAN: 是否仍有按键? 键0 Y 键0?键1? 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: MOV R0,#30H MOV R3,#4 L10: MOV A,#0 SETB P1.4 ;S/H保持 MOVX DPTR,A ;启动ADC JNB P3.3 $ ;转换结束 CLR P1.4 ;S/H采样 MOVX A,DPTR MOV R0,A INC R0 ACALL D5ms DJNZ R3,L10 ACALL Filter ;滤波 INC R1 ACALL D500ms DJNZ R2,L9 ACALL ORDER ;计算要显示的值:最小值、最大值及中间值 ACALL DSP2 ;显示值 ;查询按键 ACALL KEXAM JNZ ADC ACALL D10ms ACALL KEXAM JNZ ADC SETB P1.1 SETB P1.3 CLR P1.2 MOV A,P1 ANL A,#02H CJNE A,#02H,START ;按键为1则返回开始,并显示0 AJMP ADC ;下面为子程序: ;判断是否有按键 KEXAM: SETB P1.1 CLR P1.2 CLR P1.3 MOV A,P1 ANL A,#02H ;0000 0010 RET ;初始化显示0.00、0.00、0.00 DSP1: MOV R0,#30H MOV R1,#40H MOV R2,#3 L0: MOV R1,#0 ACALL CHANGE0 ;将R1中的值转换为有物理意义的值,存入4个R0中 ACALL CHANGE1 ;将4个R0中的值转化为能显示的数模 ACALL DPLED ;显示4个R0中的值 INC R1 DJNZ R2,L0 RET ;输出显示一个LED DPLED: MOV R0,#30H MOV R4,#4 L1: MOV R3,#8 MOV A,R0 L2: RLC A MOV P3.0,C CLR P3.1 SETB P3.1 DJNZ R3,L2 INC R0 DJNZ R4,L1 RET ;将R0中要显示的转换为字模,然后覆盖R0 CHANGE1: MOV R0,#30H MOV R4,#4 L3: PUSH ACC MOV DPTR,#TABLE MOV A,R0 MOV A,A+DPTR MOV R0,A INC R0 DJNZ R4,L3 RET ;标度变换:将R1中的值转换为有物理意义的值,并存入4个R0中(如将125转换为2.45V) CHANGE0: PUSH ACC PUSH B ;除17 MOV A,R1 MOV B,#11H ;除以17 DIV AB MOV R0,A INC R0 MOV A,B MOV B,#0AH MUL AB MOV A,B MOV B,#11H ;除以17 DIV AB MOV R0,A INC R0 MOV A,B MOV B,#0AH MUL AB MOV A,B MOV B,#11H ;除以17 DIV AB MOV R0,A ;除3 DEC R0 DEC R0 DEC R0 MOV A,R0 MOV B,#03H ;除以3 DIV AB MOV R0,A INC R0 MOV A,B MOV B,#0AH MUL AB MOV A,B ADD A,R0 MOV B,#03H ;除以3 DIV AB MOV R0,A INC R0 MOV A,B MOV B,#0AH MUL AB MOV A,B ADD A,R0 MOV B,#03H ;除以3 DIV AB ;将小数点10加上 INC R0 MOV R0,A DEC R0 DEC R0 MOV A,R0 INC R0 MOV R0,A DEC R0 MOV R0,#10H POP B POP ACC RET ;延时5ms D5ms: MOV R2,#0AH ;10 L4:MOV R3,#F8H ;248 L5:DJNZ R3,L5 ;248*2=496 DJNZ R2,L4 ;500*10=5000us=5ms RET ;延时10ms D10ms: MOV R2,#14H ;20 L4:MOV R3,#F8H ;248 L5:DJNZ R3,L5 ;248*2=496 DJNZ R2,L4 ;500*20=10000us=10ms RET ;延时500ms D500ms: MOV R2,#100 L6:MOV R3,#4 L7:MOV R4,#249 L8:NOP NOP NOP DJNZ R4,L8 ;125*5=1245 DJNZ R3,L7 ;1249*4=4996 DJNZ R2,L6 ;5000*100=500000us=500ms RET ;算术平均滤波,将得到的值存入R1中 Filter: PUSH PSW PUSH A PUSH B MOV FLAG,#00H MOV R4,#4 MOV R0,#30H CLR A L11: ADD A,R0 JNC NEXT INC FLAG NEXT: INC R0 DJNZ R4,L11 MOV R5,#4 DIVIDE: MOV B,A MOV A,FLAG CLR C RRC A MOV FLAG A MOV A,B RRC A DJNZ R5,DIVIDE MOV R1,A POP B POP A POP PSW RET ;将采集到的R1中的10个值进行排序,采用冒泡法 ORDER: MOV R3,#9 L12: MOV A,R3 MOV R4,A MOV R1,#40H L13: MOV A,R1 INC R1 CLR C SUBB A,R1 JC DONE MOV A,R1 DEC R1 XCH A,R1 INC R1 MOV R1,A DONE: DJNZ R4,L13 DJNZ R3,L12 RET ;显示R1中的值 DSP2: MOV R1,#40H ACALL CHANGE0 ;将R1中的值转换为有物理意义的值,存入4个R0中 ACALL CHANGE1 ;将4个R0中的值转化为能显示的数模 ACALL DPLED ;显示4个R0中的值 INC R1 MOV R3,#2 L14: MOV R4,#4 INC R1 DJNZ R4,L14 ACALL CHANGE0 ;将R1中的值转换为有物理意义的值,存入4个R0中 ACALL CHANGE1 ;将4个R0中的值转化为能显示的数模 ACALL DPLED ;显示4个R0中的值 DJNZ R3,L14 RET ;数模表 TABLE: DB 3FH,06H,5BH;0,1,2 DB 4FH,66H,6DH;3,4,5 DB 7DH,07H,7FH;6,7,8 DB 6FH,77H,7CH;9,10,11 DB 39H,5EH,7BH;12,13,14 DB 71H,80H ;15,.

    注意事项

    本文(单片机数据采集处理及显示程序设计.docx)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开