




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微机原理及接口技术 课程设计说明书 课题:全自动豆浆机控制程序的设计 专业:电子信息工程 班级:电子 1102 姓名:张杰 学号:3220806485 指导老师: 2013年12月28日 I脸林花工宏承吱 Fujian University of Technology 第一章设计任务与目标(3 设计目的(3 设计任务(3 基本设计要求(3 功能扩展(3 设计环节与进程安排(3 第二章总体方案设计与方案论证(4 总体方案设计(4 实时钟的调校方式(5 键盘的扫描方式(5 定时器方式(6 开关量输入消抖模块的选择(6 倒计时1S方法选择(7 第三章总体软件设计说明及总工作流程(8 总工作流程(8
2、总体软件设计说明(10 第四章系统资源分配及数据定 义说明(11 单元分配以及各个 标志位注释(11 第五章局部程序设计说明(13 2键盘扫描子模块(14 3按键消抖子模块(14 4.蜂鸣器LED缓冲子模块(15 5.1分钟内取消模块(15 6拆字子模块(16 7调用时钟设定子模块(17 8. 选择工作模式子模块(18 9. 水位告警子模块(18 10. 模拟水温子模块(19 11. 无效启动子模块(20 Fujian Uni vers ity of Te c h nol ogy 12. 实时钟子模块(21 13. 显示更新子模块(21 14启动子模块(22 15. 煮浆子模块(22 16.
3、保温子模块(23 第六章系统功能与操作说明(24 系统功能(24 第七章存在问题与改进程序说明(27 用户界面操作说明(25 模拟水温模块(27 水位告警模块(28 第八章课程设计总结(29 附录:程序代码清单 Fujian University of Technology 蛋二章设计任务与目标 设计课题:全自动豆浆机控制程序的设计 设计冃的:通过两个礼拜在实验室亲自动手操作,熟悉和理解微机原理及接口技 术上果老师所讲的内容,将所学知识亲自动手验证,借此熟悉和掌握书中知识,并加 强自己动手 设计程序的能力。 设计任务:本次为期两个礼拜的课程设计任务是设计一个全自动豆浆机控制程 序通 过LED灯
4、,数码管模拟豆浆机的各个流程,主要要实现豆浆机的预加热,预打浆,三次 加热打浆, 而后进行煮浆完成整个豆浆的流程, 中间加入水位告警,防溢告警功能,并有实时 钟功 基本设计要求: 1、开机进行适当的有关接口部件及数 码显示器、指示灯、讯响器等自检 2八位LED七段数码管在常态下作为实时钟显示,其余状态下有工步号,倒计时,温 度显示。 3键盘中能够对实时钟进行调校功能按键。 4设有咼低水位报警功能,在咼水位状态下启动丄ED灯闪3下,蜂鸣器同步响一一 秒, 在低水位状态下启动丄ED灯闪1下蜂鸣器同步响一秒。 5、具有能完成基本煮豆浆中的预加热-预打浆,然后加热-打浆总共3次的程序。 6具有在启动后
5、能够在一分钟以内取消煮浆的功能模块。 7、实现在3次打浆完成后进入240S到计时的煮浆功能模块。 8在煮浆功能模块中有对水位进行检测,超出溢电极则停止加热,待恢复水位持续 5秒后才重新开启加热煮浆。 9煮浆完成后进行以20%功率加热的保温模块。 功能扩展: 1、可扩展果汁功能模块。 2设定电机关闭和重新开启之间必须间隔15秒。 3实时钟模块可设置为4X4模块,伴有位闪,按键赋值功能。 4改良告警提示音为音乐模块。 :、吒妙 Fujian University of Technology 设计环节及进程安排 1、布置课题,明确任务、总体方案设计1天 2、主体功能控制程序设计及调试5天 3、程序综
6、合联调及功能完善、改进、扩展3天 4、答辩及编写设计说明书3天 Fujia n University of Tech no(ogy1 第二章总体方案设计与方案论证 本次课程设计的课题是设计全自动豆浆机模拟程序,需要运用微机原理与接口技术 课本内容进行设计,设计的豆浆机不单单仅有煮豆浆功能。还带有水位报警,实时钟以及 实时钟调校功能,模拟水温等功能。 总体设计方案 对于这次的课程设计,按照老师所讲,我们所采取的程序 设计是按照模块化来进 行 程序的设计。将豆浆机的主工作流程作为一个模块,再加入其它功能的模块,比如实时钟 调校模块,水位告警模块,模拟水温模块等,通过各个模块之间的循环调用,以此来完
7、成整 个全自动豆浆机的程序设计。 整个程序由自检模块,程序初始化,15个子模块组成的主流程循环调用,中断模块, 延时子模块构成。 实时钟的调校方式 方案一:运用4X4键盘对应数字输入实时钟调整 通过对4X4键盘模块的程序设计,使键盘模块能够在实时钟调校功能中实现时分秒准确 调时,并且有退格,取消,确定等按键调整实时钟调校,相对应的小时十位只能输 入 02,小时个位只能按键输入04,分钟十位输入06,分钟个位输入09,能够较准确的 对实时钟进行调校。 方案二通过调时键进入调时,四个按键对小时,分钟进行+1-1调校。 这个方案是更为简单的方案,只需要有个进入调时的按键和一个调时完成确定按 键,以及
8、4个加减时钟按键。通过对键号的扫描判断按键是否按下以此来 实现对实 时钟 的调校功能。 这个方案最好的优点是简化了调校功能,使时钟能够以更简便的方式进行调校,为 产品的外观设计提供了很大的方便。 通过上面的综合判断实时钟的调校我们选择方案二按键加减调校。 键盘的扫描方式 方案一:扫描法 首先识别键盘有无键按下,驱动所有列线为0输入各行线电平如果有P就说明 有键按下,如果行线电平全1则全部无键按下。其次是如有键被按下,识别具体的按 键。依序驱动某一列为P其余列均为1输入各行线电平,如果某行线电平为0可确 定此行列交叉点处的按键被按下;如果行线电平全为1则本列无按键按下。这种方 式太占用CPU的工
9、作时间。 林总工彳阳I该 Fujian University of Technology 方案二:线反转法 首先列线输出为全0随后输入行线电平如有P则,所在的行就是闭合的按键 所在行;无(则无键闭合。其次行线输出为全0随后输入列线电平如有P则,P 输在的列就是闭合的按键所在列;无则无键闭合。 直通结合上述两步,可确定按键所在行和列。这种方式非常简单,并且很实用 综合以上的分析,我们选择方案二一一线反转法 Fujian University of Technol rj dT 叵 173 an 计数方式 方案一 :13位计数方式-方式0 定时器/计数器方式0 共是有13位的计数方式。方式0是为兼容
10、MCS- 48而设, 初值计算麻烦,在实际应用中,一般不用方式0。并且存在一个是时间误差,不能适用 于 精确定时。 方案二:16位计数方式-方式1 定时器/计数器方式1 一共是有16位的计数方式,由于它每个扫描周期都会有38个Tm (机器周期的时间误 差,主要是用于要求不是很精确地定时,因为有随机性的误差产生。 方案三:8位计数自动重装工作方式一方式2 定时器/计数器方式2为自动恢复初值(初值会自动重装的8位定时器/计数器,当 其计数溢出的时候,系统会自动重装初值,重新开始计数。这种工作方式可以省去用户软 件中重装初值的指令执行时间,可以做到精确地定时时间。 综上所述,我们是要求能做到精确定时
11、,所以选择方式2 林左工玮孑I该 Fujian University of Technology 按键输入消抖模块的选择 对于开关量输入的消抖处理一般有以下两种种处理方法。 方案一:软件延时消抖 即检测出键闭合后执行一个延时程序,产生5ms10ms的延时,让前沿抖动消失后 再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。当检测到按键 释放后也要给5ms 10m啲延时,待后沿抖动消失后才能转入该键的处理程序。 方案二:滚动滤波消抖法 滚动滤波消抖法就是通 过滚动滤波法的原理,我们将PB0PB7电平输入,并进行 五 次滚存消抖,新态存2EH, IH态存2FH,这个方法能够较好的完
12、成按键的消抖,排除按 键抖 动所产生的不良效果,完善了按键功能。所以我们对消抖模块选择滚存消抖。 倒计时1S方法选择 方案一:在非倒计时显示情况下,延时可采取调用主程序,重复相应次数,得到相应 延时时间。如主程序每调用一次需10ms调用100次,则得到Is的延时。在倒计时显示 情况下,采取在中断设置Is到标志位,用到倒计时开启标志位即可。 方案二:每次延时即开启Is到标志位。 两个方案相比较,方案一比较简单、灵八活,所以采取第一种方案来进行精准计 时。 在工於诊I淺 Fujian University of Technology 第三章总体软件设计说明与总工作流程总工作流程如图所示 主流程 自
13、检模块 程序初始化 B 蜂鸣器LED灯缓 冲子模块 调用按键消抖子模块1分钟内取消子模块显示更新子模块 工作模式选择模块 调用 拆字子模块时钟设定子模块 调用键盘扫描子模块 启动子模块 水位告警子模块模拟水温子模块煮浆子模块保温子模块 拨动开关子模块无效启动子模块 才多花工水兴腰 Fujian Uni vers ity of Te c h nol ogy 总体软件设计说明 本次的课程设计通过对15个子模块的循环调用来完成全自动豆浆机的模拟功能, 并且采用定时器方式2精准计时。 拆字子程序:常态下(待机,保温送时分秒到显缓,其余则送工步号,倒计时到显 缓。 显示更新子程序:根据显缓单元内容驱动八
14、位数码管。 时钟设定子程序:通过扫描键号判断调时键是否按下借以对实时钟进行调校。 键盘扫描子程序:通过线反转法扫描按键键号,旧键号存65H,新键号存64Ho 工作模式子程序:当无工作模式时,按下功能选择键,则显示豆浆模式,而后再按 时,工作模式在果汁和豆浆两种模式中切换。 1分钟取消子程序:启动1分钟内,通过检查启动键是否再被按下,是则取消运 行。蜂鸣器LED灯缓冲子程序:根据缓冲单元内容驱动蜂鸣器和LED灯 按键消抖子程序:输入PB0PB7电平,经5次滚存消抖后,旧态存2FH,新态存 2EHo保温子程序:以20%的功率进行加热保温。 水位告警子模块:通过检测高低水位,若有高水位或者低水位,则
15、启动时会告警并 退出。 煮浆子模块:以240S到计时加热煮浆若煮浆过程中检测到超水位,则停止加热,待 水位恢复持续5秒后再重新开启加 热。 无效启动子模块:检测功能未选择时启动键是否按下,是则告警并退出。 拨动开关子模块:输入SW0SW7电平到缓冲单元,输出驱动L8L15。 启动子模块:功能选择后判断启动键是否按下,是则进入预加热,预加热达到35度 时,则进入预打浆。开启电机,关闭加热。待25秒打浆倒计时结束后,关闭电机,开启加 热。 加热达到50度时进入打浆模式,开电机,关加热。以下再重复加热打浆2次后进 入煮浆。 工扌忆r支 VMBK / Fujian University of Tech
16、nology 第四章系统资源分配及数据定义说明微处理器内部存储单元分配及数据定义 微处理器内部存储单元数据定义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新态按键存储单元 2FHI
17、日态按键存储单元 30H-37 H显示缓存单元 38H200us计数单元 39H1/100S计数单元 3AH实时钟秒钟存储单元 3BH实时钟分钟存储单元 住衿花工濺承曖 Fujian Uni vers ity of Te c h nal ogy 3CH实时钟小时存储单元 47H打浆,加热4次设置初值 53H闪闪闪延时200ms 59H倒计时十位,个位。 5AH倒计时百位(千位不显示5BH保温16秒设置初值 5DH保温4秒设置初值 5FH满一秒计数 64H当前新扫描键号值存储单元 65H10ms前扫描到键号存储单元 67H保温讯响1分钟初值 69H1分钟内取消初值 6BH1分钟无效标志位 林如於
18、洽支 Fujian University of Technology 第五章局部程序设计说明 1自检模块 功能简述 该模块主要功能为在开机时进行有关接口部件及数 码显示器、指示灯、蜂鸣器 等 适当自检。程序设计思路及方案 当程序 输入到单片机中运行后会首先进行对单片机上各个功能显示模块的自 检,确保使用者所使用的单片机是可以正常使用。 原理说明及部分代码 下面通 过一段程序了解自检模块的实现 MOV DPTR, ttOFEFCH ; DPTR 指向 U3-A 口 MOV A, #OFFH ;置八段均不亮的字段 码(8255A初始化后输出寄存器全0 MOVX DPTR, A ;输出,关数码显示器
19、(段输出口初始驱动全为1无效 MOV DPTR, ttOFDFFH ;对 8255A (U5 接口芯片初始化 MOV A, #8BH ;设定为A 口输出(驱L815,B 口输入(按钮PB07,C 口输入(开关SW0、7 MOVX DPTR, A ;写入方式控制字 MOV DPTR, ttOFDFCH ; DPTR 指向 U5-A 口 MOV A, #OFFH ;置八位输出均为无1效 MOVX DPTR, A ;输出,令L8-15初 始不亮 CLR P3. 2 ;蜂鸣器响 LCALL D1S 延时 1S SETB P3. 2 ;关蜂鸣器 MOV P1,#OOH :Pl 口输出全(所驱动的L0、L
20、7指示灯全亮 从这段代码可知,再初始的状态下,系统置八位数码管全不亮,并且L8L15也置 为不亮,随后检测蜂鸣器是否能正常亮,再检测L0、L7能否全亮。通过程序的设计,完 整的检验了单片机上各个模块的状态,让使用者能更好的分辨出单片机的正常程度。 2. 键盘扫描子模块 功能简述 衿花工弗孑歧 Fujian Uni ver s ity of Te c h nol 该模块主要功能为实现4*4的键盘扫描功能,扫描当前所按下4*4键盘的按键键号 存入相应存储单元,并获得键值,以备后面的操作和功能实现。 程序设计思路及方案 该模块在主流程中调用键盘扫描子程序(LCALL,运用反转法扫描键盘,得到所按下
21、按键的相应行列码。当用户未按下按键时,相应存储单元存入未按下信息,即为1 0H,当 用户按下按键时,系统相应存储单元存入已按下信息,即00H- OFHo通过扫描,并与键码表比较行列码相等说明扫描到所按下的按键,将键值赋值到 61H储存单元,以便后面的使用。 原理说明及部分代码 61H为键值存储单元,给61H单元赋初值,通过扫描所按下按键的行列码与键码表 比较,找到相等的即说明有键按下,且能精确得到相 应键码,若找不到相等键码则说明 为按下按键。 键号值从00H开始,最多进行16次的键码查表,DPTR指向键码表首地址,置当前键 号于A中,代码MOVC A,A+DPTR查表读取键码表中当前键号对应
22、位置的键码,与8位行列码比较,不同则 转NK查下一个,相同表明找到当前按下的键号,代码INC 61H使键号值加1,代码 DJNZ R5, KY判断未查完键值表则继续,查完则无按键或出现异常行列码,结束并返回。 64H中存有新扫描到的键号,65H中存有相对于64H中存有的键号10ms前扫描到 的键号,通过两个单位的存储比较,能够较好的判断出按键的按下与否。 3. 按键消抖子模块 功能简述 该模块的主要功能是为按键输入消抖,防止出现按键抖动影响主流程。 程序设计思路及方案 将原新态存为前态,将前4次得到的电平值推送至2AH- 2DH单元中,获得电平值并存为新态存放在2EH中,比较5次得到的电平值,
23、若电平值 不一致则新态不变,若电平值一致则存为新态。原理说明及部分代码。 代码 MOV 2FH, 2EH 将原新态存入旧的键号,即2E H为新态键值存储单元,2F H为旧态键值存储单元,代 码 MOV 2DH, 2CH ; MOV 2CH, 2BH MOV 2BH, 2AH 禅在工班孑r支 Fujian University of Techno(ogy1 将前4次得到的电平值推送至2AH-2DH单元中,获得电平值并存为新态,代码 MOV A, 2DH CJNE A, 2CH, XDR CJNE A, 2BH, XDR CJNE A, 2AH, XDR CJNE A, 29H, XDR 比较近5
24、次输入的电平值,一致的话存为新态,不一致则新态照旧。 4. 蜂鸣器LED灯缓冲子模块 功能简述 该模块通过设定缓冲单元驱动蜂鸣器和LED灯。 程序设计思路及方案 通过设定缓冲单元来驱动蜂鸣器和LED灯,防止直接驱动蜂鸣器和LED灯这种 情况下不容易修改需要驱动的方式。 原理说明及部分代码 下面一段程序可以了解整个模 块功能 FMQ: JB 26H. 3, LFO CLR P3. 2 SJMP LF1 LFO:SETB P3. 2 LF1:MOV P1,28H Q0:RET 通过设定26H. 3作为开启蜂鸣器的标志位,28H作为LED灯LOL7,这样能够在设 计 过程中通过标志位来判断来使蜂鸣器
25、能完成我们所需要设定的响的时间,而通过2 8H缓 冲驱动LED灯L0、L7,我们就可以通关 对28H的判断来了解灯的亮 灭,也可以直 接给 28H中各个字节分别置0或1,来开启各个灯的亮 灭。 5.1分钟内取消子模块 功能简述 Fujian University of Technology 该模块主要功能为实现当豆浆机开启工作一分钟之内都可以取消工作,使用户 能再 误开状态下能较好的停止豆浆机工作。 程序设计思路及方案 通过设定一个1分钟之内可以判断按 键是否按下,按下就可以退出整个工作状 原理说明及部分代码 FQ1: DJNZ69H, FQ2 ;1 分钟倒计时 MOV 69H, #60 DJ
26、NZ 6AH,FQ2 以上程序为1分钟主流程循环,通过在一分钟之内可以判断启动键是否再次按下, 再次按下后就可以取消豆浆机运作。超过一分钟后就会跳出一分钟取消模块,就不能再 按取消键结束豆浆机运作。 6.拆字子模块 功能简述 该模块主要功能是在待机保温时候拆送实时钟时分秒到显缓,其余状态下拆送工 步号,倒计时到显缓驱动八位数码管。 程序设计思路及方案 通过判断进程码,在不同的模式下拆送不同的 单元到显缓驱动八位数码显示器,以 实现所需要的功能。 原理说明及部分代码 CZ: MOV A, 23H CJNEA, #00H, CZT SJMP CZ2;最开始不工作是显示电子表 CZT: CJNEA,
27、 #25H, CZ5保温时候也显示电子表 CZ2:MOV RO, #3AH ;取秒,开始拆字实时种 MOV R1,#3OH ;置显示缓冲单元首地址(对应于最右显示位 縊禅玄工;nr支 Fujian University of Technology 上面为拆字的部分程序,通过程序我们可以清楚的看到,拆字模块主要通 过判断 进程码,不同的进程码拆送不同的单元到显缓,上面一段程序 为在待机进程00H,保温 进程25H下拆送时分秒到显缓,而若非待机 保温。则程序跳转到CZ5,如下程序: CZ5:M0V A, 27H ;步骤码 ANL A, #OFH ;保留低4位(个位 MOV 36H,A MOV A,
28、 27H ANL A, #OFOH ;保留高4位(十位 SWAP A ;交换到低4位 MOV 37H,A JB 26H. 1,CZO ;为1不送倒计时(跳出 MOV A, 59H ;倒计时 ANL A, #OFH ;保留低4位(个位 MOV 32H,A MOV A, 59H ANL A, #OFOH ;保留高4位(十位 SWAP A ;交换到低4位 MOV A, 5AH ANL A, #OFH ;保留低4位(个位 MOV 34H, A 为拆送倒计时,工步号到对应的显缓单元,以此来实现豆浆机运作过程中所需要的 打浆倒计时和工步号显示。 7时钟设定子模块 功能简述 该模块主要功能为提供用户对实时钟
29、的调校功能。 程序设计思路与方案 当用户在使用时,如发现实时钟不准确,可简单的对实时钟进行调校功能,通过设定 按键加减时分,轻松的完成实时钟的调校。主要设定六个按键,包括进入调时键K4,确 定调时并退出调 衿花工带孑岐 Fujian University of Technofog 时K5,小时加1键K0,小时减1键K1,分钟加1键K2,分钟减1键K2。 原理说明及部分代码 利用进程码进行设定,只有在待机,保温进程下才能对实时钟进行调校。 通过线反转法扫描键号来判断按键是否按下以实现对实时钟的调校功能。在进 入调 校后通过4个按键分别对小时和分钟进行加减,并将秒单位及前一级单位置0,较准确的 完
30、成实时钟的调校功能。 KTE: JNB 24H. 0, L2 MOV A,65H CJNE A, #1OH, L3 MOV A, 64H CJNE A, #04H, L3 下面程序为线反转法扫描键号,若发现有按键按下,则新键号会存到64H中,以此 实现对应的功能。65H存的10H为初始状态,即无000F键按下。 8. 工作模式子模块 功能简述 该模块的功能主要为用户提供模式选择,正常的模式选择有豆浆机和果汁,由于 本程序只设计豆浆机,但仍然提供了果汁的模式选择,较好了模拟了正常产品的功能 选择。 程序设计思路及方案 当用户按下功能选择按键时会将28H. 0置0,驱动L0亮起模拟豆浆模式,而后再
31、按 下功能选择键,则模式会在果汁和豆 浆中切换。 原理说明及部分代码: 原理我们可以分析部分程序来进行,以下面部分程序为例: GZMS: MOV A, 23H CJNEA, #00H, GZO ;刚开始选择功能键才有效 JNB 2FH. 1, GZO JB 2EH. 1,GZO;判断PB1功能选择键是否按下 以上的程序是通 过判断在待机状态时的功能选择键是否按下,通过按键的按下 再实行以下程序;INC 50H 紐衿之工於新支 Fujian University of Technology MOV 28H, 50H MOV A, 50H CJNEA, #0FEH, GZO MOV 50H, #0
32、FCH 通过对50H单元加1,而50H内容有初值OFD比加1后变为FE即驱动L0亮起,即 选择豆浆模式,而后L0与L1交替切换亮灭,即模拟豆浆和果汁模式切换。 9. 水位告警子模块 功能简述 该模块主要功能为在启动时检测是否水位是否正常 程序设计思路及方案 为了模拟高低水位,我们设置为SW0模拟高水位,SW1模拟低水位,设立闪烁标志 位,借此分辨不同水位不同的闪烁告警方式。 原理说明及部分代码 水位告警模块是为了让用户能再一个安全的水位状态下进行煮浆,即保证了煮出 豆浆的优良度,亦能够较好的保护使用者的安全与豆浆机的使用寿命。 通过SW1模拟高水位,当SWO为“0时,则为高水位,反之则未超水位
33、。SW1为 “0”时为低水位,反之水位正常。而通过加入闪烁标志位和高低水位告警 标志位 26H. 4,在调用告警闪闪闪模块中,可区分高低水位的告警,即高水位告警为闪烁3 次,同步蜂鸣器响;低水位告警为闪烁一次,同步蜂鸣器。 Fujia n University of Tech no(ogy, 10. 模拟水温子模块 功能简述 该模块主要功能为在通过AN1控制A/D转换数据拆送到数码管最右边两位模拟水 温。. 程序设计思路与方案 为了更好的模拟水温拆送,在此模块中独立进行拆字程序,而非在拆字模块中进行拆 送,通过对A/D数据的BCD转换,将0、256转换为0、99拆送显示温度,而AN1可调 整模
34、拟 水温。 原理说明及部分代码 通过设定AN1调整,由以下程序完成: MOV DPTR, #0FBF9H : A/D 子程序。 MOVX A, DPTR ;读取A/D转换结果的8位二进制数字值 即可以通过AN1调整模拟水温。而A/D转换结果存为缓冲单元,而后进行BCD转 换,将其二进制数转换为099的BCD码拆送温度 显示。超过99则送“EE到温度显示 显 缓单元中。 11无效启动子模块 功能简述 该模块主要功能为防止用户在未选择模式就按启动进入。 程序设计思路及方案 通过对功能模式灯的亮 灭进行判断是否选择完模式,是则正常启动,若无选择模 式 进入,则告警并且退出。 原理说明及部分代码 首先
35、检测功能模式灯是否亮起,若未亮起时检测到启动键按下,则会有告警程序, 并且退出运行。告警程序如下: WX2: JNB2FH. 0, WX0 JB 2EH. 0, WX0 ;启动键是否按下 CLR 26H. 2 ;响Is标志位0,持续响 CLR 26H. 3 ;响 WX3: DJNZ 5CH, WX0 MOV 5CH, #100 ;响 Is SETB 26H. 3 ;停响 SETB 26H. 2 ;响Is标志位1,不再响 Fujian Universityof Twchnoiogy 在无选择模式下,启动键按下后,则会开启响标志位告警,并有1S主流程循环,告 警完才关闭蜂鸣器。 12.实时钟子模块
36、 功能简述 该模块主要功能为精确实时钟计时。 程序设计思路及方案 利用定时方式1产生中断进行精确实时钟计时。 原理说明及部分代码 当定时器1满足中断条件(即定时器计满256TM,发生中断找到中断路口地址001 BH, 跳转到子程序ITIPo子程序的开头和结尾分别对累加器A和PSW进行入栈和出栈,保证 完成中断回到主循 环后,能保存累加器和PSW的数据。进入IT1P子程序表示 完成 200us计时,此时先对38H 单元加1,用以做200us计时单元。同时判断38H是否为36次,即是否计满36*256TM二10 ms?当时间未到10ms则跳出子程序,继续等待中断发生,再过256TM再进入程序,为3
37、8 H单元加lo当计满10ms对200us单元38H清零,并对百分秒单元39H加1,判断计满 100次即Is的时间,将百分秒单元清零,对秒单元3A单元加1,之后按照 时间规律,每 60s对秒单元清零、分钟单元加1;每60mi n对分钟单元清零、小时单元加1但处理 秒、分 和时的加1需要十进制加1 (BCD码加1,使用ADD累加并用DA进行十进制调整,可 以完成此功能。 13.显示更新子模块 功能简述 该模块主要功能为将显示缓存单元30H- 37H的数据通过查表法找到相 应的段码表将要显示的内容显示到数码管上。 程序设计思路及方案 通过单元指针逐个将显示缓存单元30H- 37H的数据,查表法找到
38、相应的段码表将要显示的内容显示到数码管上,再通过循环 和判 断执行相应程序。 原理说明及部分代码 置显缓首位,位码首位,查询相关的字段码输出字段码保存显示Ims消除串显,指 向下一个单元,在30H-37H单元循环。 Fujian University of Technology 14 启动子模块 功能简述 该模块为豆浆机运行的主要模块,模块中实现豆浆机的预加热,预打浆,3次加热打 浆以此来完成豆浆打磨加热的主要过程。 程序设计思路及方案 通过判断豆浆模式选择完后正常启动进入,利用进程码实行幣个过程。利用进程 码 来完成预加热-预打浆-加热-打浆-加热-打浆-加热- 打浆。利用L2灯模拟加热是否
39、开启丄3模拟电机。 原理说明及部分代码 正常启动后即赋进程为10H进程时,进行预加热,而后通过判断温度是否达到35 度,达到后关闭加热(即灭L2,开启电机(即亮L3,进程码送11H,进行倒计时25秒的预 打 浆,通过满1秒标志位的设立,准确的进行倒计时。25秒倒计时结束后重新开启加 热,关闭电机,待温度达到50度后,关闭加热,开启电机进行打浆,接下去重复加 热打 浆两次,待最后一次打浆完成后即完成整个打磨部分,直接送煮浆程序进程码。下面示 例程序 为对进程码的判断:QI: CJNE Rl,#10H, Q2 CLR 28H. 2 ;加热 即在不同的进程中完成不同的功能。 15.煮浆子模块 功能简
40、述 该模块是在豆浆机打浆完成后进行的最后一步煮浆程序,为240秒的加热过程,并 且有水位溢出判断功能 程序设计思路及方案 通过对满一秒标志位的判断进行较为准确的240秒加热倒计时,并且判断在加热 过 程中是否有超溢位,有则停止加热,待水位恢复正常持续5秒后才重新开启加 热。 原理说明及部分代码 通过对进程码的判断,当进程为20H进程时,进行煮浆。开启加热。力加热过程中 通 过判断水位情况,若出现高水位则会停止加热,待恢复水位持续5秒后才重新开启加 热,以下列程序为例:LK1: DJNZ 5CH, LK2 ;5S内无益处才重新加热 MOV 5CH, #100 林花工彳阳I淺 Fujian Uni
41、versity of Technology INC 4FH MOV A, 4FH CJNEA, #06H, LK2 ; 5秒后无超水位 CLR 28H. 2 ;开加热 即为判断恢复水位5秒后才重新开启加 热。 若是为低水位状态下,即出现“干烧”贝I,煮浆模式停止,并退出运行。恢复到待机 状态。 240秒煮浆完成后,即进入保温模块。 16 保温子模块 功能简述 该功能模块是对煮完的豆 浆讯响1分钟后,以20%的功率进行加热保温。 程序设计思路及方案 设定响标志位来开启蜂 鸣器讯响通知。而后进入保温,通过设定加热4秒,停热16 秒,来实现20%的功率加 热保温。 原理说明及部分代码 如下列程序:
42、BW1: SETB 28H. 2 ;停加热 DJNZ 5BH, BW0 MOV 5BH, #16 DJNZ 5CH, BWO ;延时 16s MOV 5CH, #100 CLR 28H. 2 ;开加热 CLR 26H. 5 BW2: DJNZ 5DH, BWO MOV 5DH, #4 DJNZ 5EH, BWO ;延时 4s MOV 5EH, #100 SETB 26H. 5 SJMP BW1 通过调用主流程循环,以此来实现4秒的加热以及16秒的停热来进行加热保温 林花工彳垮歧 Fujian Uni ver s ity of Te c h nol ogy 第六章系统功能与操作说明 系统功能 全
43、自动豆浆机能够自主的在启动后进行整个豆浆的打磨煮浆过程,全程自动化, 需使用者额外操作。 而本全自动豆浆机还包括有水位情况的报警,实时钟的模块,很好的满足用户的需 求,以及保护使用者。 用户在使用时候,可以轻松操作,无需任何学习,只需要在选择模式后按下启动后即 可,豆浆机将全程自动化完成,用户只需轻轻一点,稍等段时间即可以享受一杯美味的 豆浆。 用户若有误启动,在启动的一分钟内可再按此启动键取消启动。 用户界面及操作说明 针对用户需求进行说明 常规显示界面及其说明 常规显示状态下,8位数码管是显示 时钟-分钟- 秒钟”当用户按下进入启动后,最左边两位显示当前所进行的工步的工步号。左 边第 三位
44、到第六位则显示豆浆过程中打浆倒计时,煮浆倒计时。最右边两位数码管则显示当 前豆浆温度。 数码管显示界面,从左到右分别为第一位至第八位 Fujian University of Technok 常规显示状态,即显示当前时间 1进入运行界面如下: 了杨左工於承、支 Fujian University of Technology 工部号 倒计时 温度 2、 a L0为豆浆模式指示灯, L1为果汁模式指示灯, L7为保温灯丄3加热灯丄4为电机灯,PBO为功能选择键,PB1为启动/取消键,如下 图 豆浆模式果汁模式加热电机保温启动键功能选择键以上为各个功能模式灯与按键, 用户可通过对比参照使用与 观察。
45、 时间调整模式 当用户按下调时功能键后,则会进入调时,然后用户根据所需要调整的时间进行按 键加减操作,K0和K1为分别对小时单位进行加减1操作,而K2和K3则为对分钟单位 进行加减1操作。用户可以简单轻松的对实时钟进行调校,在调校完成后,用户只需按 下确定调时键K5,即可退出调时。 LO LI L3 L4 L7 PBO PB1 01 240 55 林花工材承曖 Fujian University of Technotogy 调时各个按键功能如下图: 进入调时键确定调时退出键 小时+1小时-1分钟+1分钟T 水位警告模式 当用户开启时,若发现功能灯闪烁三次并同步伴有蜂鸣器响,则为高水位。若功能
46、灯闪烁一次,同步伴有蜂鸣器响,则为低水位。用户通过报警的不同自行改变水量 重新 进行煮豆浆。保温模式 当煮浆完成时,会有一分钟提示音提示用户已完成,用户听到提示音就可提取美 味 豆浆。再按次启动键即可退出保温。 KI KO K3 K2 K4 K8 K12 K5 K9 K6 K7 K15 杨在工彳阳I淺 K14 K10 K13 K11 Fujian Uni ver s ity of Te c h nol ogy 第七章存在问题与改进程序说明 在整个程序的 设计中,仍然有着一些程序存在 问题,这是在设计的时候没有考 虑 周全导致的,在经过了与老师的探讨和同学间的互相讨论下,对程序进行了完善。以下
47、为几个存在问题 的程序以及其改 进后的程序。 1模拟水温模块 在水温模拟模块中,设计时由于考虑不周全,单纯的认为只需要拆送099到显缓中 就可以,于是设计出了错误的程序,如下: CJNE A, #9AH, LA1 LA1:JNC LA2 超过 99 显示 EE CLR C DA A MOV 58H,A MOV B, A ;A/D转换结果拆送最右两位显示缓冲单元 ANL A, #OFH MOV 30H, A MOV A, B ANL A, #OFOH SWAP A MOV 31H, A 这个程序模块,是个虚假数据,拆送了一个虚假的099到显缓,并没有经过BCD转换, 在温度送显缓调整过程中会有跳
48、步 现象,无法完整的模拟出温度变化,是我当初设 计时候没有考虑周全造成的。而后在老师的指导与同学的探讨下,有了水温拆送的正确 拆送方法,自己加以改进程序。改进程序如下: MOV A,58H MOV B, #10H DIV AB MOV 31H,A MOV 30H,B 即可以完整的模 拟099的水温变化,而非虚假的数据 转换。通过BCD转换拆送 到显缓。较为 杨在工彳垮I淺 完整的模拟出了水温 Fujian University of Technofogy 2.水位告警模块 在最初始的水位告警模块中,初始判断只判断了预加热状态下的水位告警,而没有 考虑到接下去的预打浆模块,使整个豆浆机在模拟过程中,跳过了在预打浆进程下的水位 检测告警。经
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 由员工经营公司合同协议
- 热水器安装安全协议合同
- 深水井打井合同协议范本
- 牙科技术入股合作协议书
- 潍坊修剪车采购合同范本
- 香港化验所转让合同范本
- 杂志社与代理的合同协议
- 洪山区口译服务合同范本
- 苏州技师学院就业协议书
- 舞蹈培训机构合同协议书
- 数据资产目录建设方案
- 2023年江苏省社区工作者人员招聘考试题库及答案解析
- 2025年辅警笔试考试题库题库(答案+解析)
- 肇庆辅警考试题库2025(有答案)
- 防人因失误培训
- 小学科学实验室安全培训
- 医院关于开展整治重复医疗检查检验、违规收费问题工作实施方案的通知
- 孕妇营养管理课件大全
- 2025年中广核招聘笔试参考题库附带答案详解
- 质量首席官培训课件
- 个人信息保护合规审计师CCRC-PIPCA含答案
评论
0/150
提交评论