[微机原理及接口技术]福建工程学院

《微机原理及接口技术》

课程设计说明书

课题:专业:班级:姓名:学号:指导老师:

智能双路数字电压表 电子信息类

1

目录

1.设计任务„„„„„„„„„„„„„„„„„„„„„„„„„„ 2 1.1设计题目„„„„„„„„„„„„„„„„„„„„„„„„2 1.2设计目的„„„„„„„„„„„„„„„„„„„„„„„ 2 1.3设计任务„„„„„„„„„„„„„„„„„„„„„„ „2 2.总体方案设计与方案论证 „„„„„„„„„„„„„„„„„„4 2.1总体方案设计与论证„„„„„„„„„„„„„„„„„„„4 2.2温度采集、计算的方案设计与论证„„„„„„„„„„„„„5 3.系统总框图及总体软件设计说明„„„„„„„„„„„„„„„ 6 4.系统资源分配图„„„„„„„„„„„„„„„„„„„„„„ 7 5.局部程序设计说明„„„„„„„„„„„„„„„„„„„„„ 8 5.1显示更新子程序„„„„„„„„„„„„„„„„„„„„„„ 8 5.2温度采集存储子程序„„„„„„„„„„„„„„„„„„„„„9 5.3PB口消抖和冻结子程序„„„„„„„„„„„„„„„„„„„ 11 5.4 自动巡显和手动切换子程序„„„„„„„„„„„„„„„„„ 12 5.5转换成温度内码的子程序„„„„„„„„„„„„„„„„„„ 13 5.6温度内码转化为BCD码的子程序„„„„„„„„„„„„„„„15 5.7键盘扫描和节拍设定的子程序„„„„„„„„„„„„„„„„„17 5.8改进后设定温度上下限的子程序„„„„„„„„„„„„„„„„19 5.9改进后实时钟调整的子程序„„„„„„„„„„„„„„„„„„20 6.系统功能及其操作说明-„„„„„„„„„„„„„„„„„„„„21 7.调试记录及调试结果-„„„„„„„„„„„„„„„„„„„„„ 21 8.课程设计总结-„„„„„„„„„„„„„„„„„„„„„„„ 22

2

附录一:源程序清单„„„„„„„„„„„„„„„„„„„„„„ 23 附录二:改进后的程序„„„„„„„„„„„„„„„„„„„„„ 38

1、设计任务

1.1设计题目

智能双路数字电压表

1.1设计目的

通过小型微机应用产品的设计与调试过程,运用《微机原理及接口

技术》课程所学的基本知识,在设计中加以应用,进而得到理解、巩固和提高,学习掌握分析与解决实际问题的方法与手段,提高设计、编程与调试的实际动手能力,作为工程技术工作的一次基本训练。

1.2设计任务

设计一个以单片机为核心的智能双路数字电压表,通过多选一电子

模拟开关及A/D转换器巡回采集两路被测电压的数据,进行信号处理及标度变换,以一定的节拍时间交替显示,应有显示的符号标示被测信号源回路,并可通过按钮开关操控冻结或切换形式,可通过键盘进行参数设计,编程并在单片机实验上模拟调试实现。

(一) 基本设计要求

1、八位LED 7段数码管显示当前检测回路的标识、电压值及其单位或

其他界面信息。

2、电压测量范围0V~4.96V,应有输入被测电压超量程判断及提示。 3、应采取数字滤波技术提高测量与显示的稳定性。

4、基本显示模式为:两路被测电压值按设定的节拍交替测量与显示,

3

电压值保留二位小数。

5、设置一个“冻结”按钮开关以操控进入或退出当前回路的冻结显示方式,冻结显示期间每约0.5S更新一次测量值。

6、设置一个“切换”按钮开关以操控强行切换显示下一检测回路数据。 7、对开关量输入信号须进行软件消抖动处理。

8、键盘设定交替测量显示的节拍范围为0.5S~5.0 S,设定分辨率0.1V,设定界面应有醒目的当前修改位提示。

9、无操作时间超过30秒钟后自动恢复为基本的运行状态。

(二) 功能扩展提示:(选做)

1、开机进行接口部件及数码显示器、指示灯、讯响器等自检。 2、每隔一定的时间,穿插显示实时钟信息一定的时间,通过键盘设定其间隔参数。

3、扩展显示模式二:同时显示两路电压测量数据,每约0.5S更新一次测量值,电压值保留一位小数。设置一个“模式”拨动开关以选择两种显示模式之一。

4、超上限告警功能,通过键盘设定电压上限值范围为0V~4.96V ,监测到某回路电压超上限时有相应显示内容的闪烁提示、超上限LED指示灯亮、讯响告警及继电器触点输出控制功能。

