原创 基于mikroC Pro for PIC和microchip的TC74的温度测量方案

2014-11-28 14:43 2039 26 26 分类: MCU/ 嵌入式

    TC74是microchip公司的一种可以串行访问的数字温度传感器,它能从它的机载固态传感器的采集并转换温度信息,分辨率为1°C。温度是一个8位数字字存储在其内部的一种可以通过一个2线I2C兼容的串行总线访问的温度记录器。本教程介绍如何使用TC74传感器与PIC单片机测量环境温度。

clipboard_看图王.jpg

图1  成品图

一、原理

     TC74数字温度传感器是采用SOT - 23和TO - 220封装,它与设备通信是通过一个2线I2C兼容的串行总线实现的。对于温度的分辨率是1°C和它的转化率名义上是8个样本/秒。

1_看图王.jpg

图2  TC74的管脚图

     TC74储存测量温度为8位的内部寄存器为2′的补码二进制格式。最重要的位是符号位,这是负的温度设置为1。因此,最大可测正温度是127°C(0111 - 1111)。TC74也得到了另一个8位读/写配置寄存器(RWCR)是用来将进入低功率器件(IDD = 5µ待机模式,典型值)。在这种模式下,A / D转换器是停止的和温度数据寄存器也被停止。7位读/写配置寄存器必须设置为将74进入待机模式。

2_看图王.jpg

图3  温度转换器和内部储存器

二、串口操作

     串行时钟输入(SCLK)和双向数据端口(SDA)建立一个与TC74交流的二线双向串行端口形式。该端口是I2C,它兼容所有转移发生在一个主机的控制下,这个主机通常是一个微控制器。主机控制器提供时钟信号给所有的数据传输和TC74作为一个传递者。默认的是7位的TC74的I2C地址为1001101B。然而,其他7个地址的选择也可以从装置的零件编号识别。例如,我有一个tc74a0 TO-220封装。A0对应的设备地址1001 000b。同样,tc74a3具有它自身I2C地址1001 011b。参阅详情表。

     通过I2C接口从TC74读取温度包括以下步骤:

     1.主机控制器发出启动条件的地址字节。地址字节包含7位从地址和读/写点(R / W)。R / W位总是0′(写)在第一阶段。 

     2.如果接收到的7位地址与自己的从地址匹配,TC74与应答脉冲响应。

     3.主机控制器下发命令字节74表示它想访问的寄存器。读取温度,命令字节应00H。TC74应答一个脉冲响应。 

     4.主机控制器的问题一个新的开始,因为数据传输的方向是现在要改变了。R / W 1位新地址字节是由主机发出的,这是由从机辨认的。 

     5.TC74从8位温度寄存器发送温度数据。在接收的字节的时候,主机不应答,则停止。

三、电路图

     我在这里用的是芯片PIC18F2550,它可以与任何其他规模较小的PIC微控制器实现I2C通信。温度由TC74传感器读取并显示在LCD字符。别忘了把两个上拉电阻(1K)连接在SDA和SCL线I2C总线上。在本实验中采用PIC18F2550单片机PIC板来自于StartUSB for PIC board.。

3_看图王.jpg

图4  电路图

 

4_看图王.jpg

图5  实物图

5_看图王.jpg

图6  TC74温度传感器

 

四、软件

     PIC18F2550固件是在C使用MikroC Pro for PIC编译开发的。MikroC Pro for PIC编译器提供的内置支持I2C库。单片机读取TC74内部温度寄存器温度字并显示在LCD。下面的程序显示,TC74的整个工作范围内在40至125°C。

     程序:

/* Project: Using TC74 with PIC microcontroller 

            for temperature measurement 

    MCU: PIC18F2550 on-board StartUSB for PIC 

            Clock 48.0 MHz using HS + PLL 

MCLR Enabled 

*/ 

 

// Define LCD module connections. 

sbit LCD_RS at RC6_bit; 

sbit LCD_EN at RC7_bit; 

sbit LCD_D4 at RB4_bit; 

sbit LCD_D5 at RB5_bit; 

sbit LCD_D6 at RB6_bit; 

sbit LCD_D7 at RB7_bit; 

sbit LCD_RS_Direction at TRISC6_bit;

sbit LCD_EN_Direction at TRISC7_bit; 

sbit LCD_D4_Direction at TRISB4_bit; 

sbit LCD_D5_Direction at TRISB5_bit; 

sbit LCD_D6_Direction at TRISB6_bit; 

sbit LCD_D7_Direction at TRISB7_bit; 

// End LCD module connection definition

 

unsigned char Temp; 

unsigned short num;

const int TC74A0 = 0x90;   

void check_device(unsigned short dev_address){ I2C1_Start(); 

if (I2C1_Wr(dev_address)){ Lcd_Out(1,1,"Device not found"); 

else Lcd_Out(1,1,"TC74 device"); 

I2C1_Stop(); 

 

unsigned short Read_Temp(){ 

unsigned short result; I2C1_Start(); // Issue start signal 

I2C1_Wr(TC74A0); // Address + Write bit 

I2C1_Wr(0x00); // Read Temp 

I2C1_Repeated_Start(); // Issue start signal 

I2C1_Wr(TC74A0+1); // Address + Read bit 

result = I2C1_Rd(0u); return result;

 }

 

char temperature[] = " 000 C"; 

void main() { CMCON = 0x07; // Disable comparators 

ADCON1 = 0x0F; // Disable Analog functions 

TRISA = 0x00; 

TRISC = 0x00; 

TRISB = 0x00; 

I2C1_Init(100000); // Initiate I2C 

Lcd_Init(); // Initialize LCD 

Lcd_Cmd(_LCD_CLEAR); // CLEAR display 

Lcd_Cmd(_LCD_CURSOR_OFF); // Cursor off 

Lcd_Out(1,1,"Testing TC74"); 

Lcd_Out(2,1,"Thermal sensor"); 

Delay_ms(1000);

Lcd_Cmd(_LCD_CLEAR); 

do { check_device(TC74A0); 

num = Read_Temp();

 

// Check for negative temperature

if (num > 127) { 

temperature[0] = '-'; 

num = ~num +1; 

else temperature[0] = '+';   

temperature[1] = num/100 + 48; 

temperature[2] = (num/10)%10 + 48; 

temperature[3] = num%10 + 48; 

temperature[5] = 223;   

 

// eliminate 0s at beginning 

if (temperature[1] == '0') { 

temperature[1] = ' '; 

if (temperature[2] == '0') temperature[2] = ' '; 

}   

Lcd_Out(2,4,temperature); 

Delay_ms(500); } while(1); 

 

五、输出

     下面的照片显示装置显示正面和负面的温度。一种热焊棒尖端饱和的传感器在127°C。测试负温度读数的时候,该装置放进冰箱。

6_看图王.jpg

图7  测量室内的温度

7_看图王.jpg

图8  最大的测量温度

 

8_看图王.jpg

图9  放在冰箱中的温度显示

 

六、总结

     本实验对微芯片的TC74传感器与PIC单片机测量环境温度的接口技术进行了探讨,并且证明方案是可以成功的。与TC74传感器的通信是通过PIC18F2550的一个I2C总线接口完成的。8位温词是从内部温度寄存器读取和经过PIC18F2550单片机在液晶屏上显示的。再者,借助虹科电子的便利的编译器MikroC Pro for PIC,也让刚方案显得更加容易,更加稳定。

 

     注:本文由广州虹科电子技术支持工程师译自网络,若有差错,麻烦指出!

 

文章评论0条评论)

登录后参与讨论
我要评论
0
26
关闭 站长推荐上一条 /2 下一条