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

上传人:微*** 文档编号:67341242 上传时间:2022-03-30 格式:DOCX 页数:38 大小:220.84KB
收藏 版权申诉 举报 下载
全自动豆浆机控制程序的设计说明书_第1页
第1页 / 共38页
全自动豆浆机控制程序的设计说明书_第2页
第2页 / 共38页
全自动豆浆机控制程序的设计说明书_第3页
第3页 / 共38页
资源描述:

《全自动豆浆机控制程序的设计说明书》由会员分享,可在线阅读,更多相关《全自动豆浆机控制程序的设计说明书(38页珍藏版)》请在装配图网上搜索。

1、微机原理及接口技术课程设计说明书课题:全自动豆浆机控制程序的设计专业:电子信息工程班级:电子1102姓名:张杰学号:3220806485指导老师:2013年12月28日移立工求不葭Fujian University of Technology第一章设计任务与目标(3设计目的(3设计任务(3基本设计要求(3功能扩展 (3设计环节与进程安排(3第二章总体方案设计与方案论证 (4总体方案设计(4实时钟的调校方式(5键盘的扫描方式(5定时器方式(6开关量输入消抖模块的选择 (6倒计时 1S 方法选择 (7第三章总体软件设计说明及总工作流程(8总工作流程(8总体软件设计说明 (10第四章系统资源分配及数

2、据定义说明 (11单元分配以及各个标志位注释(11第五章局部程序设计说明 (131 .自检模块(132 .键盘扫描子模块(143 .按键消抖子模块(144 .蜂鸣器LED 缓冲子模块(155.1分钟内取消模块(156 .拆字子模块(167 .调用时钟设定子模块(178 .选择工作模式子模块(189 .水位告警子模块(1810 .模拟水温子模块(1911 .无效启动子模块(20U,才为之工求测咳Fujian University of Technology12 .实时钟子模块(2113 .显示更新子模块(2114 .启动子模块(2215 .煮浆子模块(2216.保温子模块(23第六章系统功能与操

3、作说明(24系统功能(24用户界面操作说明(25第七章存在问题与改进程序说明(27模拟水温模块(27水位告警模块(28第八章课程设计总结(29附录:程序代码清单杨立工求不陵Fujian University of Technology第一章设计任务与目标设计课题:全自动豆浆机控制程序的设计设计目的:通过两个礼拜在实验室亲自动手操作,熟悉和理解微机原理及接口 技术上课老师所讲的内容,将所学知识亲自动手验证,借此熟悉和掌握书中知识,并 加强自己动手设计程序的能力。设计任务:本次为期两个礼拜的课程设计任务是设计一个全自动豆浆机控制程 序,通过LED灯,数码管模拟豆浆机的各个流程,主要要实现豆浆机的预

4、加热,预打浆, 三次加热打浆,而后进行煮浆完成整个豆浆的流程,中间加入水位告警,防溢告警功能,并有实时 钟功基本设计要求:1、开机进行适当的有关接口部件及数码显示器、指示灯、讯响器等自检。2、八位LED七段数码管在常态下作为实时钟显示,其余状态下有工步号,倒计 时,温度显示。3、键盘中能够对实时钟进行调校功能按键。4、设有高低水位报警功能,在高水位状态下启动,LED灯闪3下,蜂鸣器同步响 一秒,在低水位状态下启动,LED灯闪1下,蜂鸣器同步响一秒。5、具有能完成基本煮豆浆中的预加热-预打浆,然后加热-打浆总共3次的程 序。6、具有在启动后能够在一分钟以内取消煮浆的功能模块。7、实现在3次打浆完

5、成后进入240S倒计时的煮浆功能模块。8、在煮浆功能模块中有对水位进行检测,超出溢电极则停止加热,待恢复水位持 续5秒后才重新开启加热煮浆。9、煮浆完成后进行以20%功率加热的保温模块。功能扩展:1、可扩展果汁功能模块。2、设定电机关闭和重新开启之间必须间隔 15秒。3、实时钟模块可设置为4X4模块伴有位闪,按键赋值功能。4、改良告警提示音为音乐模块。统移立工才逐限Fujian University of Technology设计环节及进程安排1、布置课题,明确任务、总体方案设计1天2、主体功能控制程序设计及调试 5天3、程序综合联调及功能完善、改进、扩展 3天4、答辩及编写设计说明书3天畿杉

6、立工共不限r鹤J Fujian Untversity of Technology第二章总体方案设计与方案论证本次课程设计的课题是设计全自动豆浆机模拟程序,需要运用微机原理与接口技术课本内容进行设计,设计的豆浆机不单单仅有煮豆浆功能。还带有水位报警,实 时钟以及实时钟调校功能,模拟水温等功能。总体设计方案对于这次的课程设计,按照老师所讲,我们所采取的程序设计是按照模块化来进 行程序的设计。将豆浆机的主工作流程作为一个模块,再加入其它功能的模块,比如 实时钟调校模块水位告警模块,模拟水温模块等,通过各个模块之间的循环调用,以此 来完成整个全自动豆浆机的程序设计。整个程序由自检模块,程序初始化,15

7、个子模块组成的主流程循环调用,中断模块, 延时子模块构成。实时钟的调校方式方案一:运用4X4键盘对应数字输入实时钟调整通过对4X4键盘模块的程序设计,使键盘模块能够在实时钟调校功能中实现时 分秒准确调时,并且有退格,取消确定等按键调整实时钟调校,相对应的小时十位只能输入02,小时个位只能按键输入04,分钟十位输入06,分钟个位输入09,能够较 准确的对实时钟进行调校。方案二.:通过调时键进入调时,四个按键对小时,分钟进行+1-1调校。这个方案是更为简单的方案,只需要有个进入调时的按键和一个调时完成确定 按键,以及4个加减时钟按键。通过对键号的扫描判断按键是否按下以此来实现对 实时钟的调校功能。

8、这个方案最好的优点是简化了调校功能,使时钟能够以更简便的方式进行调校, 为产品的外观设计提供了很大的方便。通过上面的综合判断实时钟的调校我们选择方案二 按键加减调校。键盘的扫描方式方案一:扫描法首先识别键盘有无键按下,驱动所有列线为0输入各行线电平如果有0就说 明有键按下,如果行线电平全1则全部无键按下。其次是如有键被按下,识别具体的 按键。依序驱动某一列为0其余列均为1输入各行线电平,如果某行线电平为0 可确定此行列交叉点处的按键被按下;如果行线电平全为恻本列无按键按下。这 种方式太占用CPU的工作时间。醴竹立工求不隈Fujian Uni ver s ity ot Te c h nol og

9、y方案二:线反转法首先列线输出为全0随后输入行线电平如有0则,撕在的行就是闭合的按键 所在行;无00无键闭合。其次行线输出为全 0随后输入列线电平如有0则,所 在的列就是闭合的按键所在列;无则无键闭合。直通结合上述两步,可确定按键所在行和列。这种方式非常简单,并且很实用综合以上的分析,我们选择方案二一一线反转法移立工於弱Fujian University of Technoi计数方式方案一 :13位计数方式-方式0定时器/计数器方式0 一共是有13位的计数方式。方式0是为兼容MCS-48而 设,初值计算麻烦,在实际应用中,一般不用方式00并且存在一个是时间误差,不能适 用于精确定时。方案二:1

10、6位计数方式-方式1定时器/计数器方式1 一共是有16位的计数方式,由于它每个扫描周期都会有 38个Tm(机器周期的时间误差,主要是用于要求不是很精确地定时,因为有随机性 的误差产生。方案三:8位计数自动重装工作方式-方式2定时器/计数器方式2为自动恢复初值(初值会自动重装的8位定时器/计数器, 当其计数溢出的时候,系统会自动重装初值,重新开始计数。这种工作方式可以省去 用户软件中重装初值的指令执行时间,可以做到精确地定时时间。综上所述,我们是要求能做到精确定时,所以选才方式2g咨立工?为嗖: Fujian University of Technology按键输入消抖模块的选择对于开关量输入的

11、消抖处理一般有以下两种种处理方法。方案一:软件延时消抖即检测出键闭合后执行一个延时程序,产生5ms10ms的延时,让前沿抖动消失 后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。当检测 到按键释放后,也要给5ms 10ms的延时,待后沿抖动消失后才能转入该键的处理程 序。方案二:滚动滤波消抖法滚动滤波消抖法就是通过滚动滤波法的原理,我们将PB0PB7电平输入,并进行 五次滚存消抖,新态存2EH,旧态存2FH,这个方法能够较好的完成按键的消抖,排除 按键抖动所产生的不良效果,完善了按键功能。所以我们对消抖模块选择滚存消 抖。倒计时1S方法选择方案一:在非倒计时显示情况下,延时

12、可采取调用主程序,重复相应次数,得到相 应延时时间。如主程序每调用一次需 10ms,调用100次,则得到1s的延时。在倒计 时显示情况下,采取在中断设置1s到标志位,用到倒计时开启标志位即可。方案二:每次延时即开启1s到标志位。两个方案相比较,方案一比较简单、灵活,所以采取第一种方案来进行精准计 时。褶立工於百嗖Fujian Uni vers ity of Te c h nol ogy启动子模块I科立工功为嚏戈期/ Fujian University of Technology第三章总体软件设计说明与总工作流程总工作流程如图所示主流程自检模块程序初始化B蜂鸣器LED灯缓冲子模块调用按键消抖子模

13、块1分钟内取消子模块显示更新子模块工作模式选择模块调用拆字子模块时钟设定子模块调用键盘扫描子模块水位告警子模块模拟水温子模块煮浆子模块保温子模块拨动开关子模块无效启动子模块B科立工求引嚏Fujian University of Technology总体软件设计说明本次的课程设计通过对15个子模块的循环调用来完成全自动豆浆机的模拟功 能,并且采用定时器方式2精准计时。拆字子程序:常态下(待机保温送时分秒到显缓,其余则送工步号,倒计时到显 缓。显示更新子程序:根据显缓单元内容驱动八位数码管。时钟设定子程序:通过扫描键号判断调时键是否按下借以对实时钟进行调校。键盘扫描子程序:通过线反转法扫描按键键号

14、,旧键号存65H,新键号存64H。工作模式子程序:当无工作模式时,按下功能选择键,则显示豆浆模式,而后再按 时,工作模式在果汁和豆浆两种模式中切换。1分钟取消子程序:启动1分钟内,通过检查启动键是否再被按下,是则取消运 行。蜂鸣器LED灯缓冲子程序:根据缓冲单元内容驱动蜂鸣器和 LED灯按键消抖子程序:输入PB0PB7电平,经5次滚存消抖后,旧态存2FH,新态存2EH。保温子程序:以20%的功率进行加热保温。水位告警子模块:通过检测高低水位,若有高水位或者低水位,则启动时会告警并 退出。煮浆子模块:以240S倒计时加热煮浆,若煮浆过程中检测到超水位,则停止加热, 待水位恢复持续5秒后再重新开启

15、加热。无效启动子模块:检测功能未选择时启动键是否按下,是则告警并退出。拨动开关子模块:输入SW0SW7电平到缓冲单元,输出驱动L8L15。启动子模块:功能选择后判断启动键是否按下,是则进入预加热,预加热达到35 度时,则进入预打浆。开启电机,关闭加热。待25秒打浆倒计时结束后,关闭电机,开 启加热。加热达到50度时进入打浆模式,开电机,关加热。以下再重复加热打浆2次后进 入煮浆。裕立工求Z限Fujian University of Technology第四章系统资源分配及数据定义说明微处理器内部存储单元分配及数据定义微处理器内部存储单元数据定义 23H豆浆进程码24H.0是否进行调时标志位25

16、H 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实时钟分钟存储单元心粉立工才隋吱Fujian Univer

17、sity of Technology3CH实时钟小时存储单元47H打浆,加热4次设置初值53H闪闪闪延时200ms59H倒计时十位,个位。5AH倒计时百位(千位不显示5BH保温16秒设置初值5DH保温4秒设置初值5FH满一秒计数64H当前新扫描键号值存储单元65H10ms前扫描到键号存储单元67H保温讯响1分钟初值69H1分钟内取消初值6BH1分钟无效标志位心神立工求引嗖Fujian University of Technology第五章局部程序设计说明1 .自检模块功能简述该模块主要功能为在开机时进行有关接口部件及数码显示器、指示灯、蜂鸣器等适当自检。程序设计思路及方案当程序输入到单片机中运

18、行后会首先进行对单片机上各个功能显示模块的自检确保使用者所使用的单片机是可以正常使用。原理说明及部分代码下面通过一段程序了解自检模块的实现MOV DPTR,#0FEFCH ;DPTR 指向 U3-A 口MOV A,#0FFH ;置八段均不亮的字段码(8255A初始化后输出寄存器全0MOVX DPTR,A ; 输出 ,关数码显示器(段输出口初始驱动全为无效1MOV DPTR,#0FDFFH ;对 8255A(U5 接 口芯片初始化MOV A,#8BH ;设定为A 口输出(驱L815,B 口输入(按钮PB07,C 口输入(开关SW07MOVX DPTR,A ; 写入方式控制字MOV DPTR,#0

19、FDFCH ;DPTR 指向 U5-A 口MOV A,#0FFH ; 置八位输出均为无效1MOVX DPTR,A ;输出,令L8-15初始不亮CLR P3.2 ;蜂鸣器响LCALL D1S ; 延时 1SSETB P3.2 ;关蜂鸣器MOV P1,#00H ;P1 口输出全0f驱动的L0L7指示灯全亮从这段代码可知,再初始的状态下,系统置八位数码管全不亮,并且L8L15也置 为不亮,随后检测蜂鸣器是否能正常亮,再检测L0L7能否全亮。通过程序的设计,完 整的检验了单片机上各个模块的状态,让使用者能更好的分辨出单片机的正常程 度。2 .键盘扫描子模块功能简述就移立工求不隈Fujian Uni v

20、er s ity ot Te c h nol ogy该模块主要功能为实现4*4的键盘扫描功能,扫描当前所按下4*4键盘的按键 键号存入相应存储单元,并获得键值,以备后面的操作和功能实现。程序设计思路及方案该模块在主流程中调用键盘扫描子程序(LCALL,运用反转法扫描键盘,得到所 按下按键的相应行列码。当用户未按下按键时,相应存储单元存入未按下信息,即为 10H,当用户按下按键时,系统相应存储单元存入已按下信息,即00H-0FH。通过扫描, 并与键码表比较行列码,相等说明扫描到所按下的按键,将键值赋值到61H储存单元, 以便后面的使用。原理说明及部分代码61H为键值存储单元,给61H单元赋初值,

21、通过扫描所按下按键的行列码与键码 表比较,找到相等的即说明有键按下,且能精确得到相应键码,若找不到相等键码则说 明为按下按键。键号值从00H开始,最多进行16次的键码查表,DPTR指向键码表首地址,置当 前键号于A中,代码MOVC A,A+DPTR查表读取键码表中当前键号对应位置的键 码,与8位行列码比较,不同则转NK查下一个,相同表明找到当前按下的键号,代码 INC 61H使键号值加1,代码DJNZ R5,KY判断未查完键值表则继续,查完则无按键 或出现异常行列码,结束并返回。64H中存有新扫描到的键号,65H中存有相对于64H中存有的键号10ms前扫描 到的键号,通过两个单位的存储比较,能

22、够较好的判断出按键的按下与否。3 .按键消抖子模块功能简述该模块的主要功能是为按键输入消抖,防止出现按键抖动影响主流程。程序设计思路及方案将原新态存为前态,将前4次得到的电平值推送至2AH-2DH单元中,获得电平 值并存为新态存放在2EH中,比较5次得到的电平值,若电平值不一致则新态不变,若 电平值一致则存为新态。原理说明及部分代码。代码MOV 2FH,2EH将原新态存入旧的键号,即2EH为新态键值存储单元,2FH 为旧态键值存储单元,代码MOV 2DH,2CH ;MOV 2CH,2BHMOV 2BH,2AHFujian Uni ver s ity of Te c h nol ogy将前 4

23、次得到的电平值推送至2AH-2DH 单元中,获得电平值并存为新态,代码MOV A,2DHCJNE A,2CH,XDRCJNE A,2BH,XDRCJNE A,2AH,XDRCJNE A,29H,XDR比较近 5 次输入的电平值,一致的话存为新态,不一致则新态照旧。4 .蜂鸣器LED 灯缓冲子模块功能简述该模块通过设定缓冲单元驱动蜂鸣器和 LED 灯。程序设计思路及方案通过设定缓冲单元来驱动蜂鸣器和 LED 灯 ,防止直接驱动蜂鸣器和 LED 灯这 种情况下不容易修改需要驱动的方式。原理说明及部分代码下面一段程序可以了解整个模块功能FMQ:JB 26H.3,LF05 LR P3.26 JMP L

24、F1LF0:SETB P3.2LF1:MOV P1,28HQ0:RET通过设定26H.3作为开启蜂鸣器的标志位,28H作为LED灯L0L7,这样能够在 设计过程中通过标志位来判断来使蜂鸣器能完成我们所需要设定的响的时间,而通过28H缓冲驱动LED灯L0L7,我们就可以通关对28H的判断来了解灯的亮灭 也 可以直接给28H中各个字节分别置0或1,来开启各个灯的亮灭。1.1 分钟内取消子模块功能简述就移立工求不隈Fujian Uni ver s ity ot Te c h nol ogy该模块主要功能为实现当豆浆机开启工作一分钟之内都可以取消工作,使用户能再误开状态下能较好的停止豆浆机工作。程序设

25、计思路及方案通过设定一个1分钟之内可以判断按键是否按下,按下就可以退出整个工作状 态。原理说明及部分代码FQ1: DJNZ 69H,FQ2 ;1 分钟倒计时MOV 69H,#60DJNZ 6AH,FQ2MOV 6AH,#100以上程序为1分钟主流程循环,通过在一分钟之内可以判断启动键是否再次按 下,再次按下后就可以取消豆浆机运作。超过一分钟后就会跳出一分钟取消模块,就不能再按取消键结束豆浆机运作。6 .拆字子模块功能简述该模块主要功能是在待机保温时候拆送实时钟时分秒到显缓,其余状态下拆送 工步号,倒计时到显缓驱动八位数码管。程序设计思路及方案通过判断进程码,在不同的模式下拆送不同的单元到显缓驱

26、动八位数码显示器,以实现所需要的功能。原理说明及部分代码CZ: MOV A,23HCJNE A,#00H,CZTSJMP CZ2 ;最开始不工作是显示电子表CZT: CJNE A,#25H,CZ5 ;保温时候也显示电子表CZ2:MOV R0,#3AH ;取秒,开始拆字实时种MOV R1,#30H ;置显示缓冲单元首地址(对应于最右显示位将立工求百嗖, Fujian University of Technology上面为拆字的部分程序,通过程序我们可以清楚的看到,拆字模块主要通过判断进程码,不同的进程码拆送不同的单元到显缓,上面一段程序为在待机进程00H,保温进程25H下拆送时分秒到显缓,而若非

27、待机,保温。则程序跳转到CZ5,如下程序:CZ5:MOV A,27H ; 步骤码ANL A,#0FH ; 保留低4位(个位MOV 36H,AMOV A,27HANL A,#0F0H ; 保留高4 位(十位SWAP A ; 交换到低 4 位MOV 37H,AJB 26H.1,CZ0 ;为 1 不送倒计时(跳出MOV A,59H ; 倒计时ANL A,#0FH ; 保留低4位(个位MOV 32H,AMOV A,59HANL A,#0F0H ; 保留高4 位(十位SWAP A ; 交换到低 4 位MOV 33H,AANL A,#0FH ;保留低4位(个位MOV 34H,A为拆送倒计时,工步号到对应的

28、显缓单元,以此来实现豆浆机运作过程中所需要 的打浆倒计时和工步号显示。7 .时钟设定子模块功能简述该模块主要功能为提供用户对实时钟的调校功能。程序设计思路与方案当用户在使用时,如发现实时钟不准确,可简单的对实时钟进行调校功能,通过设 定按键加减时分,轻松的完成实时钟的调校。主要设定六个按键,包括进入调时键K4, 确定调时并退出调杨立工求利嗖Fujian University of Technology时K5,小时加1键K0,小时减1键K1,分钟加1键K2,分钟减1键K2。原理说明及部分代码利用进程码进行设定,只有在待机,保温进程下才能对实时钟进行调校。通过线反转法扫描键号来判断按键是否按下以实

29、现对实时钟的调校功能。在进 入调校后通过4个按键分别对小时和分钟进行加减,并将秒单位及前一级单位置0, 较准确的完成实时钟的调校功能。KTE:JNB 24H.0,L2MOV A,65HCJNE A,#10H,L3MOV A,64HCJNE A,#04H,L3下面程序为线反转法扫描键号,若发现有按键按下,则新键号会存到64H 中,以此实现对应的功能。65H存的10H为初始状态,即无000F键按下。8 .工作模式子模块功能简述该模块的功能主要为用户提供模式选择,正常的模式选择有豆浆机和果汁,由于本程序只设计豆浆机,但仍然提供了果汁的模式选择,较好了模拟了正常产品的功能选择。程序设计思路及方案当用户

30、按下功能选择按键时,会将28H.0置0,驱动L0亮起,模拟豆浆模式,而后 再按下功能选择键 ,则模式会在果汁和豆浆中切换。原理说明及部分代码:原理我们可以分析部分程序来进行,以下面部分程序为例:GZMS: MOV A,23HCJNE A,#00H,GZ0 ;刚开始选择功能键才有效JNB 2FH.1,GZ0JB 2EH.1,GZ0 ;判断 PB1 功能选择键是否按下以上的程序是通过判断在待机状态时的功能选择键是否按下,通过按键的按下再实行以下程序;INC 50H杨立工求利嗖Fujian UnNersity of TechnologyMOV 28H,50HMOV A,50HCJNE A,#0FEH

31、,GZ0MOV 50H,#0FCH通过对50H单元加1,而50H内容有初值0FDH,加1后变为FE即驱动L0亮起, 即选择豆浆模式,而后L0与L1交替切换亮灭,即模拟豆浆和果汁模式切换。9 .水位告警子模块功能简述该模块主要功能为在启动时检测是否水位是否正常程序设计思路及方案为了模拟高低水位,我们设置为SW0模拟高水位,SW1模拟低水位,设立闪烁标 志位,借此分辨不同水位不同的闪烁告警方式。原理说明及部分代码水位告警模块是为了让用户能再一个安全的水位状态下进行煮浆,即保证了煮 出豆浆的优良度,亦能够较好的保护使用者的安全与豆浆机的使用寿命。通过SW1模拟高水位,当SW0为“0时,则为高水位,反

32、之则未超水位。SW1为“0寸为低水位,反之水位正常。而通过加入闪烁标志位和高低水位告警标志位26H.4,在调用告警闪闪闪模块中,可区分高低水位的告警,即高水位告警为闪烁3次, 同步蜂鸣器响;低水位告警为闪烁一次,同步蜂鸣器。恪立工求百嗖Fujian Untversity of Technology10 .模拟水温子模块功能简述该模块主要功能为在通过 AN1控制A/D转换数据拆送到数码管最右边两位模 拟水温。.程序设计思路与方案为了更好的模拟水温拆送,在此模块中独立进行拆字程序,而非在拆字模块中进 行拆送,通过对A/D数据的BCD转换,将0256转换为099拆送显示温度,而AN1 可调整模拟水温

33、。原理说明及部分代码通过设定AN1调整,由以下程序完成:MOV DPTR,#0FBF9H ;A/D 子程序。MOVX A,DPTR ;读取A/D转换结果的8位二进制数字值即可以通过AN1调整模拟水温。而A/D转换结果存为缓冲单元,而后进行 BCD转换,将其二进制数转换为099的BCD码拆送温度显示。超过99则送“EE 到温度显示显缓单元中。11 .无效启动子模块功能简述该模块主要功能为防止用户在未选择模式就按启动进入。程序设计思路及方案通过对功能模式灯的亮灭进行判断是否选择完模式,是则正常启动,若无选择模 式进入,则告警并且退出。原理说明及部分代码首先检测功能模式灯是否亮起,若未亮起时检测到启

34、动键按下,则会有告警程序, 并且退出运行。告警程序如下:WX2: JNB 2FH.0,WX0JB 2EH.0,WX0 ;启动键是否按下CLR 26H.2 ;响1s标志位0,持续响CLR 26H.3 ;响WX3: DJNZ 5CH,WX0MOV 5CH,#100 ;响 1sSETB 26H.3 ;停响SETB 26H.2 ;响1s标志位1,不再响心移立工彳陪咳Fujian Untversity ot Technology在无选择模式下,启动键按下后,则会开启响标志位告警,并有1S主流程循环,告 警完才关闭蜂鸣器。12.实时钟子模块功能简述该模块主要功能为精确实时钟计时。程序设计思路及方案利用定时

35、方式1 产生中断进行精确实时钟计时。原理说明及部分代码当定时器1满足中断条件(即定时器计满256TM,发生中断,找到中断路口地址 001BH,跳转到子程序IT1P。子程序的开头和结尾分别对累加器 A和PSW进行入 栈和出栈,保证完成中断回到主循环后,能保存累加器和PSW的数据。进入IT1P子 程序表示完成200us计时,此时先对38H单元加1,用以做200us计时单元。同时判 断38H是否为36次,即是否计满36*256TM=10ms?当时间未至ij 10ms则跳出子程序, 继续等待中断发生,再过256TM再进入程序,为38H单元加1。当计满10ms对 200us单元38H清零,并对百分秒单元

36、39H加1,判断计满100次即1s的时间,将百分 秒单元清零,对秒单元3A单元加1,之后按照时间规律,每60s对秒单元清零、分钟 单元加1;每60min对分钟单元清零、小时单元加1但处理秒、分和时的加1需 要十进制加 1(BCD 码加1,使用ADD 累加并用 DA 进行十进制调整,可以完成此功能。13 .显示更新子模块功能简述该模块主要功能为将显示缓存单元30H-37H 的数据通过查表法找到相应的段码表将要显示的内容显示到数码管上。程序设计思路及方案通过单元指针逐个将显示缓存单元 30H-37H的数据,查表法找到相应的段码表将要显示的内容显示到数码管上,再通过循环和判断执行相应程序原理说明及部

37、分代码置显缓首位,位码首位,查询相关的字段码,输出字段码,保存显示1ms,消除申显, 指向下一个单元,在30H-37H单元循环。移立工求不葭Fujian Uni ver s ity of Te c h nol ogy14 .启动子模块功能简述该模块为豆浆机运行的主要模块,模块中实现豆浆机的预加热,预打浆,3次加热 打浆以此来完成豆浆打磨加热的主要过程。程序设计思路及方案通过判断豆浆模式选择完后正常启动进入,利用进程码实行整个过程。利用进 程码来完成预加热-预打浆-加热-打浆-加热-打浆-加热-打浆。利用L2灯模拟加热是 否开启,L3模拟电机。原理说明及部分代码正常启动后即赋进程为10H进程时,

38、进行预加热,而后通过判断温度是否达到35 度,达到后关闭加热(即灭L2,开启电机(即亮L3,进程码送11H,进行倒计时25秒的预 打浆,通过满1秒标志位的设立,准确的进行倒计时。25秒倒计时结束后重新开启加 热,关闭电机,待温度达到50度后,关闭加热,开启电机进行打浆,接下去重复加热打浆 两次,待最后一次打浆完成后即完成整个打磨部分,直接送煮浆程序进程码。下面示 例程序为对进程码的判断:Q1: CJNE R1,#10H,Q2CLR 28H.2 ;加热即在不同的进程中完成不同的功能。15 .煮浆子模块功能简述该模块是在豆浆机打浆完成后进行的最后一步煮浆程序,为240秒的加热过程, 并且有水位溢出

39、判断功能程序设计思路及方案通过对满一秒标志位的平U断进行较为准确的240秒加热倒计时,并且判断在加热过程中是否有超溢位,有则停止加热,待水位恢复正常持续5秒后才重新开启加 热。原理说明及部分代码通过对进程码的判断,当进程为20H进程时,进行煮浆。开启加热。加热过程中 通过判断水位情况,若出现高水位则会停止加热,待恢复水位持续5秒后才重新开启 加热,以下列程序为例:LK1: DJNZ 5CH,LK2 ;5S内无益处才重新加热MOV 5CH,#100施杉立工求百嗖Fujian University of TechnologyINC 4FHMOV A,4FHCJNE A,#06H,LK2 ;5秒后无

40、超水位CLR 28H.2 ;开加热即为判断恢复水位5 秒后才重新开启加热。若是为低水位状态下,即出现“干烧 ”, 则煮浆模式停止,并退出运行。恢复到待机状态。240秒煮浆完成后,即进入保温模块。16 .保温子模块功能简述该功能模块是对煮完的豆浆讯响1 分钟后,以 20%的功率进行加热保温。程序设计思路及方案设定响标志位来开启蜂鸣器讯响通知。而后进入保温,通过设定加热4秒 ,停热16 秒 , 来实现20%的功率加热保温。原理说明及部分代码如下列程序:BW1: SETB 28H.2 ;停加热DJNZ 5BH,BW0MOV 5BH,#16DJNZ 5CH,BW0 ;延时 16sMOV 5CH,#10

41、0CLR 28H.2 ;开加热CLR 26H.5BW2: DJNZ 5DH,BW0MOV 5DH,#4DJNZ 5EH,BW0 ;延时 4sMOV 5EH,#100SETB 26H.5SJMP BW1通过调用主流程循环,以此来实现4秒的加热以及16秒的停热来进行加热保 温。心存立工才陪嗖/ Fujian University of Technology第六章系统功能与操作说明系统功能全自动豆浆机能够自主的在启动后进行整个豆浆的打磨煮浆过程,全程自动化,无需使用者额外操作。而本全自动豆浆机还包才S有水位情况的报警,实时钟的模块,很好的满足用户的 需求,以及保护使用者。用户在使用时候,可以轻松操作

42、,无需任何学习,只需要在选择模式后按下启动后 即可,豆浆机将全程自动化完成,用户只需轻轻一点,稍等段时间即可以享受一杯美味 的豆浆。用户若有误启动,在启动的一分钟内可再按此启动键取消启动。用户界面及操作说明针对用户需求进行说明常规显示界面及其说明常规显示状态下,8位数码管是显示 时钟-分钟-秒钟”予用户按下进入启动后 最左边两位显示当前所进行的工步的工步号。左边第三位到第六位则显示豆浆过程 中打浆倒计时,煮浆倒计时。最右边两位数码管则显示当前豆浆温度。杉立工义工悭Fujian University of TechnoJog-数码管显示界面,从左到右分别为第一位至第八位才多立工俳zrFujian

43、 University of Technolc常规显示状态,即显示当前时间工部号1 .进入运行界面如下杨立工求利嗖Fujian University of Technology倒计时温度2 、L0为豆浆模式指示灯,L1为果汁模式指示灯,L7为保温灯,L3加热灯,L4为电机灯,PB0为功能选择键,PB1为启动/取消键,如下图豆浆模式果汁模式加热电机保温启动键功能选择键以上为各个功能模式灯与按 键,用户可通过对比参照使用与观察。时间调整模式当用户按下调时功能键后,则会进入调时,然后用户根据所需要调整的时间进行 按键加减操作,K0和K1为分别对小时单位进行加减1操作,而K2和K3则为对分钟 单位进行

44、加减1操作。用户可以简单轻松的对实时钟进行调校,在调校完成后,用户 只需按下确定调时键K5,即可退出调时。L0 L1 L3 L4 L7PB0 PB101 240 55翁松立工求为女07 Fujian University of Technology调时各个按键功能如下图:进入调时键 确定调时退出键小时+1小时-1分钟+1分钟-1水位警告模式当用户开启时若发现功能灯闪烁三次并同步伴有蜂鸣器响,则为高水位。若功 能灯闪烁一次,同步伴有蜂鸣器响,则为低水位。用户通过报警的不同自行改变水量 重新进行煮豆浆。保温模式当煮浆完成时,会有一分钟提示音提示用户已完成,用户听到提示音就可提取美 味豆浆。再按次启

45、动键即可退出保温。K1 K0 K3K2 K4 K8 K12 K5 K9 K6 K7K14 K10 K13 K11K15将立工成为女Fujian Uni vers ity of Te c h nol ogy第七章存在问题与改进程序说明在整个程序的设计中 ,仍然有着一些程序存在问题,这是在设计的时候没有考虑周全导致的,在经过了与老师的探讨和同学间的互相讨论下,对程序进行了完善。以下为几个存在问题的程序以及其改进后的程序。1 .模拟水温模块在水温模拟模块中 ,设计时由于考虑不周全,单纯的认为只需要拆送099 到显缓中就可以 ,于是设计出了错误的程序,如下 :CJNE A,#9AH,LA1LA1:JN

46、C LA2 ; 超过 99显示 EECLR CDA AMOV 58H,AMOV B,A ;A/D 转换结果拆送最右两位显示缓冲单元ANL A,#0FHMOV 30H,AMOV A,BANL A,#0F0HSWAP AMOV 31H,A这个程序模块,是个虚假数据,拆送了一个虚假的099 到显缓 ,并没有经过BCD转换 ,在温度送显缓调整过程中会有跳步现象,无法完整的模拟出温度变化,是我当初设计时候没有考虑周全造成的。而后在老师的指导与同学的探讨下,有了水温拆送 的正确拆送方法,自己加以改进程序。改进程序如下:MOV A,58HMOV B,#10HDIV ABMOV 31H,AMOV 30H,B竹

47、立工於初嚏即可以完整的模拟099的水温变化,而非虚假的数据转换。通过 BCD转换拆 送到显缓。较为Fujian lintversity of Technology完整的模拟出了水温。2 .水位告警模块在最初始的水位告警模块中,初始判断只判断了预加热状态下的水位告警,而没 有考虑到接下去的预打浆模块,使整个豆浆机在模拟过程中,跳过了在预打浆进程下 的水位检测告警。经老师指正修改后,添加了判断进程,使整个过程中都有着水位检 测的功能,改进后的程序如下:SWGJ: JNB 26H.0,SW ;JNB,0跳转,MOV A,23HCJNE A,#10H,GJQ ;预热 35 度SJMP GJ3GJQ:

48、CJNE A,#11H,GJE 预打浆SJMP GJ3GJE: CJNE A,#12H,GJ1SJMP GJ3在修改过白程序中,在各个进程中都进行了水位的检测,补缺了之前程序漏过的 预打浆,加热打浆三次进程下的水位告警,提高了整个设计的完整性。杨立工求引嚏Fujian Uni ver s ity of Te c h nal ogy第八章课程设计总结本次为期两周的课程设计,让我收获颇多。在两周的课程设计中,我们对自己所学的知识在实际中的应用有了很大的提高 , 通过自己去一步一步设计整个豆浆机的流程,再通过老师的指教,与同学之间的探讨, 逐步完善自己的程序,使自己所设计的程序能够一步步实现设计要求

49、,整个过程是在 纠正自己的学习认知与对未知的探讨求知过程 ,一整个班级在为同一个目的奋斗的 学习氛围很好的提升了学习的效率。通过两周的课程设计,我了解到一个程序的初步到成形到完善,是在不断的修改 中完成的。单单就这次设计的全自动豆浆机,从初步成形到最终成形,中间修修改改 不下7次。于是演化到了最终命名的程序版本由完成版到最终完成版再到究极版。 而程序到现在也不代表完善,还有着很大的提升空间,比如扩展模块中还有很多没做 成功进去,果汁模块在我设计的程序中也没有。这中间仍然存在很大的提升空间。 而实时钟的调时我追求简单便捷的设计,也证明了 一个程序往往有着很多种不同的 编辑方法,不同的模式有着不同

50、模式的优点,并非说全自动豆浆机程序设计出来,每个 人就都得一个样子。程序有着很大的自主性,在于你是否去钻研,去改进。两周时间里。通过对程序的改进 ,测试 ,也加强了自身对所学知识在实际应用中的操作。也加强了自己对知识的理解,并稍微懂得灵活运用所学知识去设计程序。而最后的答辩,说实话,是第一次进行与老师一对一答辩。感觉很新奇,但是心中仍然非常紧张。但是,这种一对一的答辩确能够让每个学生去熟悉自己所设计的程序 ,无论是否完全自我设计,重要的是了解整个程序如何设计,为何能这样设计。我想这才是这次的课程设计中老师需要我们掌握的。就是了解书本知识在实际中的应用自己能掌握程序设计的原理。在两周的课程设计里

51、面,我从自己的设计里面找到了很多不足之处,最严重错误的就是模拟水温模块。由于当初没听懂老师的要求,导致理解错误,在模拟水温时,没用好 BCD 转换,以为简单的一个DA A 调整就可以进行BCD 转换 ,导致拆送温度显示的模拟水温是一个假数据,数据屏蔽了2A2F,3A3F 等数据 ,拆送的温度显示还是一个不连续的数,这是绝对错误的。在老师的提点下,通过询问同学,才发现出自己程序的问题,后来 ,再请教同学中,了解到了模拟水温拆送的正确方法,才改进了模拟水温模块 ,使水温模拟能够拆送一个连续的 099 的数。在程序设计中,往往很多自己认为正确的程序仍然得经过反复推敲,甚至和同学互相探讨,也许,会找到优化的方法,甚至自己程序设计错误的地方。两周的课程设计在最后的答辩结束时正式落下帷幕,两周里面。自己收获了很多 ,包括在程序的设计, 包括程序设计时需要严谨对待的态度,程序设计时细节的重要性 ,甚至有些应用光看书微机原理及接口技术课程设计根本所掌握不到的。 而最后的答辩又让自己第一次体验到面对面答辩, 为自己的课程设计有了一定 的收尾。 在两周的课程设计里面,我对课本知识在实际的应用有了很大的进步,也通过了答辩成功验收了自己两个礼拜的成果。这次的课程设计是一个非常有效且有益的课程设计,让我收获很多。30

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!