1、控制系统 综合课程设计报告 第 1 页 共 19 页 题目:利用单片机或 ARM(任选)作为主控芯片,根据实际应用状况设计家用空气调节器系统,功能需包括:系统启停、温度检测、温度设定、风速选择和工作模式选择(配合电机控制)、定时、显示等。要求:在 Proteus 平台下完成硬件电路的设计,在 Keil 平台下完成软件编程,并与硬件联调。 本文主要介绍采用单片机作为主控芯片的空气调节系统。系统采用 AT89c51 单片机 ,通过 A/D 转换器将温度传感器采集来的温度数据送入单片机,单片机将采集的数据与设定温度相比较决定电机的转速,进而调节室内温度。控制系统 综合课程设计报告 第 2 页 共 1
2、9 页 1 硬件介绍 本章 介绍系统硬件的基本功能,包括主控芯片 AT89c51,电机驱动芯片 L298,温度传感器 DS18B20,以及液晶显示屏 LM016L 等。 1 1 主控芯片 AT89c51 1.1.1 性能特点 【 1】 AT89C51 是一个低电压,高性能 CMOS 8 位单片机,片内含 4k bytes 的可反复擦写的 Flash 只读程序存储器和 128 bytes 的随机存取数据存储器( RAM) 。 该器件采用 ATMEL 高密度 , 非易失存储技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多 功能 8 位 CPU 和闪烁存储器组合在单个芯片中,
3、ATMEL 的 AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 AT89C51 内部 有 40 个引脚, 32 个外部双向输入 /输出( I/O)端口;同时内含 2个外中断口, 2 个 16 位可编程定时计数器 ,2 个全双工串行通信口。 AT89C51 可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和 Flash 存储器结合在一起,特别是可反 复擦写的 Flash 存储器可有效地降低开发成本。采用单片 AT89C51 模块组成的控制电路,它具有可编程,功能强,控制简单,集成度高等诸多优点。 AT89C51 具有 PDIP、 PQFP/TQ
4、FP 及 PLCC 等三种封装形式,以适应不同产品的需求。主要功能特性如下: ( 1) 兼容 MCS 51 指令系统 ; 全静态操作 0-24MHz; 4k 可反复擦写 (1000 次) Flash ROM; 可编程串行通道 ; 128 8bit 内部 RAM; 1 个串行中断 ; 3 级加密位 。 ( 2) 32 个双向 I/O 口 ; 2 个外中断口; 2 个 16 位可编程定时计数器; 2 个全双工串行通信口。 ( 3) 可直接驱动 LED; 低功耗空闲和掉电模式 ; 软件设置睡眠和唤醒功能 。 1.1.2 引脚功能 AT89C51 有 40 个引脚,其引脚分布如图 1.1 所示。 控制
5、系统 综合课程设计报告 第 3 页 共 19 页 图 1.1 at89c51 引脚图 引脚功能如下: VCC: 接 5V。 GND:接地。 P0 口: P0 口为 8 位漏极开路双向 I/O 口,每引脚可吸收 8 个 TTL 门电流。 P1 口: P1 口是从内部提供上拉电阻器的 8 位双向 I/O 口, P1 口缓冲器能接收和输出 4 个 TTL 门电流。 P2 口: P2 口为内部上拉电阻器的 8 位双向 I/O 口, P2 口缓冲器可接收和输出 4个 TTL 门电流。 P3 口: P3 口是 8 个带内部上拉电阻器的双向 I/O 口,可接收和输出 4 个 TTL 门电流, P3 口也可作
6、为 AT89C51 的特殊功能口。 RST:复位输入。当振荡器复位时,要保持 RST 引脚 2 个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时, 地址锁存允许的输出电平用于锁存地址的低位字节 。 在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时, ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6,它可用作对外部输出的脉冲或用于定时目的 。 要注意的是,每当访问外部数据存储器时,将跳过 1 个 ALE 脉冲。 PSEN:外部程序存储器的选通信号。由外部程序存储器取指期间,每个机器周期2 次 PSEN 有效,但在访问外部数据存储器时,这 2 次有效的
7、PSEN 信号将不出现。 EA/VPP:当 EA 保持低电平时,外部程序存储器地址为( 0000H FFFFH)不管 是否有内部程序存储器。 FLASH 编程期间,此引脚也用于施加 12V 编程电源( VPP)。 XTAL1:反向振荡器放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 1.1.3 工作原理 AT89C51 P0口为三态双向 I/O口。对于内部有程序存储器的单片机基本系统, P0控制系统 综合课程设计报告 第 4 页 共 19 页 口可以为输入 /输出口使用,直接连外部的输入 /输出设备; P0 口也可以作为系统扩展的地址 /数据总线口。 P0 口的输出
8、驱动器中有两个场效应管 T1 和 T2,上管导通下管截止时输出高电平,下管导通上管截止时输出低电平,上下管都 截止时输出引脚浮空。 P0口的输出驱动器中也有一个多路电子开关。输出驱动器转接至口锁存器的 Q端时, P0口作为双响向 I/O口使用, P0口的锁存器为“ 1”时,输出驱动器中的两个场效应管均截止,引脚浮空;而写入“ 0”时,下管道导通输出低电平。一般情况下, P0 作为输入 /输出口时应外接拉高电阻。当输出驱动器转换至地址 /数据时, P0口作为地址 /数据总线口使用,分时输出外部存储器的低 8位地址 A0 A7和传送数据D0 D7。低 8 位地址由地址允许锁存信号 ALE 锁存到外
9、部的地址锁存器中,接着 P0口便输入 /输出数据信息。 1 2 温度传感器 DS18B20 【 2】 DS18B20是由 DALLAS公司生产的 一种新型的单线数字温度传感器。,其体积小、适用于多种场合、并且适用电压较宽、更为经济。数字化温度传感器 DS18B20是世界上第一种支持“一线总线”接口的温度传感器。其温度测量范围为 -55 +125,可编程为 9位 12位转换精度,测温分辨率可达 0.0625。其分辨率设定参数以及手动设定的恒定温度值和定时时间值存储在 EEPROM 中,掉电后仍然保存。被测温度以符号扩展的 16位数字量方式串行输出,其工作电源既可在远端引入,也可通过采用寄 生电源
10、方式产生。多个 DS18B20可以同时并联到 3根或 2根线上, CPU只需要一根端口线就能与诸多 DS18B20 进行 通信,所占用的微处理器端口较少,可以节省大量的引线和设计电路。因此用它来组成一个测温系统,线路简单,且在一根通信线上可以挂多个这样的数字温度计,使用十分方便。 图 12 DS18B20图 1.2.1 DS18B20 温度传感器工作原理 DS18B20的 测温原理:低温系数晶振的振荡率受温度影响很小,用于产生固定频率脉冲信号送给 计数器 1;高温系数晶振随温度变化其振荡频率改变明显,所产生的控制系统 综合课程设计报告 第 5 页 共 19 页 信号作为计数器 2的输入脉冲。首
11、先计数器 1和温度寄存器预置在 55所对应的一个基数值。开始时计数器 1对低温系数晶振产生的脉冲信号进行减法计数,当计数器 1的预置值减为 0时,温度寄存器的值将加 1,计数器 1的预置将被重新装入,随后计数器 1重新开始对低温系数晶振产生的脉冲信号进行计数,如此循环直到计数器 2计数到 0,停止温度寄存器值的累加,此刻温度寄存器中的数值即为所测温度。 1.2.2 DS18B20温度传感器工作特点 - (1).采用单总线技术,与单片机 通信只需要一根 I/O线; (2). DS18B20具有一个独有不变的 64位序列号,可以根据序列号访问相应的器件; (3).低压供电,供电电源范围为 35V,
12、可以直接从数据线上转接电源(即为寄生电源方式); (4).测温范围为 -55 +125 ,在 -10 85范围内误差为 0.5; (5).可编程数据为 912位,转换 12位温度最大时间为 750ms; (6).可以自行手动设定报警上下限温度; (7).报警搜索命令可识别是否温度超出预定值; (8).DS18B20的分辩率可以自行通过 EEPROM设置为 912位。 (9).DS18B20可将测得的温度值直接转化为数字量,并可以通过串行通信的方式与主控制器进行数据通信。 1 3 电机驱动芯片 L298 【 3】 L298的一种高电压、大电流电机驱动芯片。该芯片采用 15脚封装。主要特点是:工作
13、电压高, 最高工作电压可达 46V; 输出电流大,瞬间峰值电流可达 3A,持续工作电流为 2A;额定功率 25W。内含两个 H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下 允许或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量反馈给控制电路。使用 L298芯片驱动电机,该芯片可以驱动两台直流电机。 L298内部电路原理图,如下 控制系统 综合课程设计报告 第 6 页 共 19 页 图 1.3 L298原理图 1 4 液晶显示屏 LM0
14、16L LM016L液晶模块采用 HD44780控制器, hd44780具有简单而功能较强的指令集,可以实现字符移动,闪烁等功能, LM016L与单片机 MCU通讯可采用 8位或 4位并行传输两种 方式, hd44780 控制器由两个 8 位寄存器,指令寄存器( IR)和数据寄存器( DR)忙标志( BF),显示数 RAM( DDRAM),字符发生器 ROMA( CGOROM)字符发生器 RAM( CGRAM),地址计数器 RAM(AC)。 IR 用于寄存指令码,只能写入不能读出, DR 用于寄存数据,数据由内部操作自动写入 DDRAM和 CGRAM,或者暂存从 DDRAM和 CGRAM读出的
15、数据, BF 为 1 时,液晶模块处于内部模式,不响应外部操作指令和接受数据,DDTAM 用来存储显示的字符,能存储 80 个字符码 . 2 硬件系统的整体结构 本设计的统硬件体系可以分为三部分,第一部分为微控制器组成的控制核心电路,第二部分为电动机驱动模块组成的电动机接口电路,第三部分为键盘输入模块和液晶显示模块组成用户接口电路。 2 1 系统硬件的整体结构 控制系统 综合课程设计报告 第 7 页 共 19 页 图 2.1 系统总体结构图 2 2 基本硬件组成 2.2.1 时钟电路 如图 3.4 所示, at89c5 芯片的振荡器的主要器件是一个反相放大器,从 XTAL1端输入,从 XTAL
16、2 端输出,电路时钟能够由内部设备或者外接设备产生,从 XTAL1和 XTAL2 引脚上连接某个定时器件 ,其内置的振荡电路就能产生相应的自激振荡。该系统的并联谐振电路采用石英晶体和电容器。电路的晶振频率选择的是11.0592MHZ,电容器 C1、 C2 的电容均取值 30pF,电容的大小可频率进行微调。 图 2.2 时钟电路图 2.2.2 键盘输入电路 控制系统 综合课程设计报告 第 8 页 共 19 页 本系统采用的是 4 4 矩阵键盘,接到 at89c51 的 P1.0-P1.7 口而实现 图 2.3 键盘输入电路图 2.2.3 显示 电路 显示电路采用 的是 LCD 功能组件 ( LM
17、016L), 用来显示 温度测量值 跟 设定值。显示电路如图所示。 图 2.4 显示电路图 2.2.4 温度检测 电路 本设计采用的是 DS1820 传感器,如图所示。因为仿真过程不可能实际采样到温度,我们才用 DS18B20 传感器,通过手动调节来仿真温度。 图 2.5 温度检测电路图 2.2.5 电机驱动电路 控制系统 综合课程设计报告 第 9 页 共 19 页 图 2.6 电机驱动电路图 2.2.6 火灾报警 电路 图 2.7 火灾报警电路图 3 软件设计 3 1 系统软件的整体结构 控制系统 综合课程设计报告 第 10 页 共 19 页 图 3.1 结构框 图 3 2 基本模块设计 简
18、单介 绍各个模块基本函数及原理, LCD 显示、电机驱动以及报警模块比较简单,不再一一赘述。 3.2.1 温度检测显示模块 温度检测显示模块的全部函数在下表列出: 表 3.1 温度检测显示模块函数 表 函数名称 函数功能描述 dsInit() 初始化 DS18B20,上升沿启动 dsWait() 等待 DS18B20 应答 readBit() 向 DS18B20 读取一位数据 unsigned char readByte() 读取一字节数据 , 调用 readBit()来实现 void writeByte(unsigned char dat) 向 DS18B20 写入一字节数据 void sendChangeCmd() 向 DS18B20 发送温度转换命令 void sendReadCmd() 向 DS18B20 发送读取数据命令 int getTmpValue() 获取当前温度值 void display(int v) 显示温度 主要介绍获取当前温度值和显示温度函数。 a)获取当前温度值 getTmpValue() int getTmpValue()