5、实现带有回差的超上限告警功能,通过键盘设定回差值的范围为±0 .10V~±0.50V,设定回差分辨率0.01V。 6、添加超下限告警功能。

7、添加多挡量程功能,如1.24V量程、0.31V量程。 8、其他功能扩展。

4

2.

总体方案设计与方案论证

2.1总体方案的设计与方案论证.

本课程设计的要求是显示外部采集2路电压,按一定的节拍进行巡

回显示,还有两路之间来回切换功能,某一路的冻结功能,对两路交替显示的节拍进行设定,无操作返回显示2路电压的功能,每个功能都是根据相应的按键是否操作去执行相应地程序,进而实现相应的功能,所以按键操作的正确判断是程序执行的关键,其总的流程图如下见如下框图。

图1-系统软件设计的整体思路框图

2.2开关量的方案设计与论证

方案一、表决法 方案二、滚动滤波法

对开关量得输入进行滚存的方式,每次调用到开关量子程序

时,就把当前的状态值赋给前态,依次把前几次的采集值推为旧态,当这4次的开关量采集的值一致时,才把当前的采集值采集存为新态,在通过新态和旧态的值比较就可以达到消除抖动的效果,这种方法还可以实现按键是上升沿有效还是下降沿有效。

2.3显示查表的方案设计与论证

方案一 把带小数点的断码也写进断码表,显示个位的时候直接查找

有带符号位的断码。

方案二 显示过程中先判断显示是否到达个位,如果到了就把个位的

数据的最高位清零

上述的两种方案中,第一种方案比较麻烦,要编写特定的带

符号位断码,要判断是否到显示个位时,才能查找带符号位的断码,虽然可以实现显示个位时可以实现显示小数点,但是编写程序时,逻辑较方案二太过于麻烦,所以我选择了方案二

2.4电压采集、计算方法与论证

方案一、采用ADC0809对两路的电压的模拟量得采集、转换成数字量,

在经过标度转换使其范围在0~4.98V,采集进来的数字量采用滚存

的方式,存储最新的4次电压值,并用其平均值进行标度转换,在标度转化中,对第一路和第二路的电压分别进行计算,最后把其转换成BCD

6

码送到显示缓冲区等待显示。

方案二、采用ADC0809对两路的电压进行采集,转换成数字量,经过标度转换使其量程在0~4.98,在标度转换中对第一路的电压值和第二路的电压值轮流计算,得到的数据为16进制数,最后把其转换成BCD码送到显示缓冲区等待显示

总上所述,在方案二中,没有采用滚存的方式,这样外界的电压波动

很频繁时,会造成显示波动,给人的第一感觉好像是这个系统不够完善,还有在进行标度转换时,对两路的电压轮流进行计算,这样确实能够实现系统空间的节约,但是如果使用切换功能时,此时刚刚还还没有轮到某一路计算及标度转换时,这样显示缓冲区得数据还是前一次的数据,无法显示最新的数据,经过比较,方案一在这两点上比方案二好,但是方案一在转换标度时使用系统的空间比方案二大,所以我选择方案一。

7

3.系统总框图及总体软件设计说明

图3-系统软件设计的总流程图并解释

4.系统资源分配表

单元 10H 11H 12H 13H 3DH 3EH 3FH 40H 41H 42H 43H 44H 45H 46H

功能

1路电压内码低字节(二进制) 1路电压内码高字节(二进制) 2路电压内码低字节(二进制) 2路电压内码高字节(二进制) 电压百分位 电压十分位 电压个位 1路1次 2路1次 1路2次 2路2次 1路3次 2路3次 1路4次

9

已用空间 29H 2AH 2BH 2CH 2DH 2EH 2FH 30H 31H 32H 33H 34H 35H 36H

47H 2路4次

48H AD采样信号地址低字节位 49H AD结果保持单元 4BH 进程码存放 BIT0 冻结标志位 1冻结 BIT1 重新输入缓冲使能位 BIT3 闪20H 烁亮灭标志位

4CH 节拍时间 单位0.1秒

4DH 节拍辅助单元 10毫秒计数 21H 输出小数点标志位 66H 判断当前按下的矩阵按键的值没有按下位10H 25H 输入允许标志位 26H 当前输入位、闪烁标志位 4EH 闪烁计数 59H 当前输入位允许输入最小值 5AH 当前输入位允许输入最大值 55H 下限电压内码低字节(二进制) 56H 下限电压内码高字节(二进制) 57H 上限电压内码低字节(二进制) 58H 上限电压内码高字节(二进制) 4FH 十六进制低字节 50H 十六进制高字节 51H 个位 52H 十位 53H 百位 5BH 保存当前选择路对应内存首地址 5CH 0.1秒计时单元 22H 报警标志位 5DH 回差值 单位0.01V 5EH 冻结时保存节拍值 5FH 30秒无操作计时 C:撤销 D:确认 F:功能 E:锁定 B:切换

