便携式红外线人体测温仪设计毕业设计论文 联系客服

发布时间 : 星期二 文章便携式红外线人体测温仪设计毕业设计论文更新完毕开始阅读

– 273.15。例如:DataH :DataL=0x4DB0h,代入公式中,得TO=85°C。

图5.9 MLX90615发送/接收一个字节

红外测温模块的程序结构相对比较简单。当主函数调用该函数模块时,该程序模块就开始顺序地执行相关的内容。首先程序对MLX90615进行初始化(读取传感器的地址、合成相应的指令等),然后MCU通过SMBus传输协议来读取存在MLX90615里的TO数据(地址为07h)。我们通过相关的计算可以得出对应的体温值(计算公式详见5-2)是多少,并且可以通过LCD来显示测量结果。

图5.10 红外测温程序流程图

5.3 LCD显示程序模块

5.3.1 LCD模块指令和时序

在本系统中,LCD模块的驱动芯片是PCD8544 。数据以字节为单位下载到PCD8544的48×84位显示数据RAM矩阵。其通过地址指针寻址,地址范围为:X为0 ~ 83(1010011),Y为0 ~ 5(101),地址不充许超出这个范围。在垂直寻址模式(V=1),Y地址在每个字节之后递增。经最后的Y地址(Y=5)之后,Y绕回0,X递增到下一列的地址。在水平寻址模式(V=0),X地址在每个字节之后递增,经最后的X地址(X=83)之后,X绕回0,Y递增到下一行的地址。经每一个最后地址之后(X=83,Y=5),地址指针绕回地址(X=0,Y=0)。

PCD8544指令格式分为两种模式:如果D/C(模式选择)置为低,当前字节解释为命令字节(见PCD8544指令集)。下图展示初始化芯片的串行数据流例子。如果D/C置为高,接下来的字节将存储到显示数据RAM。每一个数据字节存入之后,地址计数自动递增。在数据字节最后一位期间会读取D/C信号的电平。每一条指令可用任意次序发送到PCD8544,首先传送的是字节的MSB(高位),然后

是LSB(低位)。详细的指令可以参考图5.11。

图5.11 PCD8544指令集

当SCE为高时,串行接口被初始化。在这个状态,SCLK时钟脉冲不起作用,串行接口不消耗电力。SCE上的负边缘使能串行接口并指示开始数据传输。当SCE 为高时,忽略 SCLK 时钟信号;在SCE为高期间,串行接口被初始化。SDIN在SCLK的正边缘取样。D/C 指出字节是一个命令 (D/C = 0)或是一个RAM数据(D/C = 1);它在第八个SCLK脉冲被读出。在命令/数据字节的最后一位之后,如果SCE为低,串行接口在下一个SCLK正边缘等待下一个字节的位7。RES端的复位脉冲中断传输。数据不会写进RAM。寄存器被清除。如果在RES正边缘之后

SCE为低,串行接口准备接收命令/数据字节的位7。

图5.12 串行总线传输示意图

5.3.2 LCD显示程序设计

在系统中,LCD模块采取的通信协议是一个没有MISO而只有MOSI的SPI协

议,即LCD模块只能接收来自MCU的数据,而不能发送数据。在本系统里,其串行总线是以字节为传输单位。

图5.13 串行总线传输传输一个字节

在本系统中,LCD模块是属于点阵型液晶显示模块,因此无论系统显示汉字还是英文,无论大号字体还是小号字体,工作原理(或编程思想)都是大同小异的。首先把想要显示的内容通过软件转化为点阵数据并存在头文件里(front.h),然后MCU通过SPI协议把其传输到LCD模块里,其程序流程图如下图所示。

图5.14 显示一个汉字或字母

5.4 本章小结

因为本设计的主控MCU选用了AVR单片机,所以其软件的编译环境选用ICC AVR,而仿真和下载软件则选用AVR studio(JTAG模式)。此系统的软件部分主要分为三大部分,分别是主控程序模块、红外测温程序模块和LCD显示程序模块。其程序结构如图5.18所示,共包括8个文件:

● delay.c:延时函数 ● LCD.c:LCD

驱动程序

模式)

● MLX90615.c:红外温度传感器驱动函数(SMBus