采用TFT-LCD显示屏,TFT的显示采用“背透视”的照射方式,使其显示效果非常出色。3.3~5V宽电压范围供电,可以显示16位真彩色,并且可以分屏显示。液晶显示具有低电压、微功耗、易彩色化等特点.显示器采用每次扫描一条线的驱动方式,所以其驱动方法简单可用[14,15]。TFT-LCD液晶屏的分辨率较高,可显示彩色图片,显示的信息量大,可视角广,成本较高,驱动较难,但所有的TFT公司都会讲大部分的驱动程序给用户,只要了解基本的控制器程序,对TFT的操作也是相当的简单。
考虑到本设计显示的信息量较大,系统实时性显示功能,放弃掉方LED显示。12864液晶显示,驱动方式较为复杂,显示效果较差,如果要实时显示折线图,那就增加了系统的复杂程度。所以最终选择方案三。
4)键盘控制模块
方案一:采用独立式按键
独立式按键中每只按键需接单片机的一条I/O线,较浪费单片机的I/O口,通过对线的查询,即可识别各按键的状态。一般多用于按键数目少的时候。 方案二:采用矩阵式键盘
矩阵式按键主要利用横向通信号列向查询(或者列向同信号横向查询)的方式,得到对应的按键值。但是矩阵键盘需要不停地发送信号,这样才能不遗漏每一次按键。
本设计需要对温度信息进行实时的采集,所以单片机要不停地和温度传感器通信,保证信息的实时性。如果使用了矩阵式键盘,那单片机就需要同时兼顾温度传感器和矩阵按键,给单片机带来了巨大的压力,使系统的整体性能严重降低,出现严重的迟滞性。本系统需要的按键不是很多,使用矩阵键盘也较为浪费。所以综合考虑,选择使用独立键盘作为输入。
5)报警模块
报警模块主要功能是提示系统使用者,本系统检测到的温度值达到了设定的极限值。报警效果为蜂鸣器鸣叫,警示LED点亮,采用声光报警可以有效地提醒使用者。 2、在软件上
单片机是一个系统的大脑,一个总指挥所,支配其它的所有电路或者模块协调工作。程序是一个系统的思想,没有程序,电路就是死体,不能正常运作。有了程序,就想肉体有了灵魂,一个有效地程序,能让一堆电路工作,一个合理高效的程序,能优化整个系统使整个系统处于最佳的工作状态。
本系统的软件程序主要包括主程序、温度检测程序、显示程序、报警系统程序、键盘扫描控制程序这几个大模块。主程序首先是各个子程序的初始化程序,然后是温度检测程序,不断的检测采集到的温度是否超出设置的范围,将检测到的温度显示在TFT彩
6
屏上,在这过程中还可以设置显示哪路温度和温度测量的范围,如此不断的执行程序来达到实时温度检测的目的。
2.2 系统总体方案设计
多路数字式温度监控系统,一共有三点主要的要求:1.多路;2.数字式;3.温度监测。本设计是以STM32F103ZET6为核心,支配着温度传感器电路、显示模块、报警电路、键盘电路。其温度检测电路一共有四路,都采用DS18B20温度传感器,对各个点的温度值进行采集。显示模块是由TFT及相关电路组成,用来显示所有的相关信息。报警电路由LED与蜂鸣器组成,提示使用者该系统检测到温度值已达到极限值,使用者在听到报警声后采取相应的措施以解除报警,再重新设置温度极限值。键盘电路则是作为输入,调节极限温度值或者其它功能。
系统框图如下图:
温度采集电路 显示模块 报警 STM32F103ZE 解除报警 键盘电路 重新设置温度极值限
图2.1 系统总流程图
如图2.1,根据系统的设计要求,当温度传感器DS18B20把所测得的温度发送到控制器STM32F103ZE上,经它处理后,将温度在显示器TFTLCD上显示。
2.3 系统功能介绍
利用STM32F103ZE芯片控制温度传感器DS18B20进行实时温度采集并在TFT显示屏上显示采集处理后的温度,使它能够实现快速测量环境温度。当TFTLCD液晶显示器接收到来自STM32F103ZE控制器传送来的温度信息后,分别显示了当前的温度。 设计的主要功能和指标如下: (1)多点监测;
(2)监测温度范围宽,精度高; (3)用TFT液晶进行实际温度值显示; (4)能够自主设置上、下限报警温度;
(5)当超过报警温度后,能够自动发出报警信号。
本系统使用较高的智能化设计,无需手动对系统进行各种参数的设定,一旦进入系
7
统开启界面,系统将会自动对电路的各个功能模块进行自检,如果各个模块正常,将自动进入监测界面,如果检测到系统的部分问题不正常,将会在显示界面上显示出来,便于处理。进入监测画面以后,系统会以默认的初始值进行监测,如果被监测对象有特殊的需要,可以在监测界面下使用按键输入系统,对监测的参数进行修改,达到监测所需合适的要求。
8
3 硬件电路设计
3.1 硬件元件介绍
3.1.1 STM32F103ZE 介绍
根据本设计的具体要求,最终选用Cortex-M3内核单片机。为了有足够的引脚与高速的主频,因而选择STM32F103ZET6。Cortex-M3采用了ARM7的架构,运行速度快、性能高、稳定性好、功耗低[16]。32位的CPU与普通的8位的单片机相比,在速度与性能上都是有飞跃性的差距。Cortex-M3内核单片机以其强大的功能,在现代的市场上在有举足轻重的地位,在许多的高性能、高速度的产品上,主控制器采用了STM32单片机,使整个系统完美的配合。在高速的控制产品上,STM32单片机的应用相当广泛,例如:GPS定位系统,GSM通讯设备,无线路由器。STM32单片机高速的不可替代性,使其在新型高速高稳定新的新产品应用上占据重要的位置。 具体功能介绍:
内核:ARM 32位的Cortex?-M3 CPU
? 最高72MHz工作频率,在存储器的0等待周期访问时可达 1.25DMips/MHz(Dhrystone 2.1) ? 单周期乘法和硬件除法 存储器
? 从256K至512K字节的闪存程序存储器 ? 高达64K字节的SRAM
? 带4个片选的静态存储器控制器。支持CF卡、SRAM、PSRAM、NOR和NAND存储器
? 并行LCD接口,兼容8080/6800模式 时钟、复位和电源管理
? 2.0~3.6伏供电和I/O引脚
? 上电/断电复位(POR/PDR)、可编程电压监测器(PVD) ? 4~16MHz晶体振荡器
? 内嵌经出厂调校的8MHz的RC振荡器 ? 内嵌带校准的40kHz的RC振荡器 ? 带校准功能的32kHz RTC振荡器 低功耗
? 睡眠、停机和待机模式 ? VBAT为RTC和后备寄存器供电
9
3个12位模数转换器,1μs转换时间(多达21个输入通道)
? 转换范围:0至3.6V ? 三倍采样和保持功能 ? 温度传感器 2通道12位D/A转换器 DMA:12通道DMA控制器
? 支持的外设:定时器、ADC、DAC、SDIO、I2S、SPI、I2C和USART 调试模式
? 串行单线调试(SWD)和JTAG接口 ? Cortex-M3内嵌跟踪模块(ETM) 多达112个快速I/O端口
? 51/80/112个多功能双向的I/O口,所有I/O口可以映像到16个外部中断;几乎所有端口均可容忍5V信号 多达11个定时器
? 多达4个16位定时器,每个定时器有多达4个用于输入捕获/输出比较/PWM或脉冲计数的通道和增量编码器输入
? 2个16位带死区控制和紧急刹车,用于电机控制的PWM高级控制定时器 ? 2个看门狗定时器(独立的和窗口型的) ? 系统时间定时器:24位自减型计数器 ? 2个16位基本定时器用于驱动DAC 多达13个通信接口
? 多达2个I2C接口(支持SMBus/PMBus)
? 多达5个USART接口(支持ISO7816,LIN,IrDA接口和调制解调控制) ? 多达3个SPI接口(18M位/秒),2个可复用为I2S接口 ? CAN接口(2.0B 主动) ? USB 2.0全速接口 ? SDIO接口
CRC计算单元,96位的芯片唯一代码 主控制器原理图如下:
10