5.局部程序设计说明

10

37H 38H 39H 3AH 3BH 3CH 4AH 54H 60H 61H 62H 63H 64H 65H

5.1开关量采集子程序

开关量消除抖动采用滚动虑波的方式消除抖动,其原理如下

49H 每次采集的信号前,先把49H~4DH内的 值一次往后推,再把采集的信号存入49H 中,再通过比较49H~4DH的值,如果这 四个单元内的值一致,则说明抖动时间已 过,再把49H的采集的值存入4EH,最 后通过比较4FH和4EH内的值来判断按 键是否按下,还可以根据编程逻辑使得按

键在下降沿有效还是上升沿有效。

5.2拆字子程序

首先判断20H里面存的程序代码,在跳到相应的程序段去执行。其原理图如下:

11

拆字子程序流程图

5.3电压采集子程序

两路电压采集是采用轮流采集,滚动储存的方式。通过标志位来判断是

对第一路采集还是对第二路采集。其流程图如下:

A/D采集流程图 5.4标度转换子程序

这一过程是整个程序的核心所在,主要利用(D1+D2+D3+D4)*125/256这个标

度转换公式,这样就可以实现所测的电压量程在0~4.98V,在四次采集的数值乘以125的原理计算如下,因为计算的结果为3个字节的16进制数,所以除以256就相当于把

12

这三个字节向有移动8位,高位自动补0,当然还要判断最后的那个字节是否要向上进位(0舍1入)。

4D低字节*125 存放4D高字节*125

在上述过程中,最后结果取其前面两个字节,把最后一个字节0舍1入

后,就相当于除以256,最后得到2个字节的16进制数即为转换标度后的数值。最后再把16进制数转换成BCD码送到显示缓冲单元即可。 5.5键盘扫描子程序

键盘扫描是利用键反转法读出键盘的电平值,通过查键码表,把电平值转化为K0-K16键分别变为0-16的数字,通过判断寄存器中的键号,就能确定是那一个按键按下了。

键反转法的原理:(1)列线输出为全‘0’,随后输入行线电平如有‘0’,则‘0’所在的行就是按键所在行。

判断节拍的输入范围见源程序中的KEY子程序。 5.6 PB子程序中的功能说明

PB0是实现切换功能,其经过消除抖动后实现第一路和第二路电压信息的切换显示,其源程序如下 MOV A,4EH

CJNE A,#0FEH,XDR MOV A,4FH CJNE A,#0FFH,XDR MOV A,20H CJNE A,#01H,JO MOV 48H,#01 MOV 2AH,#0 MOV 20H,#02H MOV 3AH,#00H SJMP XDR JO:MOV 20H,#01H MOV 48H,#01 MOV 3AH,#00H MOV 2AH,#0

;判断PB0是否有按下 ;判断前态是否为高电平

;判断此时的20H中的程序代码,为1则赋2,为2则赋1

;将48H单元清0,即将0.5S更新一次立即执行 ;将2AH单元清0,即将自动切换的计数清0 ;将无操作30S定时清0

;将48H单元清0,即将0.5S更新一次立即执行 ;将无操作30S定时清0

;将2AH单元清0,即将自动切换的计数清0

14

PB1是实现冻结显示某一路的电压信息,其源程序如下: MOV A,4EH

CJNE A,#0FDH,XER ;判断PB1是否有按下 MOV A,4FH CJNE A,#0FFH,XER ;判断前太是否为高电平 MOV 48H,#01 ;将0.5S更行立即更新 CPL 27H.0 ;标记进入冻结状态 MOV 3AH,#00H ;将无操作30S定时清0

PB2是实现进入、退出设定节拍,其源程序如下:

MOV A,4EH CJNE A,#0FBH,XFR MOV A,4FH CJNE A,#0FFH,XFR CPL 27H.2 MOV 20H,#03H MOV 48H,#01 MOV 3AH,#00H JB 27H.2,XFR MOV 20H,#01

;判断PB2是否有按下

;判断前太是否为高电平 ;标记进入设定状态 ;将程序代码赋给20H ;将0.5S更行立即更新 ;将无操作30S定时清0

;退出设定界面是马上显示第一路,即U1

5.7 改进后的切换功能

在没有改进的源程序,在设定节拍的时候,按下切换按键,也会实

现,这样就导致设定标志位为1,如果这时候按下键号,也会实现节拍的修改。所以我的改进就是在切换功能程序的前面加上节拍标志位的判断,这样就不会出现上述现象。 修改前的源程序:

MOV A,4EH CJNE A,#0FEH,XDR MOV A,4FH CJNE A,#0FFH,XDR MOV A,20H CJNE A,#01H,JO MOV 48H,#01 ……….

