单片机应用系统设计简介及实验.docx_第1页
单片机应用系统设计简介及实验.docx_第2页
单片机应用系统设计简介及实验.docx_第3页
单片机应用系统设计简介及实验.docx_第4页
单片机应用系统设计简介及实验.docx_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机应用系统设计简介及实验基于51单片机的智能电热水器设计本设计是基于AT89S51单片机的智能电热水器的控制器的设计,要达到的控制要求有:(1)用两位数码管显示水温,两位数码管显示预设温度。(2)当检测温度低于预设温度1时,开始加热;检测温度高于预设温度1时,停止加热。(3)设置3个程序按键。电源开关键:电源关闭时,4个数码管熄灭,加热元件断电,但单片机系统正常工作,热水器面板上的电源指示灯点亮。电源开启后,根据上次设定的温度(220V总电源不能关闭)自动进入工作状态。如220V总电源关闭后再开机,预设温度自动定为40。温度+键:每按一次该键,预设温度加1,长按该键(时间超过1秒以上),预设温度快速增加。温度-键:每按一次该键,预设温度减1,长按该键(时间超过1秒以上),预设温度快速减小。(4)报警设置。高温报警:当检测温度高于65时,自动报警。低温报警:当检测温度低于0时,自动报警。缺水报警:当储水箱内缺水时,自动报警。漏电报警:当热水器发生漏电情况时,自动报警。一、系统硬件设计单片机应用系统的硬件电路设计包含两部分内容:一是系统扩展,即单片机内部的功能单元,如ROM、RAM、I/O、定时器/计数器、中断系统等不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计相应的电路。二是系统的配置,即按照系统功能要求配置外围设备,如键盘、显示器、打印机、A/D、D/A转换器等,要设计合适的接口电路。本设计中只用最小系统加上键盘、显示、ISP接口电路,单片机本身资源可以满足设计要求,所以不必对单片机进行扩展。系统的硬件系统以AT89S51单片机为核心,主要分两部分:直流稳压电源和智能电热水器控制电路,其原理图见附图。直流稳压电源由变压器、整流桥、滤波电路、稳压电路组成。智能电热水器系统由时钟电路、复位电路、报警电路、ISP在线编程接口电路键盘、模数转换电路和显示接口电路组成。1.电源电路电源设计是电路设计很重要关节。它的稳定与否涉及到电路是否能稳定工作。按要求需要一个+5V电压,一个+12V左右可调电压。于是采用可调压芯片LM317,它是稳压芯片。LM317是三端稳压集成电路,最大输出电流为2.2A,输出电压范围为1.25V37V。它具有输出电压可变、内藏保护功能、体积小、性价比高、工作稳定可靠等特点。用它制作输出电压可变稳压电源,调节可变电阻R2,便可从LM317输出端获得UO(可变输出电压)。从电路中可以看出,LM317的输出电压(也就是稳压电源的输出电压)U0为两个电压之和,也就是R1两端电压与R2两端电压之和。而IR2实际上是两路电流之和,一路是经R1流向R2的电流IRI,其大小为URI/Rl。因URI为恒定电压1.25V,Rl是一个固定电阻,小于240欧姆。所以IRl是一个恒定的电流。另一路是LM317调整端流出的电流ID,ID的平均值是50A左右,最大值一般不超过100A。而且在LM317稳定工作时,ID的值基本上是一个恒定的值。调节R2阻值即可调节LM317输出电压UO。既然ID和IRl对调节输出电压UO都起到了一定作用,并且IR1是由R1提供,IRI大小也没有任何限制,LM317输出电压服从1.25+IDR2=UO关系。+5V电压也是利用三端稳压集成电路得到的,采用7805芯片。其用法和LM317差别不大,如下图所示。LM7805的1端是电源的输入端,3端是输出端,2端是接地端。2.时钟电路 用来产生时钟信号供单片机工作,晶振采用12MHz,平衡电容采用33pF。复位电路在系统上电或运行过程中对单片机进行初始化操作。按键采用独立式热键,用来扩展系统功能,分别可以实现电源开关、温度增加和温度减少三个功能。数码管用来显示水温和水位两组数据,所有数码管采用共阳接法,段控端接在单片机同一I/O口,位控端分别接在不同位的I/O口。发光二极管用来指示系统运行状态,电源指示灯(红):接通220V电源,该指示灯点亮。加热指示灯(绿):加热元件工作时,该指示灯被点亮。报警指示灯(黄):当热水器出现异常情况时,该指示灯被点亮。ISP接口通过并口与PC机连接,实现单片机与PC机通讯,用编译器对源程序进行调试及编译,通过ISP接口将形成的二进制目标程序下载到AT89S51单片机上。3.报警电路在正常情况下,流过磁环的电流大小相等,方向相反,磁环检测线圈无感应电流信号,漏电检测集成电路输出低电平。当出现漏电电流时,由于流过磁环的电流不平衡,于是磁环检测线圈感应出漏电信号,经集成电路M54123L放大输出高电平,经三极管倒相后输出至单片机。单片机接收到漏电信号,则停止加热、保温及键盘操作,结束程序并发出报警信号,蜂鸣器连续呜响。在漏电保护及自检不合格情况下,只有关闭电源及排除故障后,重新接通电源才能工作。4.温度检测电路采用温度传感器DS18B20采集电热水器的实时温度, 提供给AT89S51的P3.2口作为数据输入。在本次设计中我们所控的对象为水温。5.水位检测水位检测为三个并联的不同阻值的电阻,电路的电极电流较小(几个微安),电腐蚀小,适用水电阻变化范围大(几K一100K欧)。某电阻所在水位未到达,电阻截止;水位到达,电阻导通,组成并联电路。将不同阻值所分得的电压经PTB1转换后,可判断出水位信息(高、中、低、干烧)。二、系统程序设计1. A/D转换器子程序ABC110 选择第三通道ST0,ST1,ST0 产生启动转换的正脉冲信号CHEQU 30HDPCNTEQU 31HDPBUFEQU 33HGDATAEQU 32HSTBIT P3.0OEBIT P3.1EOCBIT P3.2ORG 00HLJMP STARTORG 0BHLJMP T0XORG 30HSTART:MOV CH,#0BCHMOV DPCNT,#00HMOV R1,#DPCNTMOV R7,#5MOV A,#10MOV R0,#DPBUFLOP:MOV R0,AINC R0DJNZ R7,LOPMOV R0,#00HINC R0MOV R0,#00HINC R0MOV R0,#00HMOV TMOD,#01HMOV TH0,#(65536-4000)/256MOV TL0,#(65536-4000) MOD 256SETB TR0SETB ET0SETB EAWT:CLR STSETB STCLR STWAIT:JNB EOC,WAITSETB OEMOV GDATA,P0CLR OEMOV A,GDATAMOV B,#100DIV ABMOV 33H,AMOV A,BMOV B,#10DIV ABMOV 34H,AMOV 35H,BSJMP WTT0X:NOPMOV TH0,#(65536-4000)/256MOV TL0,#(65536-4000) MOD 256MOV DPTR,#DPCDMOV A,DPCNTADD A,#DPBUFMOV R0,AMOV A,R0MOVC A,A+DPTRMOV P1,AMOV DPTR,#DPBTMOV A,DPCNTMOVC A,A+DPTRMOV P2,AINC DPCNTMOV A,DPCNTCJNE A,#8,NEXTMOV DPCNT,#00HNEXT:RETIDPCD:DB 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FH,00HDPBT:DB 0FEH,0FDH,0FBH,0F7HDB 0EFH,0DFH,0BFH,07FHEND2数码管显示子程序ORG0000HMAX7219:DIN BIT P1.1 定义变量 CLK BIT P1.2 LOAD BIT P1.1 LED_BF EQU 50H 显示数据首址 AJMP MAINMAIN: MOV SP.#70H LCALL PROCESS 设置MAX7219初始值 LCALL DISPLAY 显示WAIT; 其他程序省略 SJMP WAIT MAX7219 初始化子程序PROCECC :MOVA,#0BHMOVB,#07HLCALLW_7219MOV A,#09HMOV B,#00HLCALL W_7219MOV A,#0AHMOV B,#09HLCALL W_7219MOV A,#0CHMOV B,#01HLCALL W_7219RET;MAX7219 显示子程序DISPLAY:MOV R0,#LED_BFMOV R4,#01HMOV R3,#08HC_DISP:MOV A,R0MOV B,AMOV A,R4LCALL W_7219INC R0INC R4DJNZ R3,C_DISPRETW_7219:CLR LOADLCALL SD_7219MOV A,BLCALL SD_7219SETB LOADRETSD_7219:MOV R6,#08HC_SD:NOPCLRCLKRLC AMOV DIN,CNOP3滤波电路驱动程序中值滤波 FILT2:MOV A,R2 CLR C SUBB A,R3 JC FILT21 MOV A,R2 XCH A,R3 MOV R2,AFILT21:MOV A,R3 CLR C SUBB A,R4 JC FILT22 MOV A,R4 XCH A,R3 XCH R4,A CLR C SUBB A,R2 JNC FILT22 MOV A,R2 MOV R3,AFILT22:RET 4温度传感电路 ORG0000HSTART: MOVSP,#60H 开机初始化 MOVP0,#0FFH MOVP1,#0FEH MOVP2,#0FFH MOVP3,#0FFH MAIN: LCALL GET_TEMPER调用读温度子程序 LCALL DISP 调用数码管显示子程序 AJMPMAIN 重复循环GET_TEMPER: SETBP3.3 LCALL RST18B20 复位DS18B20 JB 00H,DSS2 RETDSS2: MOV A,#0CCH 跳过ROM匹配 LCALL WR18B20 MOV A,#44H 向DS18B20发出温度转换命 LCALL WR18B20 LCALL RST18B20 准备读温度前先复位 MOV A,#0CCH跳过ROM匹配 LCALL WR18B20 MOV A,#0BEH向DS18B20发出读温度命令 LCALL WR18B20 LCALL RE18B20读出温度数据 RETRST18B20: SETB P3.3 NOP CLR P3.3 MOV R0,#06BH主机发出复位低脉冲 MOV R1,#03H DSR1: DJNZR0,DSR1 MOV R0,#6BH DJNZ R1,DSR1 SETB P3.3 拉高数据线 NOP NOP NOP MOV R0,#25H DSR2: JNB P3.3,DSR3等待DS18B20回应 DJNZ R0,DSR2 LJMP DSR4 DSR3: SETB 00H 置标志位,表示DS1820存在 LJMP DSR5 DSR4: CLR 00H 清标志位,表示DS1820不存在 LJMP DSR7 DSR5: MOV R0,#06BH DSR6: DJNZR0,DSR6 延时一段时间 DSR7: SETBP3.3 RETWR18B20: MOV R2,#8 CLR C WR1:CLR P3.3 MOV R3,#6 DJNZR3,$ RRC A MOV P3.3,C MOV R3,#23 DJNZR3,$ SETBP3.3 NOP DJNZR2,WR1 SETBP3.3 RET RE18B20: MOV R4,#2 MOV R1,#2FH RE00: MOV R2,#8 RE01: CLR C SETBP3.3 NOP NOP CLR P3.3 NOP NOP NOP SETB P3.3 MOV R3,#09 RE10: DJNZ R3,RE10 MOV C,P3.3 MOV R3,#23 RE20: DJNZ R3,RE20 RRC A DJNZ R2,RE01 MOV R1,A DEC R1 DJNZ R4,RE00 RET DISP: MOV A,2FH MOV C,70H RRC A MOV C,71H RRC A MOV C,72H RRC A MOV C,73H RRC A MOV 2FH,A MOV A,2FH MOV B,#10 DIV AB MOV 30H,A MOV 31H,B MOV A,30H MOV DPTR,#SGTB MOVCA,A+DPTR MOV P0,A 显示温度“十位”值 CLR P2.2 SETB P2.0 SETB P2.1 SETB P2.3 SETB P2.4 LCALL YS4722U MOV A,31H MOV DPTR,#SGTB MOVCA,A+DPTR MOV P0,A 显示温度“个位”值 CLR P2.3 SETB P2.0 SETB P2.1 SETB P2.2 SETB P2.4 LCALL YS4722U MOV A,#010

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论