功能简述
该模块主要功能为防止用户在未选择模式就按启动进入。 程序设计思路及方案
通过对功能模式灯的亮灭进行判断是否选择完模式,是则正常启动,若无选择模式进入,则告警并且退出。
原理说明及部分代码
首先检测功能模式灯是否亮起,若未亮起时检测到启动键按下,则会有告警程序,并且退出运行。告警程序如下:
WX2: JNB 2FH.0,WX0
JB 2EH.0,WX0 ; 启动键是否按下 CLR 26H.2 ; 响1s标志位0,持续响 CLR 26H.3 ; 响 WX3: DJNZ 5CH,WX0 MOV 5CH,#100 ; 响1s SETB 26H.3 ; 停响
SETB 26H.2 ; 响1s标志位1,不再响
在无选择模式下,启动键按下后,则会开启响标志位告警,并有1S主流程循环,告警完才关闭蜂鸣器。
12.实时钟子模块 功能简述
该模块主要功能为精确实时钟计时。 程序设计思路及方案
利用定时方式1产生中断进行精确实时钟计时。 原理说明及部分代码
当定时器1满足中断条件(即定时器计满256TM,发生中断,找到中断路口地址001BH,跳转到子程序IT1P。子程序的开头和结尾分别对累加器A和PSW进行入栈和出栈,保证完成中断回到主循环后,能保存累加器和PSW的数据。进入IT1P子程序表示完成200us计时,此时先对38H 单元加1,用以做200us计时单元。同时判断38H是否为36次,即是否计满36*256TM=10ms?当时间未到10ms,则跳出子程序,继续等待中断发生,再过256TM再进入程序,为38H单元加1。当计满10ms,对200us单元38H清零,并对百分秒单元39H加1,判断计满100次即1s的时间,将百分秒单元清零,对秒单元3A单元加1,之后按照时间规律,每60s对秒单元清零、分钟单元加1;每60min对分钟单元清零、小时单元加1……但处理秒、分和时的加1需要十进制加1(BCD码加1,使用ADD累加并用DA进行十进制调整,可以完成此功能。
13.显示更新子模块 功能简述
该模块主要功能为将显示缓存单元30H-37H的数据通过查表法找到相应的段码表将要显示的内容显示到数码管上。
程序设计思路及方案
通过单元指针逐个将显示缓存单元30H-37H的数据,查表法找到相应的段码表将要显示的内容显示到数码管上,再通过循环和判断执行相应程序。
原理说明及部分代码
置显缓首位,位码首位,查询相关的字段码,输出字段码,保存显示1ms,消除串显,指向下一个单元,在30H-37H单元循环。
14.启动子模块 功能简述
该模块为豆浆机运行的主要模块,模块中实现豆浆机的预加热,预打浆,3次加热打浆以此来完成豆浆打磨加热的主要过程。
程序设计思路及方案
通过判断豆浆模式选择完后正常启动进入,利用进程码实行整个过程。利用进程码来完成预加热-预打浆-加热-打浆-加热-打浆-加热-打浆。利用L2灯模拟加热是否开启,L3模拟电机。
原理说明及部分代码
正常启动后即赋进程为10H进程时,进行预加热,而后通过判断温度是否达到35度,达到后关闭加热(即灭L2,开启电机(即亮L3,进程码送11H,进行倒计时25秒的预打浆,通过满1秒标志位的设立,准确的进行倒计时。25秒倒计时结束后重新开启加热,关闭电机,待温度达到50度后,关闭加热,开启电机进行打浆,接下去重复加热打浆两次,待最后一次打浆完成后即完成整个打磨部分,直接送煮浆程序进程码。下面示例程序为对进程码的判断: Q1: CJNE @R1,#10H,Q2
CLR 28H.2 ;加热
即在不同的进程中完成不同的功能。 15.煮浆子模块 功能简述
该模块是在豆浆机打浆完成后进行的最后一步煮浆程序,为240秒的加热过程,并且有水位溢出判断功能
程序设计思路及方案
通过对满一秒标志位的判断进行较为准确的240秒加热倒计时,并且判断在加热过程中是否有超溢位,有则停止加热,待水位恢复正常持续5秒后才重新开启加热。
原理说明及部分代码
通过对进程码的判断,当进程为20H进程时,进行煮浆。开启加热。加热过程中通过判断水位情况,若出现高水位则会停止加热,待恢复水位持续5秒后才重新开启加热,以下列程序为例: LK1: DJNZ 5CH,LK2 ;5S内无益处才重新加热
MOV 5CH,#100
INC 4FH MOV A,4FH
CJNE A,#06H,LK2 ;5秒后无超水位
CLR 28H.2 ;开加热
即为判断恢复水位5秒后才重新开启加热。
若是为低水位状态下,即出现“干烧”,则煮浆模式停止,并退出运行。恢复到待机状态。
240秒煮浆完成后,即进入保温模块。 16.保温子模块 功能简述
该功能模块是对煮完的豆浆讯响1分钟后,以20%的功率进行加热保温。 程序设计思路及方案
设定响标志位来开启蜂鸣器讯响通知。而后进入保温,通过设定加热4秒,停热16秒,来实现20%的功率加热保温。
原理说明及部分代码 如下列程序:
BW1: SETB 28H.2 ;停加热 DJNZ 5BH,BW0 MOV 5BH,#16
DJNZ 5CH,BW0 ;延时16s MOV 5CH,#100 CLR 28H.2 ;开加热