;判断PB0是否有按下 ;判断前态是否为高电平

;判断此时的20H中的程序代码,为1则赋2,为2则赋1 ;将48H单元清0,即将0.5S更新一次立即执行

15

修改后的程序:

MOV A,4EH

CJNE A,#0FEH,XDR ;判断PB0是否有按下 MOV A,4FH

CJNE A,#0FFH,XDR ;判断前态是否为高电平

JB 27H.2,XDR MOV A,20H

CJNE A,#01H,JO MOV 48H,#01 ……….

;在设定节拍时,切换功能无效

;判断此时的20H中的程序代码,为1则赋2,为2则赋1 ;将48H单元清0,即将0.5S更新一次立即执行

5.8标度转换中的完善

在没有改进的源程序中,我是将两路的电压轮流计算,最后送到显示更

新缓冲单元,这种方式在正常的第一路和第二路自动切换的情况下,可以满足系统的要求,但是要是在手动切换的情况下,就不能显示实时的数据显示,原因在于第一路和第二路轮流计算的时候,刚刚好在计算第一路的情况下,手动切换,这时还没有计算第二路的信息,只能显示上一次的计算结果,而且在0.5S才进行一次计算的情况下,会出现数码管跳窜现象。即切换后显示的是上次的计算结果,过了0.5S后才能显示最新的数据,无法实现一切换就显示最新的数据。修改后的程序,只要将两路的电压同时计算即可解决上述的问题。

16

六、系统功能与用户操作使用说明

6.1系统的功能

1. 定时切换及显示功能

八位LED7段数码管显示当前检测回路的标识、电压值及其单位或其他界面信息。 2. 设置节拍功能

两路被测电压值按设定的节拍交替测量与显示,电压值保留两位小数。 3.冻结功能

设置一个“冻结”按钮开关以操控进入或者退出当前回路的冻结显示方式,冻结显示期间每约0.5S更新一次测量值。 4.无操作时间超过30S后恢复基本运行状态功能 5.设置上下限功能 6.超上下限告警功能

6.2、使用说明

1.电压表进行短暂开机复位后,八位LED7段数码管交替显示两路电压值。 2.按下K15键可以进行功能选择,然后按下K1键便进入设置节拍功能。然后用键输入数值,然后按下K13确定就设置好节拍了。

3.按下K15进行功能选择,然后按K2,K3分别进入设置上下限。 4.按下K14进行冻结功能,可以使当前路的电压值停止不动。 5.K13和K12分别是确定和撤销键。

七、课程设计总结

两周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程

17

中,和同学们一起相互探讨,相互学习,相互监督。

课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程.”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础.

发现、提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。设计过程,好比是我们人类成长的历程,常有一些不如意,但毕竟这是第一次做,难免会遇到各种各样的问题。在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

我们通过查阅大量有关资料,并在小组中互相讨论,交流经验和自学,若遇到实在搞不明白的问题就会及时请教老师,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。

通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。这也激发了我今后努力学习的兴趣,我想这将对我以后的学习产生积极的影响。最重要的是,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。

最后,非常感谢老师对我们的悉心指导。

18

《微机原理及接口技术》

课程设计说明书

课题:专业:班级:姓名:学号:指导老师:

智能双路数字电压表 电子信息类

1

目录

1.设计任务„„„„„„„„„„„„„„„„„„„„„„„„„„ 2 1.1设计题目„„„„„„„„„„„„„„„„„„„„„„„„2 1.2设计目的„„„„„„„„„„„„„„„„„„„„„„„ 2 1.3设计任务„„„„„„„„„„„„„„„„„„„„„„ „2 2.总体方案设计与方案论证 „„„„„„„„„„„„„„„„„„4 2.1总体方案设计与论证„„„„„„„„„„„„„„„„„„„4 2.2温度采集、计算的方案设计与论证„„„„„„„„„„„„„5 3.系统总框图及总体软件设计说明„„„„„„„„„„„„„„„ 6 4.系统资源分配图„„„„„„„„„„„„„„„„„„„„„„ 7 5.局部程序设计说明„„„„„„„„„„„„„„„„„„„„„ 8 5.1显示更新子程序„„„„„„„„„„„„„„„„„„„„„„ 8 5.2温度采集存储子程序„„„„„„„„„„„„„„„„„„„„„9 5.3PB口消抖和冻结子程序„„„„„„„„„„„„„„„„„„„ 11 5.4 自动巡显和手动切换子程序„„„„„„„„„„„„„„„„„ 12 5.5转换成温度内码的子程序„„„„„„„„„„„„„„„„„„ 13 5.6温度内码转化为BCD码的子程序„„„„„„„„„„„„„„„15 5.7键盘扫描和节拍设定的子程序„„„„„„„„„„„„„„„„„17 5.8改进后设定温度上下限的子程序„„„„„„„„„„„„„„„„19 5.9改进后实时钟调整的子程序„„„„„„„„„„„„„„„„„„20 6.系统功能及其操作说明-„„„„„„„„„„„„„„„„„„„„21 7.调试记录及调试结果-„„„„„„„„„„„„„„„„„„„„„ 21 8.课程设计总结-„„„„„„„„„„„„„„„„„„„„„„„ 22

