陕西理工学院毕业设计
ALIENTEK TFTLCD 采用16位的并方式和外部电路连接,之所以不采用8位的方式,是因为彩屏的数据量比较大,尤其是在显示图片的时候,如果采用8位数据线就会比16位方式慢一半,我们当然希望速度越快越好,所以采用16位接口。TFTLCD接口定义如图2.9所示。
图2.9 TFTLCD接口定义图
该模块的80并口有以下一些信号线: CS:TFTLCD的片选信号。 WR:向TFTLCD中写入数据。 RD:从TFTLCD中读出数据。 D[15:0]:16位的双向数据线。 RST:硬复位TFTLCD。
RS:命令/数据标志(0:读写命令,1:读写数据)。 TFTLCD与MiniSTM32开发板的IO对应关系如下: LCD_LED 对应 PC10。 LCD_CS 对应 PC9。 LCD _RS 对应 PC8。 LCD _WR 对应 PC7。 LCD _RD 对应 PC6。
LCD _D[17:1]对应 PB[15:0]。 2.6 按键模块
该模块主要实现对上下限温度的设置以及对电路的复位。单片机应用系统中除了复位按键有它专门的复位电路,和专一的复位功能以外,其它的按键都是用开关的状态来设置控制功能或者输入数据。
本系统设置了四个按键,来配合显示界面,可以对相关参数进行设定,不同运行方式之间进行切换,测量校准,开入开出测试等操作。按键SW1~SW4分别是复位、确认、温度加、温度减。其中温度设置键盘部分的电路图如图2.10所示:
第 11 页 共67页
陕西理工学院毕业设计
图2.10 温度设置部分电路图
2.7 电源模块
单片机STM32F103RCT6以及其它的外围芯片都是3.3V供电,所以需要将5V电压转成3.3V,使用常用的AMS1117-3.3V电源芯片。电路如图2.11所示。
图2.11 电源电路
2.8 风机模块
当检测到的实时温度高于设定的温度值时,单片机要进行降温操作。采用L298N与单片机相连接,从而控制风机的转动,以达到控制温度的目的。电路如图2.12所示。
图2.12 风机电路
第 12 页 共67页
陕西理工学院毕业设计
3 系统软件设计
整个设计系统功能是由软件程序配合硬件电路来实现,如果硬件电路已经确定,软件的功能也就基本上确定了,因为软件程序的编译是基于STM32单片机编程。软件部分可分为主程序和子程序,
[2]
主程序是整个控制系统的核心,用于调节和处理各模块之间的关系。子程序是各个模块实现实质性的功能,其主要子程序包括:温度采集、键盘扫描、LCD显示等。 3.1 主程序
开始系统初始化DS18B20读温度数据LCD温度显示按键扫描检测按键是否按下NYY温度是否在设定阈值范围N启动电机N温度是否在设定阈值范围Y结束
图3.1 主程序流程图
首先进行系统初始化配置,即首先向在stm32控制器中配制寄存器和I/O口,建立系统任务、测量任务及控制任务,并在启动任务中初始化传感器基础配置。然后在任务中编写用户程序。用户
第 13 页 共67页
陕西理工学院毕业设计
程序设计如下:将接DS18B20读到的数据通过STM32的输入捕获模式得到该数据,送到TFTLCD液晶显示屏来进行显示,主要显示测得的实时温度。然后首先判断按键是否按下,如果未按下按键则返回按键扫描,否则再进一步判断所测得的数据实时温度是否在室内温度设定的阈值范围内。如果没有在室内温度设定的阈值范围内,则需要启动电机驱动模块来启动电机,通过热冷客气对流来平衡温差,直到室内温度达到室内温度设定的阈值范围的要求,最后结束主程序。主程序流程如图3.1所示。
3.2 温度采集子程序
温度采集子程序就是驱动外部的温度传感器DS18B20进行工作,通过I/O口通信方式向STM32单片机 中写入数据,并且送到TFTLCD液晶显示屏来进行显示。首先进行I/O口初始化,然后是复位DS18B20使其恢复初始状态等待DS18B20响应。将DS18B20读到的温度数据进行数据转换,并且写入DS18B20单片机,最后结束子程序。配置程序流程图如图3.2所示
开始I/O口初始化复位DS18B20等待DS18B20响应DS18B20读数据数据转换数据写入单片机结束
图3.2 温度采集框图
DS18B20初始化步骤如下:
1、高电平“1”状态必须先给数据线。
2、延时(该延迟时间的长短要求不严格,但尽可能短一点)。 3、把数据线拉低到电平“0”状态。
4、再延时750微秒(该时间的范围为480--960ms)。 5、把数据线拉高到电平“1”。
第 14 页 共67页
陕西理工学院毕业设计
6、延时等待
7、CPU如果读到了数据线上“0”状态的低电平,还要继续做延时,延时时间由发出高电平开始算起(第(5)步的时间开始算),最少需480ms。
8、再次把数据线拉高到高电平“1”后就结束。 3.3 显示子程序
开始LCD初始化写寄存器函数写LCD数据读LCD 数据LCD写GRAM设置光标位置、扫描方式设置显示颜色字符串显示结束 图3.3 显示程序框图
在该系统中使用TFTLCD液晶显示屏来显示DS18B20所采集的当前温度值。显示子程序程序设计如下:首先进行LCD初始化,即向TFTLCD配制寄存器,包括写寄存器函数、LCD写GRAM命令,建立LCD光标位置、扫描方式、显示方向、显示颜色等,并在启动LCD初始化寄存器基础配置,然后通过STM32单片机向LCD写数据,并使LCD寄存器读出数据显示字符串,结束显示子程序。子程序
第 15 页 共67页