当前位置:文档之家› 全自动豆浆机控制程序的设计说明书

全自动豆浆机控制程序的设计说明书

《微机原理及接口技术》课程设计说明书课题: 全自动豆浆机控制程序的设计专业: 电子信息工程班级: 电子1102姓名: 张杰学号: 3220806485指导老师:2013 年 12 月 28 日第一章设计任务及目标 (3设计目的 (3设计任务 (3基本设计要求 (3功能扩展 (3设计环节及进程安排 (3第二章总体方案设计及方案论证 (4总体方案设计 (4实时钟的调校方式 (5键盘的扫描方式 (5定时器方式 (6开关量输入消抖模块的选择 (6倒计时1S方法选择 (7第三章总体软件设计说明及总工作流程 (8 总工作流程 (8总体软件设计说明 (10第四章系统资源分配及数据定义说明 (11 单元分配以及各个标志位注释 (11第五章局部程序设计说明 (131.自检模块 (132.键盘扫描子模块 (143.按键消抖子模块 (144.蜂鸣器LED缓冲子模块 (155.1分钟内取消模块 (156.拆字子模块 (167.调用时钟设定子模块 (178.选择工作模式子模块 (189.水位告警子模块 (1810.模拟水温子模块 (1911.无效启动子模块 (2012.实时钟子模块 (2113.显示更新子模块 (2114.启动子模块 (2215.煮浆子模块 (2216.保温子模块 (23第六章系统功能及操作说明 (24系统功能 (24用户界面操作说明 (25第七章存在问题及改进程序说明 (27 模拟水温模块 (27水位告警模块 (28第八章课程设计总结 (29附录:程序代码清单第一章设计任务及目标设计课题:全自动豆浆机控制程序的设计设计目的:通过两个礼拜在实验室亲自动手操作,熟悉和理解《微机原理及接口技术》上课老师所讲的内容,将所学知识亲自动手验证,借此熟悉和掌握书中知识,并加强自己动手设计程序的能力。

设计任务:本次为期两个礼拜的课程设计任务是设计一个全自动豆浆机控制程序,通过LED灯,数码管模拟豆浆机的各个流程,主要要实现豆浆机的预加热,预打浆,三次加热打浆,而后进行煮浆完成整个豆浆的流程,中间加入水位告警,防溢告警功能,并有实时钟功能。

基本设计要求:1、开机进行适当的有关接口部件及数码显示器、指示灯、讯响器等自检。

2、八位LED 七段数码管在常态下作为实时钟显示,其余状态下有工步号,倒计时,温度显示。

3、键盘中能够对实时钟进行调校功能按键。

4、设有高低水位报警功能,在高水位状态下启动,LED灯闪3下,蜂鸣器同步响一秒,在低水位状态下启动,LED灯闪1下,蜂鸣器同步响一秒。

5、具有能完成基本煮豆浆中的预加热-预打浆,然后加热-打浆总共3次的程序。

6、具有在启动后能够在一分钟以内取消煮浆的功能模块。

7、实现在3次打浆完成后进入240S倒计时的煮浆功能模块。

8、在煮浆功能模块中有对水位进行检测,超出溢电极则停止加热,待恢复水位持续5秒后才重新开启加热煮浆。

9、煮浆完成后进行以20%功率加热的保温模块。

功能扩展:1、可扩展果汁功能模块。

2、设定电机关闭和重新开启之间必须间隔15秒。

3、实时钟模块可设置为4X4模块,伴有位闪,按键赋值功能。

4、改良告警提示音为音乐模块。

设计环节及进程安排1、布置课题,明确任务、总体方案设计 1天2、主体功能控制程序设计及调试 5天3、程序综合联调及功能完善、改进、扩展 3天4、答辩及编写设计说明书 3天第二章总体方案设计及方案论证本次课程设计的课题是设计全自动豆浆机模拟程序,需要运用微机原理及接口技术课本内容进行设计,设计的豆浆机不单单仅有煮豆浆功能。

还带有水位报警,实时钟以及实时钟调校功能,模拟水温等功能。

总体设计方案对于这次的课程设计,按照老师所讲,我们所采取的程序设计是按照模块化来进行程序的设计。

将豆浆机的主工作流程作为一个模块,再加入其它功能的模块,比如实时钟调校模块,水位告警模块,模拟水温模块等,通过各个模块之间的循环调用,以此来完成整个全自动豆浆机的程序设计。

整个程序由自检模块,程序初始化,15个子模块组成的主流程循环调用,中断模块,延时子模块构成。

实时钟的调校方式方案一:运用4X4键盘对应数字输入实时钟调整通过对4X4键盘模块的程序设计,使键盘模块能够在实时钟调校功能中实现时分秒准确调时,并且有退格,取消,确定等按键调整实时钟调校,相对应的小时十位只能输入0~2,小时个位只能按键输入0~4,分钟十位输入0~6,分钟个位输入0~9,能够较准确的对实时钟进行调校。

方案二.:通过调时键进入调时,四个按键对小时,分钟进行+1-1调校。

这个方案是更为简单的方案,只需要有个进入调时的按键和一个调时完成确定按键,以及4个加减时钟按键。

通过对键号的扫描判断按键是否按下以此来实现对实时钟的调校功能。

这个方案最好的优点是简化了调校功能,使时钟能够以更简便的方式进行调校,为产品的外观设计提供了很大的方便。

通过上面的综合判断实时钟的调校我们选择方案二——按键加减调校。

键盘的扫描方式方案一:扫描法首先识别键盘有无键按下,驱动所有列线为‘0’,输入各行线电平如果有‘0’,就说明有键按下,如果行线电平全‘1’,则全部无键按下。

其次是如有键被按下,识别具体的按键。

依序驱动某一列为‘0’,其余列均为‘1’,输入各行线电平,如果某行线电平为‘0’,可确定此行列交叉点处的按键被按下;如果行线电平全为‘1’则本列无按键按下。

这种方式太占用CPU的工作时间。

方案二:线反转法首先列线输出为全‘0’,随后输入行线电平如有‘0’,则‘0’所在的行就是闭合的按键所在行;无‘0’则无键闭合。

其次行线输出为全‘0’,随后输入列线电平如有‘0’,则‘0’所在的列就是闭合的按键所在列;无‘0’则无键闭合。

直通结合上述两步,可确定按键所在行和列。

这种方式非常简单,并且很实用。

综合以上的分析,我们选择方案二——线反转法计数方式方案一:13位计数方式--方式0定时器/计数器方式0 一共是有13位的计数方式。

方式0是为兼容MCS-48而设,初值计算麻烦,在实际应用中,一般不用方式0。

并且存在一个是时间误差,不能适用于精确定时。

方案二:16位计数方式--方式1定时器/计数器方式1 一共是有16位的计数方式,由于它每个扫描周期都会有3~8个Tm(机器周期的时间误差,主要是用于要求不是很精确地定时,因为有随机性的误差产生。

方案三:8位计数自动重装工作方式--方式2定时器/计数器方式2为自动恢复初值(初值会自动重装的8位定时器/计数器,当其计数溢出的时候,系统会自动重装初值,重新开始计数。

这种工作方式可以省去用户软件中重装初值的指令执行时间,可以做到精确地定时时间。

综上所述,我们是要求能做到精确定时,所以选择方式2按键输入消抖模块的选择对于开关量输入的消抖处理一般有以下两种种处理方法。

方案一:软件延时消抖即检测出键闭合后执行一个延时程序,产生5ms~10ms的延时,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。

当检测到按键释放后,也要给5ms~ 10ms的延时,待后沿抖动消失后才能转入该键的处理程序。

方案二:滚动滤波消抖法滚动滤波消抖法就是通过滚动滤波法的原理,我们将PB0~PB7电平输入,并进行五次滚存消抖,新态存2EH,旧态存2FH,这个方法能够较好的完成按键的消抖,排除按键抖动所产生的不良效果,完善了按键功能。

所以我们对消抖模块选择滚存消抖。

倒计时1S方法选择方案一:在非倒计时显示情况下,延时可采取调用主程序,重复相应次数,得到相应延时时间。

如主程序每调用一次需10ms,调用100次,则得到1s的延时。

在倒计时显示情况下,采取在中断设置1s到标志位,用到倒计时开启标志位即可。

方案二:每次延时即开启1s到标志位。

两个方案相比较,方案一比较简单、灵活,所以采取第一种方案来进行精准计时。

第三章总体软件设计说明及总工作流程总工作流程如图所示主流程自检模块程序初始化B蜂鸣器LED 灯缓冲子模块调用按键消抖子模块1分钟内取消子模块显示更新子模块工作模式选择模块调用拆字子模块时钟设定子模块调用键盘扫描子模块启动子模块A水位告警子模块模拟水温子模块煮浆子模块保温子模块拨动开关子模块无效启动子模块B总体软件设计说明本次的课程设计通过对15个子模块的循环调用来完成全自动豆浆机的模拟功能,并且采用定时器方式2精准计时。

拆字子程序:常态下(待机,保温送时分秒到显缓,其余则送工步号,倒计时到显缓。

显示更新子程序:根据显缓单元内容驱动八位数码管。

时钟设定子程序:通过扫描键号判断调时键是否按下借以对实时钟进行调校。

键盘扫描子程序:通过线反转法扫描按键键号,旧键号存65H,新键号存64H。

工作模式子程序:当无工作模式时,按下功能选择键,则显示豆浆模式,而后再按时,工作模式在果汁和豆浆两种模式中切换。

1分钟取消子程序:启动1分钟内,通过检查启动键是否再被按下,是则取消运行。

蜂鸣器LED灯缓冲子程序:根据缓冲单元内容驱动蜂鸣器和LED灯按键消抖子程序:输入PB0~PB7电平,经5次滚存消抖后,旧态存2FH,新态存2EH。

保温子程序:以20%的功率进行加热保温。

水位告警子模块:通过检测高低水位,若有高水位或者低水位,则启动时会告警并退出。

煮浆子模块:以240S倒计时加热煮浆,若煮浆过程中检测到超水位,则停止加热,待水位恢复持续5秒后再重新开启加热。

无效启动子模块:检测功能未选择时启动键是否按下,是则告警并退出。

拨动开关子模块:输入SW0~SW7电平到缓冲单元,输出驱动L8~L15。

启动子模块:功能选择后判断启动键是否按下,是则进入预加热,预加热达到35度时,则进入预打浆。

开启电机,关闭加热。

待25秒打浆倒计时结束后,关闭电机,开启加热。

加热达到50度时进入打浆模式,开电机,关加热。

以下再重复加热打浆2次后进入煮浆。

第四章系统资源分配及数据定义说明微处理器内部存储单元分配及数据定义微处理器内部存储单元数据定义23H豆浆进程码24H.0是否进行调时标志位25H LED灯闪烁进程码26H.0闪烁标志位26H.1倒计时标志位26H.2响标志位26H.3开关蜂鸣器标志位26H.4高低水位告警区分标志位26H.5保温标志位26H.6满1秒标志位26H.7倒计时百位减到0标志位27H工步号28H驱动P1标志位29H滚存消抖存储单元2AH滚存消抖存储单元2BH滚存消抖存储单元2CH滚存消抖存储单元2DH滚存消抖存储单元2EH新态按键存储单元2FH旧态按键存储单元30H-37H显示缓存单元38H200us计数单元39H1/100s计数单元3AH实时钟秒钟存储单元3BH实时钟分钟存储单元3CH实时钟小时存储单元47H打浆,加热4次设置初值53H闪闪闪延时200ms59H倒计时十位,个位。

5AH倒计时百位(千位不显示 5BH保温16秒设置初值5DH保温4秒设置初值5FH满一秒计数64H当前新扫描键号值存储单元65H10ms前扫描到键号存储单元67H保温讯响1分钟初值69H1分钟内取消初值6BH1分钟无效标志位第五章局部程序设计说明1.自检模块功能简述该模块主要功能为在开机时进行有关接口部件及数码显示器、指示灯、蜂鸣器等适当自检。

相关主题