2

附录一:源程序清单„„„„„„„„„„„„„„„„„„„„„„ 23 附录二:改进后的程序„„„„„„„„„„„„„„„„„„„„„ 38

1、设计任务

1.1设计题目

智能双路数字电压表

1.1设计目的

通过小型微机应用产品的设计与调试过程,运用《微机原理及接口

技术》课程所学的基本知识,在设计中加以应用,进而得到理解、巩固和提高,学习掌握分析与解决实际问题的方法与手段,提高设计、编程与调试的实际动手能力,作为工程技术工作的一次基本训练。

1.2设计任务

设计一个以单片机为核心的智能双路数字电压表,通过多选一电子

模拟开关及A/D转换器巡回采集两路被测电压的数据,进行信号处理及标度变换,以一定的节拍时间交替显示,应有显示的符号标示被测信号源回路,并可通过按钮开关操控冻结或切换形式,可通过键盘进行参数设计,编程并在单片机实验上模拟调试实现。

(一) 基本设计要求

1、八位LED 7段数码管显示当前检测回路的标识、电压值及其单位或

其他界面信息。

2、电压测量范围0V~4.96V,应有输入被测电压超量程判断及提示。 3、应采取数字滤波技术提高测量与显示的稳定性。

4、基本显示模式为:两路被测电压值按设定的节拍交替测量与显示,

3

电压值保留二位小数。

5、设置一个“冻结”按钮开关以操控进入或退出当前回路的冻结显示方式,冻结显示期间每约0.5S更新一次测量值。

6、设置一个“切换”按钮开关以操控强行切换显示下一检测回路数据。 7、对开关量输入信号须进行软件消抖动处理。

8、键盘设定交替测量显示的节拍范围为0.5S~5.0 S,设定分辨率0.1V,设定界面应有醒目的当前修改位提示。

9、无操作时间超过30秒钟后自动恢复为基本的运行状态。

(二) 功能扩展提示:(选做)

1、开机进行接口部件及数码显示器、指示灯、讯响器等自检。 2、每隔一定的时间,穿插显示实时钟信息一定的时间,通过键盘设定其间隔参数。

3、扩展显示模式二:同时显示两路电压测量数据,每约0.5S更新一次测量值,电压值保留一位小数。设置一个“模式”拨动开关以选择两种显示模式之一。

4、超上限告警功能,通过键盘设定电压上限值范围为0V~4.96V ,监测到某回路电压超上限时有相应显示内容的闪烁提示、超上限LED指示灯亮、讯响告警及继电器触点输出控制功能。

5、实现带有回差的超上限告警功能,通过键盘设定回差值的范围为±0 .10V~±0.50V,设定回差分辨率0.01V。 6、添加超下限告警功能。

7、添加多挡量程功能,如1.24V量程、0.31V量程。 8、其他功能扩展。

4

2.

总体方案设计与方案论证

2.1总体方案的设计与方案论证.

本课程设计的要求是显示外部采集2路电压,按一定的节拍进行巡

回显示,还有两路之间来回切换功能,某一路的冻结功能,对两路交替显示的节拍进行设定,无操作返回显示2路电压的功能,每个功能都是根据相应的按键是否操作去执行相应地程序,进而实现相应的功能,所以按键操作的正确判断是程序执行的关键,其总的流程图如下见如下框图。

图1-系统软件设计的整体思路框图

2.2开关量的方案设计与论证

方案一、表决法 方案二、滚动滤波法

对开关量得输入进行滚存的方式,每次调用到开关量子程序

时,就把当前的状态值赋给前态,依次把前几次的采集值推为旧态,当这4次的开关量采集的值一致时,才把当前的采集值采集存为新态,在通过新态和旧态的值比较就可以达到消除抖动的效果,这种方法还可以实现按键是上升沿有效还是下降沿有效。

2.3显示查表的方案设计与论证

方案一 把带小数点的断码也写进断码表,显示个位的时候直接查找

有带符号位的断码。

方案二 显示过程中先判断显示是否到达个位,如果到了就把个位的

数据的最高位清零

上述的两种方案中,第一种方案比较麻烦,要编写特定的带

符号位断码,要判断是否到显示个位时,才能查找带符号位的断码,虽然可以实现显示个位时可以实现显示小数点,但是编写程序时,逻辑较方案二太过于麻烦,所以我选择了方案二

