📄 main.c
字号:
//-----------------------------------------------------------------
// 名称: SPI接口温度传感TC72应用测试
//-----------------------------------------------------------------
// 说明: 本例运行时,单片机将持续从TC72传感器读取温度数据并转换为
// 10进制温度值送串口显示.
//
//-----------------------------------------------------------------
#include <pic.h>
#include <stdio.h>
#include <math.h>
#include "USART.h"
//TC72寄存器地址定义
#define TC72_CTRL 0x80 //控制寄存器
#define TC72_TEMP_LSB 0x01 //温度低字节
#define TC72_TEMP_MSB 0x02 //温度高字节
#define TC72_MANU_ID 0x03 //制造商ID
//SPI使能与禁用
#define SPI_EN() (RC0 = 1)
#define SPI_DI() (RC0 = 0)
//-----------------------------------------------------------------
// 延时函数
//-----------------------------------------------------------------
void delayX100ms(INT8U x)
{
while (--x) __delay_ms(100);
}
//-----------------------------------------------------------------
// SPI主机初始化
//-----------------------------------------------------------------
void SPI_MasterInit()
{
//使能串行端口,并将SCK,SDO,SDI及SS配置为串行引脚
//SPI主控方式,时钟 = _XTAL_FREQ/4
//配置MSSP状态寄存器SSPSTAT(SMP,CKE清零)
//RC0/CS,RC3/SDO,RC5/SCK引脚设为输出
//RC4/SDI引脚设为输入
}
//-----------------------------------------------------------------
// SPI数据传输
//-----------------------------------------------------------------
INT8U SPI_Transmit(INT8U dat)
{
}
//-----------------------------------------------------------------
// 向TC72写入两字节(地址,数据)
//-----------------------------------------------------------------
void Write_TC72_Addr_Data(INT8U addr, INT8U dat)
{
}
//-----------------------------------------------------------------
// 写TC72配置数据
//-----------------------------------------------------------------
void config_TC72()
{
//配置为单次转换与关断模式
}
//-----------------------------------------------------------------
// 从TC72读取两字节温度数据
//-----------------------------------------------------------------
void Read_TC72_Temperature(INT8U T[])
{
}
//-----------------------------------------------------------------
// 读TC72制造商ID
//-----------------------------------------------------------------
INT8U Read_Manufacture_ID()
{
}
//-----------------------------------------------------------------
// 将读取的两字节温度数据转换为10进制温度
//-----------------------------------------------------------------
float Convert_Temperature(INT8U T[])
{
}
//-----------------------------------------------------------------
// 主程序
//-----------------------------------------------------------------
void main()
{
INT8U Temp[2]; int d,f;
float Current_Temp = 0.00,Pre_Temp = 0.00;
char DisplayBuffer[50];
ADCON1 = 6; //RA端口设为数字端口
Initialise_USART(); //初始化串口
SPI_MasterInit(); //SPI主机初始化
config_TC72(); delayX100ms(3); //配置TC72
//读取并显示制造商ID
sprintf(DisplayBuffer,"Manufacture ID: 0x%02X\r\n",Read_Manufacture_ID());
PutStr(DisplayBuffer);
//提示开始读取温度
PutStr((char*)"Begin Read Temperature from TC72.............\n\n");
while(1)
{
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -