图4.12豆浆机控制系统的报警电路
4.7复位电路的设计
一般的复位电路干扰易串入复位端,虽然在大多数情况下不会造成单片机的错误复位,但哟可能引起内部某些寄存器错误复位。在应用系统中,为了保证复位鼎炉可靠地工作,常将RC电路在接斯密特电路后再接入单片机复位端及外围电路复位端。如图4.13所示
图4.13复位电路
-14-
4.8时钟电路及按键设计
该单片机控制系统采用内部方式产生。内部时钟电路如图4.14所示。外接晶体以及电容C1、C2构成并联谐振电路,接在放大器的反馈回路中,内部振荡器产生自激振荡,一般晶振可在2~12MHz之间任选。对外接电容值虽然没有严格的要求,但电容的大小多少会影响振荡频率的高低、振荡器的稳定性、起振的快速性和温度的稳定性。外接晶体时,C1和C2通常选30pF左右;外接陶瓷谐振器时,C1、C2的典型值为47pF。
图4.14时钟电路及按键电路
按键电路是通过+5V和两个接在P1.6口、P1.7口连接形成通路,按键按下时,P1.6口(或P1.7口)产生高电平,单片机通过软件检测电平就可以知道是什么功能。
-15-
软件设计第五章豆浆机控制系统的豆浆机控制系统的软
豆浆机控制系统硬件图
-16-
附录豆浆机控制系统程序清单
ORGAJMP
0000HMAIN
ORG0003H
AJMPFGS
MAIN:SETBIT0SETBEX0
SETBEA
;****功能选择程序****GNXE:JNBP1.6,GN1
JNBP1.7,GN2
;****富纤豆浆工作程序****GN1:SETBP1.1
MOVR1,#1EHACALLAA0
MOVMOVDIV
B,30HA,#50HAB
;选择边缘触发方式;允许外部中断0;CPU允许中断干豆豆浆;湿豆豆浆
;启动加热
;设置循环30次(延时30分钟);调用;从30H中取温度值;设定温度为80度
;比较A、B大小,商存于A中
CJNEA,#00H,DJ1DJNZR1,GN1;****打浆程序*****DJ1:CLRP1.1
MOVR0,#6SETBP1.0
ACALLBBCLRP1.0ACALLDDDJNZR0,DJ1
;****煮浆程序****ZJ1:SETBP1.1
MOVR1,#1EH
ACALLAA0JNBP1.3,FYYZ1DJNZR1,ZJ1;****防溢延煮程序****FYYZ1:
CLRP1.1ACALLAA0SETBP1.1MOVR1,#8ACALLAA0JBP1.3,FYYZ1DJNZACALLAJMP
R1,FYYZ1BJMAIN
;启动加热
-17-
;停止加热;循环六次;启动打浆
;启动加热
;设置循环30次(延时30分钟);调用
;停止加热;等待一分钟;启动加热
;设置循环8次(防溢延煮8分钟);调用
;*****浓香豆浆工作程序****GN2:SETBP1.1
MOVACALLMOVMOVDIV
R1,#1EHAA0B,30HA,#50HAB
;设置循环30次(延时30分钟);调用
;从30H中取温度值;设定温度为80度
;比较A、B大小,商存于A中
CJNEA,#00H,DJ2DJNZR1,GN2;****打浆程序*****DJ2:CLR
MOVSETB
ACALLCLRACALL
P1.1R0,#4P1.0CCP1.0DD
;停止加热;循环四次;启动打浆
DJNZR0,DJ2;****煮浆程序****ZJ2:SETBP1.1
MOVR1,#1EH
ACALLAA0JBP1.3,FYYZ2DJNZR1,ZJ2;****防溢延煮程序****FYYZ2:CLRP1.1
ACALLAA0
SETBP1.1MOVR1,#8ACALLAA0JNBP1.3,FYYZ2DJNZR1,FYYZ2ACALLBJAJMPMAIN;****子程序清单****
;****温度采集转换程序****WDZH:MOVA,#00H
MOVDPTR,#0FEFFHMOVX@DPTR,AACALLDLTWAIT:JBP3.3,WAIT
MOVX@DPTR,A
MOV30H,ARETDLT:MOV
DJNZRET
R5,#05HR5,$
;启动加热
;设置循环30次(延时30分钟);调用
;停止加热
;等待一分钟;启动加热
;设置循环8次(防溢延煮8分钟);调用
;设置通道地址
;设置ADC0809的口地址;启动转换;延时10us;等待转换结束
;读入转换结果
;延时10us
;*****报警提示程序****
BJ:MOVR3,0FFH
CLRP1.4
CLRP1.5ACALLEE
-18-
;光报警;声报警
CLRP1.4CLRP1.5
ACALLEEDJNZR0,BJRET
;****延时程序****AA0:MOVR4,#3AA:MOVR5,#200AA1:MOVR6,#200AA2:MOVR7,#250AA3:DJNZ
R7,AA3DJNZR6,AA2DJNZR5,AA1DJNZR4,AA0RETBB:MOVR5,#200BB1:MOV
R6,#200
BB2:MOVR7,#250BB3:DJNZR7,BB3
DJNZR6,BB2DJNZR5,BB1RETCC:MOVR5,#150CC1:MOVR6,#200CC2:MOVR7,#250CC3:DJNZ
R7,DD3DJNZR6,DD2DJNZR5,DD1RETDD:MOVR5,#100DD1:MOVR6,#200DD2:MOV
R7,#250
DD3:DJNZR7,CC3
DJNZR6,CC2DJNZR5,CC1RETEE:MOVR5,#5EE1:MOVR6,#200EE2:MOVR7,#250EE3:DJNZ
R7,EE3DJNZ
R6,EE2
DJNZR5,EE1RET
;****防干烧程序****FGS:CLRP1.0
CLRP1.1ACALLBJ
RETIEND
;延时一分钟
;延时二十秒;延时十五秒
;延时十秒;延时500ms
-19-