2.4电压采集、计算方法与论证

方案一、采用ADC0809对两路的电压的模拟量得采集、转换成数字量,

在经过标度转换使其范围在0~4.98V,采集进来的数字量采用滚存

的方式,存储最新的4次电压值,并用其平均值进行标度转换,在标度转化中,对第一路和第二路的电压分别进行计算,最后把其转换成BCD

6

码送到显示缓冲区等待显示。

方案二、采用ADC0809对两路的电压进行采集,转换成数字量,经过标度转换使其量程在0~4.98,在标度转换中对第一路的电压值和第二路的电压值轮流计算,得到的数据为16进制数,最后把其转换成BCD码送到显示缓冲区等待显示

总上所述,在方案二中,没有采用滚存的方式,这样外界的电压波动

很频繁时,会造成显示波动,给人的第一感觉好像是这个系统不够完善,还有在进行标度转换时,对两路的电压轮流进行计算,这样确实能够实现系统空间的节约,但是如果使用切换功能时,此时刚刚还还没有轮到某一路计算及标度转换时,这样显示缓冲区得数据还是前一次的数据,无法显示最新的数据,经过比较,方案一在这两点上比方案二好,但是方案一在转换标度时使用系统的空间比方案二大,所以我选择方案一。

7

3.系统总框图及总体软件设计说明

图3-系统软件设计的总流程图并解释

4.系统资源分配表

单元 10H 11H 12H 13H 3DH 3EH 3FH 40H 41H 42H 43H 44H 45H 46H

功能

1路电压内码低字节(二进制) 1路电压内码高字节(二进制) 2路电压内码低字节(二进制) 2路电压内码高字节(二进制) 电压百分位 电压十分位 电压个位 1路1次 2路1次 1路2次 2路2次 1路3次 2路3次 1路4次

9

已用空间 29H 2AH 2BH 2CH 2DH 2EH 2FH 30H 31H 32H 33H 34H 35H 36H

47H 2路4次

48H AD采样信号地址低字节位 49H AD结果保持单元 4BH 进程码存放 BIT0 冻结标志位 1冻结 BIT1 重新输入缓冲使能位 BIT3 闪20H 烁亮灭标志位

4CH 节拍时间 单位0.1秒

4DH 节拍辅助单元 10毫秒计数 21H 输出小数点标志位 66H 判断当前按下的矩阵按键的值没有按下位10H 25H 输入允许标志位 26H 当前输入位、闪烁标志位 4EH 闪烁计数 59H 当前输入位允许输入最小值 5AH 当前输入位允许输入最大值 55H 下限电压内码低字节(二进制) 56H 下限电压内码高字节(二进制) 57H 上限电压内码低字节(二进制) 58H 上限电压内码高字节(二进制) 4FH 十六进制低字节 50H 十六进制高字节 51H 个位 52H 十位 53H 百位 5BH 保存当前选择路对应内存首地址 5CH 0.1秒计时单元 22H 报警标志位 5DH 回差值 单位0.01V 5EH 冻结时保存节拍值 5FH 30秒无操作计时 C:撤销 D:确认 F:功能 E:锁定 B:切换

5.局部程序设计说明

10

37H 38H 39H 3AH 3BH 3CH 4AH 54H 60H 61H 62H 63H 64H 65H

5.1开关量采集子程序

开关量消除抖动采用滚动虑波的方式消除抖动,其原理如下

49H 每次采集的信号前,先把49H~4DH内的 值一次往后推,再把采集的信号存入49H 中,再通过比较49H~4DH的值,如果这 四个单元内的值一致,则说明抖动时间已 过,再把49H的采集的值存入4EH,最 后通过比较4FH和4EH内的值来判断按 键是否按下,还可以根据编程逻辑使得按

键在下降沿有效还是上升沿有效。

5.2拆字子程序

首先判断20H里面存的程序代码,在跳到相应的程序段去执行。其原理图如下:

11

拆字子程序流程图

5.3电压采集子程序

两路电压采集是采用轮流采集,滚动储存的方式。通过标志位来判断是

对第一路采集还是对第二路采集。其流程图如下:

A/D采集流程图 5.4标度转换子程序

这一过程是整个程序的核心所在,主要利用(D1+D2+D3+D4)*125/256这个标

度转换公式,这样就可以实现所测的电压量程在0~4.98V,在四次采集的数值乘以125的原理计算如下,因为计算的结果为3个字节的16进制数,所以除以256就相当于把

12

这三个字节向有移动8位,高位自动补0,当然还要判断最后的那个字节是否要向上进位(0舍1入)。

4D低字节*125 存放4D高字节*125

在上述过程中,最后结果取其前面两个字节,把最后一个字节0舍1入

