《微机原理及接口技术》智能双路数字电压表课程设计(DOC)_第1页
《微机原理及接口技术》智能双路数字电压表课程设计(DOC)_第2页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、杨在工来為垓Fujlth UnherSly of Technolflg智能双路数字电压表设计说明书1微机原理及接口技术课程设计说明书课题:智能双路数字电压表智能双路数字电压表设计说明书2I审2工利自序目录1.1. 设计任务 2 21.1 设计题目. 21.2 设计目的. 21.3 设计任务. 22.2. 总体方案设计与方案论证 .4 42.1 总体方案设计与论证. 42.2 温度采集、计算的方案设计与论证. 53.3. 系统总框图及总体软件设计说明.6 64.4. 系统资源分配图.7 75.5. 局部程序设计说明.8 85.1 显示更新子程序. 85.2 温度采集存储子程序. 95.3PB 口

2、消抖和冻结子程序. 115.4 自动巡显和手动切换子程序. 125.5 转换成温度内码的子程序. 135.6 温度内码转化为 BCD 码的子程序. 155.7 键盘扫描和节拍设定的子程序. 175.8 改进后设定温度上下限的子程序. 195.9 改进后实时钟调整的子程序. 206.6. 系统功能及其操作说明-.21217.7. 调试记录及调试结果-.2121智能双路数字电压表设计说明书38.8.课程设计总结2222fujlao r$ of 智能双路数字电压表设计说明书4附录一:源程序清单.2323附录二:改进后的程序. 38381 设计任务1.1设计题目智能双路数字电压表1.1设计目的通过小型

3、微机应用产品的设计与调试过程,运用微机原理及接口 技术课程所学的基本知识,在设计中加以应用,进而得到理解、巩固和提 高,学习掌握分析与解决实际问题的方法与手段,提高设计、编程与调试的 实际动手能力,作为工程技术工作的一次基本训练。1.2设计任务设计一个以单片机为核心的智能双路数字电压表,通过多选一电子 模拟开关及A/D转换器巡回采集两路被测电压的数据,进行信号处理及标度 变换,以一定的节拍时间交替显示,应有显示的符号标示被测信号源回路, 并可通过按钮开关操控冻结或切换形式,可通过键盘进行参数设计,编程并 在单片机实验上模拟调试实现。(一) 基本设计要求1、八位LED 7段数码管显示当前检测回路

4、的标识、电压值及其单位或其他界面信息。2、 电压测量范围0V4.96V,应有输入被测电压超量程判断及提示。3、 应采取数字滤波技术提高测量与显示的稳定性。4、 基本显示模式为:两路被测电压值按设定的节拍交替测量与显示,智能双路数字电压表设计说明书5Unlvert |y OF T#c 舒电压值保留二位小数。5、设置一个“冻结”按钮开关以操控进入或退出当前回路的冻结显示方式,冻结显示期间每约0.5S更新一次测量值。6、设置一个“切换”按钮开关以操控强行切换显示下一检测回路数据。7、对开关量输入信号须进行软件消抖动处理。8键盘设定交替测量显示的节拍范围为0.5S5.0 S,设定分辨率0.1V,设定界

5、面应有醒目的当前修改位提示。9、无操作时间超过30秒钟后自动恢复为基本的运行状态。(二) 功能扩展提示:(选做)1、开机进行接口部件及数码显示器、指示灯、讯响器等自检。2、每隔一定的时间,穿插显示实时钟信息一定的时间,通过键盘设定 其间隔参数。3、 扩展显示模式二:同时显示两路电压测量数据,每约0.5S更新一次测量值,电压值保留一位小数。设置一个“模式”拨动开关以选择 两种显示模式之一。4、 超上限告警功能,通过键盘设定电压上限值范围为0V4.96V,监测到某回路电压超上限时有相应显示内容的闪烁提示、超上限LED指示灯亮、讯响告警及继电器触点输出控制功能。5、实现带有回差的超上限告警功能,通过

6、键盘设定回差值的范围为土0 .10V0.50V,设定回差分辨率0.01V。6、添加超下限告警功能。7、添加多挡量程功能,如1.24V量程、0.31V量程。8其他功能扩展。fbjlanTet hn*筠帘、智能双路数字电压表设计说明书6再次按下PBPB2总体方案设计与方案论证2.1总体方案的设计与方案论证.本课程设计的要求是显示外部采集2路电压,按一定的节拍进行巡回显示,还有两路之间来回切换功能,某一路的冻结功能,对两路交替 显示的节拍进行设定,无操作返回显示2路电压的功能,每个功能都是根据相应的按键是否操作去执行相应地程序,进而实现相应的功能,所 以按键操作的正确判断是程序执行的关键,其总的流程

