家用电热淋浴器控制器的设计文档格式.docx
《家用电热淋浴器控制器的设计文档格式.docx》由会员分享,可在线阅读,更多相关《家用电热淋浴器控制器的设计文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
经8088处理后输出脉冲使锋鸣器报警,如图二所示。
并使数码管(当水位正常时和于显示温度)显示水位过高(H)水位过低(L)。
接第二片8255
图二锋鸣器连接图
2.
图三温度设定
接数据总线
温度设定,该控制器共有八档温度可供选择,我们选择了八个按键的键盘,当按按键时,8255相应的端口输入高电平,如图三所示。
接ADC输出
并送到8088,经8088处理后,发送信号到显示电路,点亮相应的二极管(一个二极管代表一种温度),如图四所示
图四实际温度显示
3.温度检测,用温度传感器检测温度并输出电压,经ADC转换成成数字量后送到8255,如图五所示
接8255
图五温度检测并转换成数字量
再传到8088,8088再输出信号让数码管显示实际温度,如图六所示
接3-8译码器输出
4.加热器控制。
将实际温度与设定温度比较,当设定温度比实际温度高出50度时,使大功率的加热器工作;
当设定温度比实际温度高出20度时,使中等功率的加热器工作;
当设定温度比实际温度高但没有高出20度时,使小功率的加热器工作;
当设定温度低于实际温度时,使加热器全部停止工作。
其实现在8255控制,如图七所示
图七加热器控制
5.系统的整体框图如图八所示。
五.原理图设计
硬件的连线图用Protel2004设计,设计结果如图九所示
温度检测
SN54ALS138AFK
DM74LS245WM
8255
图九硬件连接图
8088
六.接口电路的端口地址如下表
表一接口电路的端口地址表
地端
址口
芯片
A
B
C
控制端口
8255(第一片)
40
41
42
43
8255(第二片)
80
81
82
83
七.程序流程图
八.程序清单
DATASSEGMENT
LEDDB00H
TEMDB00H
SETTEMDB00H
DUANDB3FH06H5BH4FH66H6DH7DH07H7FH6FHD
TEMBIAODB100BUP(?
);
用于查表
DATASENDS
STACKSSEGMENTPARASTACK'
STACK'
STADB50(?
)
TOPEQULENGTHSTA
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
STACK:
MOVAX,DATAS
MOVDS,AX
MOVAX,STACK
MOVSS,AX
MOVSP,TOP
PUSHDS;
填中断
MOVAX,0000H
MOVAX,OFFSETIRQ7;
温度AD转换
ADDAX,2000H
MOVSI,003CH
MOV[SI],AX
MOVSI,003EH
MOVAX,OFFSETIRQ6;
高水位中断
MOVSI,0038H
MOVSI003AH
MOVAX,OFFSETIRQ5;
低水位中断
MOVSI,0034H
MOVSI,0036H
POPDS
MOVAL,8BH;
将8BH送到43H口(即键盘的控制端口)
MOV43H,AL;
初始化为0工作方式,A口输出,B口输入
MOVAL,80H;
将10000000送到83H口(显示8255A的控制口)
MOV83H,AL;
初始化为0工作方式,都为输出
MOVAL,13H;
将00010011送00H(8259A的ICW1)
MOV00H,AL
MOVAL,08H;
设中断类型号(ICW2)
MOV01H,AL
MOVAL,0DH;
设ICW4
A:
STI;
开中断
OUT40H,FFH
INAL,41H
CMPAL,FFH
JEB
CALLKEY;
调用键盘子程序
B:
CALLTEMDT;
调用温度检测子程序
CALLCOMP;
调用温度比较子程序
LOOPA
IRQ5:
OUT80H07H;
选中三个数码管,高水位中断
OUT81H,76H;
显示“H”字样,表示水位过高
CALLXIANG;
调用“响”子程序
STI;
IRET
IRQ6:
OUT80H,07H;
选中三个数码管,低水位中断
OUT81H,38H;
显示“L”字样,表示水位过低
CALLSINAG;
STI
KEYPROCFAR;
键盘检测子程序
MOVCX,2000;
延时,去抖
C:
LOOPC
JED;
按下键盘时跳转
OUT82H,AL;
送到二极管显示
MOVLED,AL;
送到LED存储单元
CMPAL,01H
JNEE1
MOVAL,1EH;
30度
E1:
CMPAL,02H
JNEE2
MOVAL,28H
E2:
CMPAL,04H
JNEE3
MOVAL,32H
E3:
CMPAL,08H
JNEE4
MOVAL,3CH
E4:
CMPAL,10H
JNEE5
MOVAL,46H
E5:
CMPAL,20H
JNEE6
MOVAL,50H
E6:
CMPAL,40H
JNEE7
MOVAL,5AH
E7;
MOVAL,64H
MOVSETTEM,AL
D:
RET
KEYENDP
TEMDTPROCFAR;
温度检测子程序
INAL,C0H;
驱动ADC0803IN工作
MOVCX,1000H
F1:
LOOPF1;
等待温度转换完成后输出中断
IRQ7:
MOVBX,OFFSETTEMBIAO;
温度表
INAL,42H
MOVCX,64H
F:
CMP[BX],AL
JAEG;
大于或等于时跳转
INCBX
LOOPF
G:
MOVAX,61H
SUBAL,CL
MOVTEM,AL
MOVAH,00H
DIV64H;
除以100,取出百倍数
OUT80H,04H;
选中第一个数码管
MOVBL,AL
MOVBH,00H
MOVSI,OFFSETDUAN
OUT81H,[SI+BX]显示温度的百位数
MOVCX,2000H
H:
LOOPH
MOVAL,AH
DIV10
OUT80H,02H;
选中第二个数码管
OUT81H,[SI+BX]
I:
LOOPI
MOVBL,AH
MOVBH,00
OUT80H,01H;
选中第三个数码管
OUT81H[SI+BX]
TEMDTENDP
COMPPROCFAR
MOVAL,TEM
MOVAL,SETTEM
CMPAL,BL
JBEL;
当设定温度大于或等于实际温度时,不加热
SUBAL,BL
MOVAL,08H
CMPAL,14H当设定温度比实际温度高出20°
时,开中等功率的加热管
JAJ
ADDAH,10H
JMPK
J:
CMPAL,32H当设定温度比实际温度高出50°
时,开大功率加热管
JAK
ADDAH,2DH
K:
OUT80,AH
L:
COMPPROCENDP
九.总结与体会
1.在本次设计中,我们完成了设计任务,虽然没有条件调试,算不上成功地解决问题,但在此过程中,我们体会到了微型计算机技术和汇编语言的功能。
懂得了用所学的知识解决遇到的实际问题。
2.在合作的过程中,我们合作无间,先是一起讨论如何实现设计,做出了系统的整体框图。
当一人在做硬(软)件时,另一个人帮忙上网找资料,解决其遇到的问题。
使得我们出色地完成了任务。
3.在设计的过程中,通过综合运用所学的知识,能过不断地上网查找相关资料,使我们更好地理解了微机原理,巩固所学的知识,学以至用。
4.对于这样的设计,我们都觉得很有意思,以前总是不知道所学的知识有何用处,通过这样的设计,我们找到了学习的乐趣,有了更好的动力学习,相信以后我们会更努力地学习,以解决今后生活或工作所要面对的种种问题。