后,就相当于除以256,最后得到2个字节的16进制数即为转换标度后的数值。最后再把16进制数转换成BCD码送到显示缓冲单元即可。 5.5键盘扫描子程序

键盘扫描是利用键反转法读出键盘的电平值,通过查键码表,把电平值转化为K0-K16键分别变为0-16的数字,通过判断寄存器中的键号,就能确定是那一个按键按下了。

键反转法的原理:(1)列线输出为全‘0’,随后输入行线电平如有‘0’,则‘0’所在的行就是按键所在行。

判断节拍的输入范围见源程序中的KEY子程序。 5.6 PB子程序中的功能说明

PB0是实现切换功能,其经过消除抖动后实现第一路和第二路电压信息的切换显示,其源程序如下 MOV A,4EH

CJNE A,#0FEH,XDR MOV A,4FH CJNE A,#0FFH,XDR MOV A,20H CJNE A,#01H,JO MOV 48H,#01 MOV 2AH,#0 MOV 20H,#02H MOV 3AH,#00H SJMP XDR JO:MOV 20H,#01H MOV 48H,#01 MOV 3AH,#00H MOV 2AH,#0

;判断PB0是否有按下 ;判断前态是否为高电平

;判断此时的20H中的程序代码,为1则赋2,为2则赋1

;将48H单元清0,即将0.5S更新一次立即执行 ;将2AH单元清0,即将自动切换的计数清0 ;将无操作30S定时清0

;将48H单元清0,即将0.5S更新一次立即执行 ;将无操作30S定时清0

;将2AH单元清0,即将自动切换的计数清0

14

PB1是实现冻结显示某一路的电压信息,其源程序如下: MOV A,4EH

CJNE A,#0FDH,XER ;判断PB1是否有按下 MOV A,4FH CJNE A,#0FFH,XER ;判断前太是否为高电平 MOV 48H,#01 ;将0.5S更行立即更新 CPL 27H.0 ;标记进入冻结状态 MOV 3AH,#00H ;将无操作30S定时清0

PB2是实现进入、退出设定节拍,其源程序如下:

MOV A,4EH CJNE A,#0FBH,XFR MOV A,4FH CJNE A,#0FFH,XFR CPL 27H.2 MOV 20H,#03H MOV 48H,#01 MOV 3AH,#00H JB 27H.2,XFR MOV 20H,#01

;判断PB2是否有按下

;判断前太是否为高电平 ;标记进入设定状态 ;将程序代码赋给20H ;将0.5S更行立即更新 ;将无操作30S定时清0

;退出设定界面是马上显示第一路,即U1

5.7 改进后的切换功能

在没有改进的源程序,在设定节拍的时候,按下切换按键,也会实

现,这样就导致设定标志位为1,如果这时候按下键号,也会实现节拍的修改。所以我的改进就是在切换功能程序的前面加上节拍标志位的判断,这样就不会出现上述现象。 修改前的源程序:

MOV A,4EH CJNE A,#0FEH,XDR MOV A,4FH CJNE A,#0FFH,XDR MOV A,20H CJNE A,#01H,JO MOV 48H,#01 ……….

;判断PB0是否有按下 ;判断前态是否为高电平

;判断此时的20H中的程序代码,为1则赋2,为2则赋1 ;将48H单元清0,即将0.5S更新一次立即执行

15

修改后的程序:

MOV A,4EH

CJNE A,#0FEH,XDR ;判断PB0是否有按下 MOV A,4FH

CJNE A,#0FFH,XDR ;判断前态是否为高电平

JB 27H.2,XDR MOV A,20H

CJNE A,#01H,JO MOV 48H,#01 ……….

;在设定节拍时,切换功能无效

;判断此时的20H中的程序代码,为1则赋2,为2则赋1 ;将48H单元清0,即将0.5S更新一次立即执行

5.8标度转换中的完善

在没有改进的源程序中,我是将两路的电压轮流计算,最后送到显示更

新缓冲单元,这种方式在正常的第一路和第二路自动切换的情况下,可以满足系统的要求,但是要是在手动切换的情况下,就不能显示实时的数据显示,原因在于第一路和第二路轮流计算的时候,刚刚好在计算第一路的情况下,手动切换,这时还没有计算第二路的信息,只能显示上一次的计算结果,而且在0.5S才进行一次计算的情况下,会出现数码管跳窜现象。即切换后显示的是上次的计算结果,过了0.5S后才能显示最新的数据,无法实现一切换就显示最新的数据。修改后的程序,只要将两路的电压同时计算即可解决上述的问题。

16

六、系统功能与用户操作使用说明

6.1系统的功能

1. 定时切换及显示功能

八位LED7段数码管显示当前检测回路的标识、电压值及其单位或其他界面信息。 2. 设置节拍功能