7、图如下见如下框 图。图 1 1- -系统软件设计的整体思路框图2.2开关量的方案设计与论证方案一、表决法方案二、滚动滤波法显示设定节拍界面芯片上电、复位按下PB2PB2fujlao r$ of 智能双路数字电压表设计说明书7对开关量得输入进行滚存的方式,每次调用到开关量子程序 时,就把当前的状态值赋给前态,依次把前几次的采集值推为旧态, 当这4次的开关量采集的值一致时,才把当前的采集值采集存为新 态,在通过新态和旧态的值比较就可以达到消除抖动的效果,这种 方法还可以实现按键是上升沿有效还是下降沿有效。2.3显示查表的方案设计与论证方案一把带小数点的断码也写进断码表, 显示个位的时候直接查找有带

8、符号位的断码。方案二 显示过程中先判断显示是否到达个位,如果到了就把个位的数据的最高位清零上述的两种方案中, 第一种方案比较麻烦, 要编写特定的带 符号位断码,要判断是否到显示个位时,才能查找带符号位的断码, 虽然可以实现显示个位时可以实现显示小数点,但是编写程序时, 逻辑较方案二太过于麻烦,所以我选择了方案二2.4电压采集、计算方法与论证方案一、采用ADC0809对两路的电压的模拟量得采集、转换成数字量, 在经过标度转换使其范围在04.98V,采集进来的数字量采用滚存 的方式,存储最新的4 次电压值,并用其平均值进行标度转换,在标度 转化中,对第一路和第二路的电压分别进行计算,最后把其转换成

9、 BCD码送到显示缓冲区等待显示。方案二、采用 ADC0809 对两路的电压进行采集,转换成数字量,经过标度转换使其量程在04.98,在标度转换中对第一路的电压值和第二路的电压值轮流计算,得到的数据为 16 进制数,最后把其转换成BCD 码送到显示缓冲区等待显示总上所述,在方案二中,没有采用滚存的方式,这样外界的电压波动 很频繁- Fuj nn Ufhvert I y Of T#c Unflla智能双路数字电压表设计说明书8时,会造成显示波动,给人的第一感觉好像是这个系统不够完善,还 有在进行标度转换时,对两路的电压轮流进行计算,这样确实能够实现系统 空间的节约,但是如果使用切换功能时,此时刚

10、刚还还没有轮到某一路计算 及标度转换时,这样显示缓冲区得数据还是前一次的数据,无法显示最新的 数据,经过比较,方案一在这两点上比方案二好,但是方案一在转换标度时 使用系统的空间比方案二大,所以我选择方案一。智能双路数字电压表设计说明书图I-I-系统设计的硬件丢窥的框图3系统总框图及总体软件设计说明- 包括是开关量得消抖动,切换按键、冻结按 键,设定节拍按键第一部分:显示第一路电压的信息界面 第二部分:显示第二路电压的信息界面 第三部分:显示设定节拍的信息界面键盘扫描子程序利用键反转法先读出键的状态在进行查表查出键码 当键码对设定节拍单元赋值时,对节拍设定的范围 进行了限定;oAu 57LED显

11、示t转化+-2路电压输入亠初始化包括芯片初始化和工作初始化自检包括对蜂鸣器、LED、每个数码管的开关量扫描子程序 拆字子程序按器调整节扌白单片机复彳立卫切換和冻结丄系统自检智能双路数字电压表设计说明书10显示更新包括显示第一路和第二路的电压信息4系统资源分配表已用单元功能空间10H1路电压内码低字节 (二进制)29H11H1路电压内码咼字节 (二进制)2AH12H2路电压内码低字节 (二进制)2BH13H2路电压内码咼字节 (二进制)2CH3DH电压百分位2DH3EH电压十分位2EH3FH电压个位2FH40H1路1次30H41H2路1次31H42H1路2次32H43H2路2次33H44H1路3

