基于单片机智能电水壶控制系统设计毕业论文(编辑修改稿)内容摘要:

12MHZ。 此设计单片机时钟电路如图 4示 : 10 图 4 单片机的时钟电路 单片机的复位电路 系统开始运行和重新启动靠复位电路来实现,复位使 CPU 和 其它部件处于一个确定的初始状态,从这个状态开始工作。 此设计单片机的复位电路如图 5示 : 图 5 单片机的复位电路 11 在单片机运行期间,利用按键也可以完成复位操作。 单片机复位操作使单片机进入初始化状态。 复位后,程序计数器 PC=0000H,因此,程序从 0000H 地址单元开始执行。 运行中的复位操作不会改变片内 RAM 的内容。 复位是靠外部电路实现的。 所谓最小系统,是指一个真正可用的单片机最小配置系统 ,其作用主要是为了保证单片机系统能正常工作。 对于单片机内部资源已能满足系统需要的,可直接采用 最小系统。 51 型片内有 4K的 ROM/EPROM,因此,只需要外接晶体振荡器和复位电路就可构成最小系统。 本设计的单片机最小系统 如图 6示。 图 6 单片机最小系统 在外部振荡电路中,单片机的 X1和 X2 管脚分别接至由 晶振和两个 22PF 电容构成的振荡电路两侧,为电路提供正常的时钟脉冲。 在复位电路中,单片机 RESET 管脚一方面经 10uF 的电容接至电源正极,实现上电自动复位,另一方面经开关 S接电源。 其主要功能是把 PC初始化为 0000H,是单片机从 0000H单元开始执行程序,除了进入系统的初始化之 外,当由于程序出错或者操作错误使系统处于死锁状态时,为了摆脱困境,也需要按复位键重新启动,因此,复位 12 电路是单片机系统中不可缺少的一部分 [10]。 温度采集模块 温度由 DALLAS 公司生产的数字温度传感器 DS18B20 采集。 DS18B20 测温范围为 55℃~ +125℃,测温分辨率可达 ℃,被测温度用符号扩展的 16位补码形式串行输出。 CPU 只需一根端口线就能与诸多 DS18B20 通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。 DS18B20 内部有一个 9 字节的高速存储器用于 存储温度值。 其中前两个字节是测得的温度数据 —— 第 1 字节的内容是温度的低八位,第 2字节是温度的高八位;第 3 和第 4 字节是温度上限 TH 与温度下限 TL 的易失性拷贝,第 5 字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新;第 8 这三个字节用于内部计算;第 9 个字节是冗余检验字节,可用来保证通信的正确性。 当温度转换命令发出后,经转换所得的温度值以二字节补码形式存放在此存储器的第 1和第 2个字节。 单片机可通过单线接口读到该数据,读取时低位在前,高位在后,其中高 5位是符号位,中间 7位是整数位,最低 4 位是小数位。 DS18B20 最大的特点是单总线数据传输方式,因此对读写的数据位有着严格的时序要求。 时序包括:初始化时序、读时序、写时序。 每一次命令和数据的传输都是从单片机启动写时序开始,如果要求 DS18B20 回送数据,在进行写命令后,单片机需启动读时序完成数据接收。 数据和命令的传输都是低位在先 [11]。 继电器介绍 本设计是用单片机控制继电器达到以弱控强的电路,下面再来介绍一下单片机和强电之间的桥梁 电磁继电器。 电磁继电器是有触点电继电器是有触点电继电器的一种。 它是利用电磁效应实现电路开、关 控制作用的原件,广泛应用在电子设备、仪器仪表及自动化设备中。 在各种自动设备中,都要求用一个低电压电路提控制一个高电压的电器电路。 这样不仅可以为电子线路和电器电路提供良好的电隔离,还可以保护电子电路和人员安全。 首先看看继电器的驱动 ,如图 7所示: 13 图 7 继电器的驱动 这是典型的继电器驱动电路图,这样的电路图在网络上随处可以搜到,并且标准教科书上一般也是这样的电路图。 单片机是一个弱电器件,一般情况下他们大都工作在 5V甚至更低。 驱动电流在m A 级以下。 而要把它用于一些大功率场合,比如控制电动机,显然是不行的。 所 以,就要有一个环节来衔接,这个环节就是所谓的“功率驱动”。 继电器驱动就是一个典型的、的功率驱动环节。 在这里,继电器驱动含有两个意思:一是对继电器进行驱动,因为继电器本身对于单片机来说就是一个功率器件:还有就是继电器去驱动其他负载,比如继电器可以驱动中间继电器,可以直接驱动接触器,所以,继电器驱动就是单片机与其他大功率负载接口。 键盘及显示电路 键盘输入特点 ( 1) 由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下断开。 因而,在闭合和断开的瞬间均伴随着一连串的抖 动,抖动时间的长短由按键的机械特性决定,一般为 5~10ms,为了确保按键的状态,必须消除按键抖动的影响,这也是按键抗干扰的主要的一个方面。 ( 2) 消除按键抖动影响通常有硬件、软件两种方法。 本论文采用 软件 消抖方法。 软件 消抖方法 即检测出键闭合后执行一个延时程序, 5ms~ 10ms 的延时,让 14 前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。 当检测到按键释放后,也要给 5ms~ 10ms 的延时,待后沿抖动消失后才能转入该键的处理程序。 显示器说明 现在的字符型液晶模 块已经是单片机应用设计中最常用的信息显示器件了。 1602 型 LCD 显示模块具有体积小,功耗低,显示内容丰富等特点。 1602 型 LCD可以显示 2行 16 个字符,有 8位数据总线 D0~ D7和 RS, R/W, EN三个控制端口,工作电压为 5V,并且具有字符对比度调节和背光功能 [6]。 1602 型 LCD 的接口信号说明如表 1 示。 表 1 型 LCD 的接口信号说明 1602 型 LCD 的主要技术参数如表 2 示。 表 2 型 LCD 的主要技术参数 显示容量 16X2 个字符 芯片工作电压 ~ 工作电流 ( ) 模块最佳工作电压 字符尺寸 (WXH)mm 用 直接访问方式 即 微处理器把液晶显示模块当做存储器或 I/O 设备直接挂在总线上,模块 8位数据总线与微处理器的数据总线相连,用读操作或写操作信号与地址信号共同产生控制信号 [3]。 编号 符号 引脚说明 编号 符号 引脚说明 1 VSS 电源地 9 D2 Data I/O 2 VDD 电源正极 10 D3 Data I/O 3 V0 液晶显示偏压 信号 11 D4 Data I/O 4 RS 数据 /命令选择端( H/L) 12 D5 Data I/O 5 R/W 读写选择端( H/L) 13 D6 Data I/O 6 E 使能信号 14 D7 Data I/O 7 D0 Data I/O 15 BLA 背光源正极 8 D1 Data I/O 16 BLK 背光源负极 15 读状态:输入: RS=L, RW=L, E=H 输出: D0~D7=状态字 读数据:输入: RS=H, RW=H, E=H 输出:无 写指令:输入: RS=L, RW=L, D0~D7=指令码, E=高脉冲 输出: D0~D7=数据 写数据:输入: RS=H, RW=L, D0~D7=数据, E=高脉冲 输出:无 其具体电路如图 8所示: 图 8 电路原理图 加热电路和报警装置 加热电路 电热器件由双向可控硅 KS控制, KS由光电耦合器 4N25和晶体管 9013触发。 单片机 8051 的 端输出的触发信号,经 7407 后,送到光电耦合器 4N25。 端输出高电平时, 4N25 没有电流输入,晶体管 T截止,双向晶闸管 KS 关断,电热器不加热。 当 端输出低电平时, 7407 输出低电平, 4N25 的输入电流约为18mА , 输出端的电流大 ,经晶体管 9013 放大后,双向可控硅门极的电流可达 200 mА ,双向可控硅导通,电热器加热。 电阻 3R 的作用是限制触发电流,当双向可控硅 KS 的功率较小时, 3R 的值可由 30Ω 改为 100Ω [8]。 16 C 100. 1u f1234D6B R ID G E 112U 16 A74 07Q3T R IA CQ290 13U 154N 25T2T R A N S 5R810 0KR 1710 0KR 1510 0KR 16R E S 15 VP20IN T12J2C O N 2C 1233 00 ufR?R E S 2vc c 图 9 加热电路图 过零检测电路由变压器 B的其中一个绕组 3L 和电容器 2C 组成。 3L 产生 的交流电压,通过 2C 交连到 INT0 和 INT1 端。 INT0 是过零检测端,它可对过零的上升信号检测而产生中断; INT1 也是过零检测端,它可对过零的下降信号检测而产生中断。 把 INTO 和 INT1 产生的中断综合处理,即可得到电源电压过零的时刻。 选用不同的电热器件,启动的过程也不一样。 对于电阻率不随温度变化的电热器件,可以直接启动,即在电压过零时触发双向可控硅 KS。 对于电阻率随温度变化的电热器件,通常使用降压启动方式,即开始通电时,电压逐渐上升,使电热器的工作电流在 KS 允许的范围以内。 过一定的时间后,电热器件的工作电压才达到额定电压。 报警装置 首先通过按键对要达到的温度进行设定,通过加热装置对水进行加热,当加热温度达到或超过设定值时,将加热信号送到 8051 中,通过微处理器处理后,输出到 P1 口 报警,并通过三极管驱动扬声器或蜂鸣器报警。 如 图 10所示 : 17 图 10 报警装置的硬件电路图 整体电路设计 整体电路包含电源电路、显示电路、 传感器电路、 键盘电路、 单片机控制电路 组成。 其整体电路原理图如图 11 所示: 图 11 整体设计原理图 18 单片机的软件设计 总的程序设计框图 本系统的软件实现没有高难度的技巧和算法,但作为一个实用系统,对其可靠性有较高的要求。 单片机的 I/O 口方向是可编程的,在程序中应正确设置其方向,保证单片机的正常工作。 关于详细程序清单在此省略,图 12 给出了主程序流程图,显示部分控制是通过定时器中断来实现的 [9]。 图 12 主程序流程图 include include define uint unsigned int define uchar unsigned char 开始 初始化 获取温度 报警 与温度上限比较 转换并显示 Y 19 ///////1602 液晶控制接口 ///////////////// sbit rs=P2^6。 sbit en=P2^7。 //////////////////////////////////////// sbit jian_ce=P3^3。 //缺 水检测端口 ////////按键 //////////////////////////// sbit key1=P3^4。 sbit key2=P3^5。 sbit key3=P3^6。 ////////////////////////// sbit beep=P2^0。 //蜂鸣器接口 /////////////////////////////// sbit DQ=P2^2。 //温度传感器接口 /////////////////////////////// sbit jdq=P1^2。 //继电器接口 uint wen_du。 uint shang,xia。 uchar num。 bit auto_flag。 //自动状态 bit auto_ok。 //自动加热 ok bit mode_flag。 //手动模式 bit mode_ok。 //手动加热 ok 读出温度子程序 读出温度子程序的主要功能是读出 RAM 中的 9 字节,在读出时需进行 CRC校验,校验有错时不进行温度数据的改写。 其程序流程图如图 13 示 : 20 图 13 读温 度流程图 /**************读取 ds18b20 当前温度 ************/ void deal_with() { uint temp1,temp2。 uchar a=0。 uchar b=0。 uchar t=0。 Init_DS18B20()。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。