两路被测电压值按设定的节拍交替测量与显示,电压值保留两位小数。 3.冻结功能

设置一个“冻结”按钮开关以操控进入或者退出当前回路的冻结显示方式,冻结显示期间每约0.5S更新一次测量值。 4.无操作时间超过30S后恢复基本运行状态功能 5.设置上下限功能 6.超上下限告警功能

6.2、使用说明

1.电压表进行短暂开机复位后,八位LED7段数码管交替显示两路电压值。 2.按下K15键可以进行功能选择,然后按下K1键便进入设置节拍功能。然后用键输入数值,然后按下K13确定就设置好节拍了。

3.按下K15进行功能选择,然后按K2,K3分别进入设置上下限。 4.按下K14进行冻结功能,可以使当前路的电压值停止不动。 5.K13和K12分别是确定和撤销键。

七、课程设计总结

两周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程

17

中,和同学们一起相互探讨,相互学习,相互监督。

课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程.”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础.

发现、提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。设计过程,好比是我们人类成长的历程,常有一些不如意,但毕竟这是第一次做,难免会遇到各种各样的问题。在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

我们通过查阅大量有关资料,并在小组中互相讨论,交流经验和自学,若遇到实在搞不明白的问题就会及时请教老师,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。

通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。这也激发了我今后努力学习的兴趣,我想这将对我以后的学习产生积极的影响。最重要的是,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。

最后,非常感谢老师对我们的悉心指导。

18


相关内容

  • 计算机科学与技术专业本科课程简介
  • 计算机科学与技术专业本科课程简介 计算机导论 先修课程:无 计算机导论重要介绍数字计算机的发展历史.应用和特点,使学生从整体上对计算机系统的构成包括软件和硬件组成有初步的了解.着重介绍当前主流操作系统如DOS 文件系统和及WINDOWS 操作系统的使用及维护.在实用技术上,掌握文字处理.电子表格以及 ...

  • arduino循迹小车毕业论文
  • 福建船政交通学院 目 录 摘要 ............................................................. 2 引 言 ........................................................... 2 1 Ar ...

  • 中国矿业大学
  • 中国矿业大学2011年硕士研究生招生专业目录 专业代码.名称及研究方向 招生人数 考试科目 备注 001 资源与地球科学学院 联系电话:0516-83591009 070503 地图学与地理信息系统 01空间分析方法与GIS建模理论 02应用地理信息系统 03数字城乡规划 04数字矿山多元地质信息集 ...

  • 微机接口技术在单片机中的应用
  • 第16卷第2期 2005年4月 JOURNALOFGUIZHOUEDUCATIONALCOLLEGE(NaturaiSciences) 贵州教育学院学报(自然科学) Voi.16.No.2 Apr.2005 微机接口技术在单片机中的应用 唐晓慧 (贵州教育学院数学系,贵州贵阳 550003) 摘要: ...

  • 微机原理课程设计报告(电子秒表)
  • 电子与控制工程学院 计算机原理与接口技术 课 程 设 计 姓 名 高强强 学 号 3206100232 专 业 建筑设施智能技术 设计题目 可任意启动停止的电子秒表 指导老师 傅攀峰 目录 1电子秒表课程设计要求············································ ...

  • 微机原理与接口技术_论文
  • 直流电机速度控制器设计 物理与电气信息工程学院 09级自动化2班 孙长伟 [1**********]3 摘要:速度是直流电机运行中的一个重要物理量,如何让正确的快速而又方便地控制电机速度极为重要.本文阐述了基于intel8279单片机的直流电机速度控制系统的设计特点,介绍了直流电机进行速度控制的相关 ...

  • 大学专业课程设置与毕业去向(一)
  • 大学专业课程设置与毕业去向(一) 经济贸易系 报关与国际货运专业 培养目标 本专业培养拥护党的基本路线,适应生产.建设.管理.服务第一线需要,德.智.体.美.劳全面发展,具有报关与国际货运专业的知识,掌握物流管理专业的技能,拥有物流管理专业的能力,适应物流管理专业工作的高等技术应用性专门人才. 职业 ...

  • [微机原理与接口]实验报告模板
  • <微机原理与接口> 实 验 报 告 学 院: 专 业: 班级学号:学生姓名:实验日期: 指导老师: 五邑大学信息学院接口与通信实验室 实 验 一 一. 实验名称:微机原理实验平台操作及汇编程序设计 二. 实验目的: 1. 了解MFID实验平台组成结构及使用方法: 2. 熟悉MFID实验平 ...

  • 基于AT89C51单片机的水位控制系统的课程设计
  • 基于单片机的水位控制系统设计 目录 1 概述 . .............................................................................................................. 3 2 设计的基本任务和要求 ...