12、次34H45H2路3次35Hfujlao r$ of 智能双路数字电压表设计说明书1146H1路4次36Hfujlao r$ of 智能双路数字电压表设计说明书1247H2路4次37H48HAD采样信号地址低字节位38H49HAD吉果保持单元39H4BH进程码存放BIT0冻结标志位1冻结BIT1重新输入缓冲使能位BIT3闪3AH20H烁亮火标志位3BH4CH节拍时间单位0.1秒3CH4DH节拍辅助单元10毫秒计数4AH21H输出小数点标志位54H66H判断当前按下的矩阵按键的值没有按下位10H60H25H输入允许标志位61H26H当前输入位、闪烁标志位62H4EH闪烁计数63H59H当前输入位

13、允许输入最小值64H5AH当前输入位允许输入最大值65H55H下限电压内码低字节(二进制)56H下限电压内码高字节(二进制)57H上限电压内码低字节(二进制)58H上限电压内码咼字节(二进制)4FH十六进制低字节50H十八进制咼字节51H个位52H十位53H百位5BH保存当前选择路对应内存首地址5CH0.1秒计时单元22H报警标志位5DH回差值单位0.01V5EH冻结时保存节拍值5FH30秒无操作计时C:撤销D:确认F:功能E:锁定B:切换5局部程序设计说明fbjltnUngers lyoFTbrnn*星、智能双路数字电压表设计说明书135.1开关量米集子程序开关量消除抖动采用滚动虑波的方式消

14、除抖动,其原理如下每次采集的信号前,先把 49H4DH 内的 值一次往后推,再把采集的信号存入49H中,再通过比较 49H4DH 的值,如果这 四个单元内的值一致,则说明抖动时间已 过,再把 49H 的采集的值存入4EH,最 后通过比较 4FH 和 4EH 内的值来判断按 键是否按下, 还可以根据编程逻辑使得按 键在下降沿有效还是上升沿有效。5.2拆字子程序首先判断20H里面存的程序代码,在跳到相应的程序段去执行图如下:取当前路数 取进程码超量程显示和报警其原理进程代码为 1判断 20H 中的值进程代码为2显示第一路的电压信息进程代码为 3显示第二路的电压信息超过量程显示设定节拍的信息超过量程

15、超量程显示和报警才各之工才鹭说Univflr$ Tec 星智能双路数字电压表设计说明书14拆字子程序流程图5.3电压采集子程序两路电压采集是采用轮流采集,滚动储存的方式。通过标志位来判断是 对第一路采集还是对第二路采集。其流程图如下:A/D采集流程图5.4标度转换子程序这一过程是整个程序的核心所在,主要利用(D1+D2+D3+D4)*125/256 这个标度转换公式,这样就可以实现所测的电压量程在04.98V,在四次采集的数值乘以125的原理计算如下,因为计算的结果为3 个字节的 16 进制数,所以除以 256 就相当于把Fuji防呗0靱怜*FT就hn血和智能双路数字电压表设计说明书这三个字节

16、向有移动 8 位,高位自动补 0,当然还要判断最后的那个字节是否要向上进位(0 舍 1 入)。4D 的高字节4D 的低字节125在上述过程中,最后结果取其前面两个字节,把最后一个字节0舍1入后,就相当于除以256,最后得到2个字节的16进制数即为转换标度后的数 值。最后再把16进制数转换成BCD码送到显示缓冲单元即可。5.5键盘扫描子程序键盘扫描是利用键反转法读出键盘的电平值,通过查键码表,把电平值转化为K0-K16键分别变为0-16的数字,通过判断寄存器中的键号, 就能确定是那一个按键按下了。键反转法的原理:(1)列线输出为全0随后输入行线电平如有0,则0所在的行就是按键所在行。Fuji防呗

17、0靱怜*FT就hn血和智能双路数字电压表设计说明书才各也工永自复Fujlpfh UnherSjr of Ttchriol-ggi智能双路数字电压表设计说明书175.6 PB子程序中的功能说明PB0是实现切换功能,其经过消除抖动后实现第一路和第二路电压信息的切换显示,其源程序如下;判断 PB0 是否有按下;判断前态是否为高电平;判断此时的 20H 中的程序代码,为 1 则赋 2,为 2 则赋 1;将 48H 单元清 0,即将 0.5S 更新一次立即执行;将 2AH 单元清 0,即将自动切换的计数清 0將无操作 30S 定时清 0;将 48H 单元清 0,即将 0.5S 更新一次立即执行 將无操作

