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闪闪闪延时200ms 59H倒计时十位,个位。
5AH倒计时百位(千位不显示 5BH保温16秒设置初值 5DH保温4秒设置初值 5FH满一秒计数
64H当前新扫描键号值存储单元 65H10ms前扫描到键号存储单元 67H保温讯响1分钟初值 69H1分钟内取消初值 6BH1分钟无效标志位
第五章局部程序设计说明
1.自检模块 功能简述
该模块主要功能为在开机时进行有关接口部件及数码显示器、指示灯、蜂鸣器等适当自检。程序设计思路及方案
当程序输入到单片机中运行后会首先进行对单片机上各个功能显示模块的自检,确保使用者所使用的单片机是可以正常使用。
原理说明及部分代码
下面通过一段程序了解自检模块的实现 MOV DPTR,#0FEFCH ;DPTR指向U3-A口
MOV A,#0FFH ;置八段均不亮的字段码(8255A初始化后输出寄存器全‘0' MOVX @DPTR,A ;输出,关数码显示器(段输出口初始驱动全为‘1'无效
MOV DPTR,#0FDFFH ;对8255A(U5接口芯片初始化
MOV A,#8BH ;设定为A口输出(驱L8~15,B口输入(按钮PB0~7,C口输入(开关SW0~7
MOVX @DPTR,A ;写入方式控制字 MOV DPTR,#0FDFCH ;DPTR指向U5-A口 MOV A,#0FFH ;置八位输出均为‘1'无效 MOVX @DPTR,A ;输出,令L8-15初始不亮 CLR P3.2 ;蜂鸣器响 LCALL D1S ;延时1S