基于单片机的室内电热水器控制系统设计内容摘要:
项命令,此时可以选择 stepover 、step into 和 step out 命令执行程序 (可以用快捷键 F F11 和ctrl+F11),执行的效果是单 句执行、进入子程序执行和跳出子程序执行。 在执行了 start / restart debuging 命令后,在 debug 菜单基于单片机的室内电热水器控制系统设计 10 的下面要出现仿真中所涉及到的软件列表和单片机的系统资源等,可供调试时分析和查看。 Proteus 软件是英国 Labcenter electronics 公司出版的 EDA 工具软件(该软件中国总代理为广州风标电子技术有限公司)。 它不仅具有其它 EDA 工具软件的仿真功能,还能仿真单片机及外围器件。 它是目前最好的仿真单片机及外围器件的工具。 虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学 的教师、致力于单片机开发应用的科技工作者的青睐。 Proteus 是世界上著名的 EDA 工具 (仿真软件 ),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到 PCB设计,真正实现了从概念到产品的完整设计。 是目前世界上唯一将电路仿真软件、 PCB 设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持 805 HC1 PIC10/12/16/18/24/30/DsPIC3 AVR、ARM、 8086 和 MSP430 等, 2020 年即将增加 Cortex 和 DSP 系列处理器,并持续增加其他系列处理器模型。 在编译方 面,它也支持 IAR、 Keil 和MPLAB 等多种编译器。 单片机编译软件 Keil 介绍 编写完程序后即可使用汇编软件对程序进行编译了,本设计所使用的编译软件是 Keil51,其步骤如下: 源文件的建立 : 使用菜单“ FileNew”或者点击工具栏的新建文件按钮,即可在项目窗口的右侧打开一个新的文本编辑窗口,在该窗口中输入要调试的汇编语言源程序,保存该文件,注意必须加上扩展名 .c。 建立工程文件 :点击“ ProjectNew Project„ ”菜单,在出现一个对话框中,输入一个工程文件名,不需要扩展名。 点 击“保存”按钮。 工程的详细设置 : 工程建立好以后,还要对工程进行进一步的设置,以满足要求。 首先点击左边 Project 窗口的 Target 1,然后使用菜单“ ProjectOption for target ‘ target1’”即出现对工程设置的对话框,对部分内容进行必要的设置改即可,不过大部份设置项都是取默认值。 编译、连接 : 在设置好工程后,即可进行编译、连接。 选择菜单ProjectBuild target,对当前工程进行连接,如果当前文件已修改,软件会先对该文件进行编译,然后再连接以产生目标代码; 如果选择基于单片机的室内电热水器控制系统设计 11 Rebuild All target files 将会对当前工程中的所有文件重新进行编译然后再连接,确保最终生产的目标代码是最新的,而 Translate „ .项则仅对该文件进行编译,不进行连接。 基于单片机的室内电热水器控制系统设计 12 2 方案 设计 功能 介绍 AT89C51 主要性能 与 MCS51 单片机产品兼容 ; 8K 字节在系统可编程 Flash 存储器; 1000 次擦写周期;全静态操作: 0Hz~ 33Hz ;三级加密程序存储器; 32 个可编程 I/O 口线;三个 16 位定时器 /计数器;八个中断源;全双工 UART 串行 通道;低功耗空闲和掉电模式;掉电后中断可唤醒;看门狗定时器;双数据指针;掉电标识符。 数字温度传感器 DS18B20 数字温度传感器概述 ; DS18B20 数字温度计是 DALLAS 公司生产的 1- Wire,即单总线器件,具有线路简单,体积小的特点。 因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。 DS18B20 产品的特点如下所示:只要求一个端口即可实现通信。 在DS18B20 中的每个器件上都有独一无二的序列号。 实际应用中不需要外部任何元器件即可实现测温。 测量温度 范围在- 到 + 之间。 数字温度计的分辨率用户可以从 9 位到 12 位选择。 内部有温度上、下限告警设置。 TO- 92 封装的 DS18B20 的引脚排列见图 ,其引脚功能描述见表。 表 DS18B20详细 引脚功能描述 序 号 名 称 引脚功能描述 1 GND 地信 号 2 DQ 数 字输入输出引脚 ,开漏单总线接口引脚 ,当使用寄生电源时 ,可向电源提供电源 3 VDD 可 选择 的 VDD 引脚 ,当工作于寄生电源时 ,该引脚必须接地 DS18B20 的内部结构 : DS18B20 的内部框图如图 所示。 64 位 ROM存储器件独一无二的序列号。 暂存器包含两字节( 0 和 1 字节)的温度寄存器,用于存储温度传感器的数字输出。 暂存器还提供一字节的上线基于单片机的室内电热水器控制系统设计 13 警报触发( TH)和下线警报触发( TL)寄存器( 2 和 3 字节),和一字节的配置寄存器( 4 字节),使用者可以通过配置寄存器来设置温度转换的精度。 暂存器的 6 和 7 字节器件内部保留使用。 第八字节含有循环冗余码( CRC )。 图 DS18B20的内部框图 DS18B20 加电后,处在空闲状态。 要启动温度测量和模拟到数字的转换,处理器须向其发出 Convert T [44h] 命令; 转换完后, DS18B20回到空闲状态。 温度数据是以带符号位的 16bit 补码存储在温度寄存器中的,如图 : 图 符号位说明温度是正值还是负值,正值时 S=0,负值时 S=1。 表 基于单片机的室内电热水器控制系统设计 14 给出了一些数字输出数据与对应的温度值的例子。 表 /数据的关系 访问 DS18B20 必须严格遵守这 一命令序列,如果丢失任何一步或序列混乱, DS18B20 都不会响应主机(除了 Search ROM 和 Alarm Search 这两个命令,在这两个命令后,主机都必须返回到第一步)。 初始化: DS18B20 所有的数据交换都由一个初始化序列开始。 由主机发出的复位脉冲和跟在其后的由 DS18B20 发出的应答脉冲构成。 当DS18B20 发出响应主机的应答脉冲时,即向主机表明它已处在总线上并且准备工作。 ROM 命令: ROM 命令通过每个器件 64bit 的 ROM 码,使主机指定某一特定器件(如果有多个器件挂在总线上)与之进行通信。 DS18B20 的ROM 如表 所示,每个 ROM 命令都是 8 bit 长。 表 DS18B20的 ROM 指令 协议 功能 读 ROM 33H 读 DS18B20 中的编码 (即 64位地址 ) 符合 ROM 55H 发出此命令后,接着发出 64 位 ROM编码,访问单总线上与该编码相对应的DS18B20,使之作出响应,为下一步对该温度 输出 (2 进制 ) 输出 (16 进制 ) +125℃ 0000 0111 1101 0000 07D0H +85℃ 0000 0101 0101 0000 0550H +℃ 0000 0001 1001 0001 0191H +℃ 0000 0000 1010 0010 00A2H +℃ 0000 0000 0000 1000 0008H 0℃ 0000 0000 0000 0000 0000H ℃ 1111 1111 1111 1000 FFF8H ℃ 1111 1111 0101 1110 FF5EH 25℃ 1110 1110 0110 1111 EE6FH 55℃ 1111 1110 1001 0000 FE90H 基于单片机的室内电热水器控制系统设计 15 DS18B20 的读写作准备 搜索 ROM 0F0H 用于确定挂接在同一总线上 DS18B20的个数和识别 64 位 ROM 地址,为操作各器件作好准备 跳过 ROM 0CCH 忽略 64 位 ROM 地址,直接向DS18B20V 温度转换命令,适用于单个DS18B20 工作 告 警 搜索 命令 0ECH 执行后,只有温度超过庙宇值上限或下限的片子才做出响应 温度转换 44H 启动 DS18B20 进行温度转换,转换时间最长为 500ms(典型为 200ms),结果丰入内部 9字节 RAM 中 读暂存器 BEH 读内部 RAM 中 9字节的内容 写暂存器 4EH 发出向内部 RAM 的第 4 字节写上、下温度数据命令,紧该温度命令之后,传达两字节的数据 复制暂存器 48H 将 RAM 中第 4 字内容复制到E2PROM 中 重调 E2PROM 0B8H 将 E2PROM 中内容恢复到 RAM 中的第 4 字节 读供电方式 0B4H 读 DS18B20 的供电模式,寄生供电时DS18B20 发送“ 0”,外部供电时 DS18B20发送“ 1” 功能命令:主机通过功能命令对 DS18B20 进行读 /写 Scratchpad 存储器,或者启动温度转换。 数码管工作原理 : LED 的发光原理,稍有电子技术基础的人士都很清楚,我们不想作过多的介绍, 7 段 LED 数码管,则在一定形状的绝缘材料上,利用单只 LED 组合排列成 “8” 字型的数码管 , 分别引出它们的电极,点亮相应的点划来显示出 09的数字。 图 数码管引脚 基于单片机的室内电热水器控制系统设计 16 LED 数码管根据 LED 的接法不同分为共阴和共阳两类,了解 LED 的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。 上 图是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。 将多只 LED 的阴极连在一起即为共阴式,而将多只 LED 的阳极连在一起即为共阳式。 以共阴式为例,如把阴极接地,在相应段的阳极接上正电源,该段即会发光。 当然, LED 的电流通常较小 ,一般均需在回路中接上限流电阻。 假如我们将 b和 c段接上正电源,其它端接地或悬空,那么 b和 c段发光,此时,数码管显示将显示数字 “1”。 而将 a、b、 d、 e和 g段都接上正电源,其它引脚悬空,此时数码管将显示 “2”。 其它字符的显示原理类同。 系统方案论证 方案一 由于本设计的温度测温电路,可以使用热敏电阻 Pt100 其感温效应, Pt100 温度传感器为正温度系数热敏电阻传感器,主要技术参数如下:测量范围: 200℃~ +850℃;允许偏差值△℃: A 级 177。 ( +│ t│), B 级 177。 ( + │ t│);热响应时间 30s;最小置入深度:热电阻的最小置入深度 ≥ 200mm;允通电流 ≤ 5mA。 另外, Pt100 温度传感器还具有抗振动、稳定性好、准确度高、耐高压等优点。 铂热电阻的线性较好,在 0~100 摄氏度之间变化时,最大非线性偏差小于 摄氏度。 铂热电阻阻值与温度关系为 式中, A= ; B = ; C =。 可见 Pt100 在常温 0~100 摄氏度之间变化时线性度非常好,其阻值 表达式可近似简化为: RPt=100( 1+At),当温度变化1 摄氏度, Pt100 阻值近似变化 欧。 下表 Pt100在 0℃ ~100℃的分度表。 基于单片机的室内电热水器控制系统设计 17 传感器电路包括传感器测量电桥和放大电路两部分, 图 R R R4 和 Pt100 组成传感器测量电桥,为了保证电桥输出电压信号的稳定性,电桥的输入电压通过 TL431 稳至。 从电桥获取的差分信号通过两级运放放大后输入单片机。 电桥的一个桥臂采用可调电阻 R3,通过调节 R3 可以调整输入到运放的差分电压信号大小,通常用于调整零点。 放大电路采用 LM358 集成运算放大器,为了防止单级放大倍数过高带来的非线性误差,放大电路采用两级放大,如图 12 所示,前一级约为 10 倍,后一级约为 3 倍。 温度在 0~100 度变化,当温度上升时,Pt100 阻值变大,输入放大电路的差分信号变大,放大电路的输出电压Av 对应升高。 这种设计需要用到 A/D 转换电路,感温电路比较麻烦。 基于单片机的室内电热水器控制系统设计 18 方案二 进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器特性如下 DS18B20 是 DALLAS 公司生产的一线制数字温度传感器;温度测量范围为- 55℃~+ 125℃ ,可编程为 9 位~ 12 位A/D 转换精度,测温分辨率可达 ℃,被测温度用符号扩展的 16 位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个 DS18B20 可以并联到一起, CPU 只需一根数据线就能与诸多 DS18B20 通信,占用微处理器的端口较少,可节省大量。基于单片机的室内电热水器控制系统设计
相关推荐
econd3=0。 } else { for(i=0。 ikeycount。 i++) { if(getps[i]!=ps[i]) { i=keycount。 errorflag=1。 rightflag=0。 second3=0。 goto a。 } } errorflag=0。 rightflag=1。 a: i=keycount。 } } temp=temp amp。 0x0f。
口是一个具有内部上拉电阻的 8 位双向 I/O 口, P1 输出缓冲器能驱动个 TTL 逻辑电平。 对 P1 端口写 “1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。 作输为入使用时,被输入信号拉低的引脚由于内部上拉电阻的原因,将输出电流 IIL。 此外, 和 分别作定时器 /计数器 2 的外部计数输入( )和时器 /计数器 2 的触发输入( ),具体如表 31 所示。 在 flash
出波形,而图 8 e 为 R、 Y 两相联系输出的信号的差,它代表了逆变器输出的线电压 UUV。 当输出频率超过最大值 fM 时,经双边调制后的脉冲已开始合并,输出电压波由 SPWM 波方向转换,因而输出电压不再随输出频率成线性变化,如图 8 所示。 图 9 不同分频数下 fr 与 f 关系 图 10 开关频率 fr 与输出频率 f 的关系 HEF4752 输出的 SPWM 波的输出频率 f
,一般情况下它们大多工作在 5V 甚至更低。 驱动电流在 mA 级以下。 而要把它用于一些大功率场合,比如继电器驱动,显然是不行的。 所以就要有一个环节来衔接,这个环节就是所谓的“功率驱动”。 继电器驱动就是一个典型的、简单的功率驱动 环节。 图中三极管 8050 有两个作用:一个是起放大作用,一个是起开关作用(严格来讲开关作用是放大作用的极限情况)。 P1 处连接的是单片机的 口。
E D+ 5 V 图 报警电路 13 三 系统软件设计 主程序流程图 图 工作流程:调用初始化程序,对单片机进行初始化设置;调用 A\D转换子程序,开始 初始化 调用模数转换子程序 调用显示子程序 调用调温子程序 调用报警子程序 返回 14 对由传感测量电路采集的模拟信号进行模数转换变成数字信号。 调用显示子程序,经AT89C51 控制数字信号在 LED数码管上显示。 调用调温子程序
图所示。 从图可见, 即使在稳定负载条件下 CF 输出频率仍然随时间变化,这种频率的变化是由瞬时有功功率信号中的 cos(2ωt)成分引起的。 CF 输出频率能高达 F1 和 F2 输出频率的2048 倍。 CF 能以较高的频率输出,是因为在对瞬时有功功率进行累加完成频率转换的过程中,采用了较短的累加世间。 较短的累加世间意味着减弱了对 cos(2ωt)的平均作用