18、 30S 定时清 0;将 2AH 单元清 0,即将自动切换的计数清0MOV A,4EHCJNE A,#0FEH,XDRMOV A,4FHCJNE A,#0FFH,XDRMOV A,20HCJNE A,#01H,JOMOV 48H,#01MOV 2AH,#0MOV 20H,#02HMOV 3AH,#00HSJMP XDRJO:MOV 20H,#01HMOV 48H,#01MOV 3AH,#00HMOV 2AH,#0fujlao r$ of 智能双路数字电压表设计说明书18PB1是实现冻结显示某一路的电压信息,其源程序如下:MOV A,4EHCJNE A,#0FDH,XER ;判断 PB1 是否有

19、按下MOV A,4FHCJNE A,#0FFH,XER ;判断前太是否为高电平MOV 48H,#01将 0.5S 更行立即更新fujlao r$ of 智能双路数字电压表设计说明书19CPL 27H.0;标记MOV 3AH,#00H将无操作 30S 定时清 0PB2是实现进入、退出设定节拍,其源程序如下MOV A,4EHCJNE A,#0FBH,XFRMOV A,4FHCJNE A,#0FFH,XFRCPL 27H.2MOV 20H,#03HMOV 48H,#01MOV 3AH,#00HJB 27H.2,XFR;判断 PB2 是否有按下;判断前太是否为咼电平;标记进入设定状态;将程序代码赋给

20、20H将 0.5S 更行立即更新将无操作 30S 定时清 0;退出设定界面是马上显示第一路,即 U1MOV 20H,#015.7改进后的切换功能在没有改进的源程序,在设定节拍的时候,按下切换按键,也会实 现,这样就导致设定标志位为1,如果这时候按下键号,也会实现节拍的修 改。所以我的改进就是在切换功能程序的前面加上节拍标志位的判断,这样就不会出现上述现象修改前的源程序:MOV A,4EHCJNE A,#0FEH,XDRMOV A,4FHCJNE A,#0FFH,XDRMOV A,20HCJNE A,#01H,JOMOV 48H,#01;判断 PB0 是否有按下;判断前态是否为咼电平;判断此时的

21、 20H 中的程序代码, 为 1 则赋 2, 为 2 则赋 1 ;将 48H单元清 0,即将 0.5S 更新一次立即执行fujlao r$ of 智能双路数字电压表设计说明书20;判断 PBO 是否有按下;判断前态是否为高电平;在设定节拍时,切换功能无效;判断此时的 20H 中的程序代码,为 1 则赋 2,为 2 则赋 1 ;将 48H单元清 0,即将 0.5S 更新一次立即执行5.8标度转换中的完善在没有改进的源程序中,我是将两路的电压轮流计算,最后送到显示更 新缓冲单元,这种方式在正常的第一路和第二路自动切换的情况下,可以满 足系统的要求,但是要是在手动切换的情况下,就不能显示实时的数据显

22、示,原因在于第一路和第二路轮流计算的时候,刚刚好在计算第一路的情况下,手动切换,这时还没有计算第二路的信息,只能显示上一次的计算结果,而 且在0.5S才进行一次计算的情况下,会出现数码管跳窜现象。即切换后显示 的是上次的计算结果,过了0.5S后才能显示最新的数据,无法实现一切换就 显示最新的数据。修改后的程序,只要将两路的电压同时计算即可解决上述 的问题。修改后的程序:MOV A,4EHCJNE A,#0FEH,XDRMOV A,4FHCJNE A,#0FFH,XDRJB 27H.2,XDRMOV A,20HCJNE A,#01H,JOMOV 48H,#01fujlao r$ of 智能双路数

23、字电压表设计说明书21六、系统功能与用户操作使用说明6.1 系统的功能1.定时切换及显示功能八位LED7段数码管显示当前检测回路的标识、电压值及其单位或其他 界面信息。2.设置节拍功能两路被测电压值按设定的节拍交替测量与显示,电压值保留两位小数。3.冻结功能设置一个“冻结”按钮开关以操控进入或者退出当前回路的冻结显示方 式, 冻结显示期间每约0.5S更新一次测量值。4.无操作时间超过30S后恢复基本运行状态功能5.设置上下限功能6.超上下限告警功能6.2、使用说明1.1.电压表进行短暂开机复位后,八位 LED7LED7 段数码管交替显示两路电压值。2.2.按下 K15K15 键可以进行功能选择, 然后按下K1K1 键便进入设置节拍功能。然后用 键输入数值,然后按下 K13K13 确定就设置好节拍了。3.3. 按下 K15K15 进行功能选择,然后按 K2,K3K2,K3 分别进入设置上下限。4.4. 按下 K14K14 进行冻结功能,可以使当前路

温馨提示

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

评论

0/150

提交评论