当前位置:首页 > 单片机 > 单片机
[导读] /****PIC单片机通过SPI串口可以读取TC77传感器的温度数值****//****通过串口与上位机连接在串口调试工具中可显示温度的数字值**//*****************主程序************************/#include "p18f4620

/****PIC单片机通过SPI串口可以读取TC77传感器的温度数值****/

/****通过串口与上位机连接在串口调试工具中可显示温度的数字值**/

/*****************主程序************************/

#include "p18f4620.h"

#define TC77_CS LATAbits.LATA2 //片选信号,低电平有效

//初始化

void initial()
{
INTCON = 0x00;
ADCON1 = 0x07;
PIE1 = 0;
PIE2 = 0;
}

//串口初始化

void EUSART_Init()
{
TXSTA = 0xA4;
RCSTA = 0x90;
BAUDCON =0x00;
TRISC = TRISC|0x80;
TRISC = TRISC&0xBF;
SPBRG = 25;
}

//发送数据到串口

void send_ch(int d)
{
PIR1bits.TXIF = 0;
TXREG = d;
while(TXSTAbits.TRMT == 0);
}

//SPI配置TC77

void TC77_init(void)
{
TRISCbits.TRISC3 = 0;
TRISCbits.TRISC4 = 1;
TRISAbits.TRISA2 = 0;
SSPSTAT = 0xC0;
SSPCON1 = 0x20;
PIR1bits.SSPIF = 0;
}

//读TC77温度传感器

unsigned int Read_TC77(void)
{
unsigned char temh,teml;
unsigned int temp;
TC77_CS = 0; //片选TC77
PIR1bits.SSPIF = 0;
SSPBUF = 0; // 读高8位
while(!PIR1bits.SSPIF);
if(SSPSTATbits.BF)
temh=SSPBUF;
PIR1bits.SSPIF = 0;
SSPBUF = 0;//读低八位
while(!PIR1bits.SSPIF);
if(SSPSTATbits.BF)
teml=SSPBUF;
TC77_CS = 1;
temp = temh;
temp = (temp << 6)+(teml >> 2); //换算为十六位数据
return temp;
}

//延时函数

void wait(unsigned char t)
{
unsigned char i;
unsigned int j;
for(i=0;ifor(j=0;j<10000;j++);
}

//主函数

void main()
{
unsigned int T;
initial();
EUSART_Init();
TC77_init();
while(1)
{
T = Read_TC77();
send_ch(0xFF);
send_ch(T);
send_ch(T >> 8);
Nop();
Nop();
wait(10);
}
}


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在嵌入式系统开发中,STM32系列微控制器的内部温度传感器因其低成本、高集成度特性,广泛应用于设备自检、环境监测等场景。然而,受芯片工艺差异和电源噪声影响,其原始数据存在±1.5℃的固有误差。本文从硬件配置、校准算法、软...

关键字: STM32 温度传感器

中国 上海,2025年7月18日——全球领先的智能传感和发射器解决方案供应商艾迈斯欧司朗(SIX:AMS)今日宣布,推出的一款紧凑型温度传感器——AS6211,可监测奶牛体内状况,揭示外部无法观测的信息。该传感器内置于s...

关键字: 温度传感器 AS6221

本文讨论如何为特定应用选择合适的温度传感器。我们将介绍不同类型的温度传感器及其优缺点。最后,我们将探讨远程和本地检测技术的最新进展如何推动科技进步,从而创造出更多更先进的温度传感器。

关键字: 温度传感器 CPU FPGA

如果您愿意,您甚至可以使用I2Ctools在总线上读写。这可以使用命令sudo i2cget 3 0x3f 0x01来实现。这是从I2C总线3中获得的,在设备地址0x3F处,寄存器0x01的内容,这是温度传感器上的who...

关键字: ZUBoard 无刷直流电机 温度传感器

TDK株式会社(东京证券交易所代码:6762)隆重推出新系列温度传感器的首款产品—B58101A0851A000。该新元件专为电动车 (EV) 的动力系统冷却应用而设计,是一款灵敏度高的全密封型NTC热敏电阻,可实现快速...

关键字: 电动车 温度传感器 电驱系统
关闭