51+HD7279+ADS1110+PT100的测温系统(程序)
更新时间:2023-04-21 04:05:01 阅读量: 实用文档 文档下载
- 51H的字母推荐度:
- 相关推荐
51+HD7279+ADS1110+PT100的测温系统,通过与标准温度计对比拟合,精度能达到0.5度
#include <intrins.h>
#include <STC12C5A60S2.H>
typedef unsigned int uint;
typedef unsigned char uchar;
typedef unsigned short WORD;
float code RTD_TAB_PT100[151] = // 表格是以1度为一步,即-20, -19, -18.....
{
88.22, 88.62 ,88.62, 89.40, 89.80, 90.19, 90.59, 90.98, 91.37, 91.77, // -30 ~ -21
92.16, 92.55, 92.95, 93.34, 93.73, 94.12, 94.52, 94.91, 95.30, 95.69, // -20 ~ -11
96.09, 96.48, 96.87, 97.26, 97.65, 98.04, 98.44, 98.83, 99.22, 99.61, // -10 ~ -1
100.00,100.39,100.78,101.17,101.56,101.95,102.34,102.73,103.13,103.51, // 0 ~ 9
103.90,104.29,104.68,105.07,105.46,105.85,106.24,106.63,107.02,107.49, // 10 ~ 19
107.79,108.18,108.57,108.96,109.35,109.73,110.12,110.51,110.90,111.28, // 20 ~ 29
111.67,112.06,112.45,112.83,113.22,113.61,113.99,114.38,114.77,115.15, // 30 ~ 39
115.54,115.93,116.31,116.70,117.08,117.47,117.86,118.24,118.62,119.01, // 40 ~ 49
119.40,119.78,120.16,120.55,120.93,121.32,121.70,122.09,122.47,122.86, // 50 ~ 59
123.24,123.62,124.01,124.39,124.77,125.16,125.54,125.92,126.31,126.69, // 60 ~ 69
127.07,127.45,127.84,128.22,128.60,128.98,129.37,129.75,130.13,130.51, // 70 ~ 79
130.89,131.27,131.66,132.04,132.42,132.80,133.18,133.56,133.94,134.32, // 80 ~ 89
134.70,135.08,135.46,135.84,136.22,136.60,136.98,137.36,137.74,138.12, // 90 ~ 99
138.50,138.88,139.26,139.64,140.02,140.39,140.77,141.15,141.53,141.91, // 100 ~ 109
142.29,142.66,143.04,143.42,143.80,144.17,144.55,144.93,145.31,145.68, // 110 ~ 119
146.06 // 120
};
//float code RTD_TAB_PT100[41] = // 表格是以5度为一步,即-50, -45, - 40.....
//{
// 80.31, 82.29, 84.27 ,86.25, 88.22, 90.19, 92.16, 94.12, 96.09, 98.04, // -50 ~ -5
// 100.00,101.95,103.90,105.85,107.79,109.73,111.67,113.61,115.54,117.47, // 0 ~ 45
// 119.40,121.32,123.24,125.16,127.08,128.99,130.90,132.80,134.71,136.61, // 50 ~ 95
// 138.51,140.40,142.29,144.18,146.07,147.95,149.83,151.71,153.58,155.46, // 100 ~ 145
// 157.33 // 50
//};
sbit beep = P3^5;
//----------------ADS1110地址、配置字-----------------//
#define ADS1110_WR_ADDRESS 0x92 // 1001 001 0 写
#define ADS1110_RD_ADDRESS 0x93 // 1001 001 1 读
#define ADS1110_CONFIG_REG 0x8C // 连续转换模式,16bit精度,PGA=1
sbit ADS1110_SDA = P1^5; // 模拟I2C数据传输位
51+HD7279+ADS1110+PT100的测温系统,通过与标准温度计对比拟合,精度能达到0.5度
sbit ADS1110_CLK = P1^6; // 模拟I2C时钟控制位
//uchar TMR_H, TMR_L; // AD转换高8位,和低8位
uint AD_Result[25];
unsigned long nTmp;
//*** HD7279 函数定义 ***
void long_delay(void); // 长延时
void short_delay(void); // 短暂延时
void delay10ms(unsigned char); // 延时10MS
void write7279(uchar, uchar); // 写入到HD7279
uchar read7279(uchar); // 从HD7279读出
void send_byte(uchar); // 发送一个字节
uchar receive_byte(void); // 接收一个字节
sbit cs =P0^7; // cs at P1.4
sbit clk=P0^6; // clk 连接于 P1.5
sbit dat=P0^5; // dat 连接于 P1.2
sbit key=P0^4; // key 连接于 P1.3
sbit Hight_LED = P4^6;
sbit Low_LED = P4^1;
//****** HD7279A 指令 ******
#define CMD_RESET 0xa4
#define CMD_TEST 0xbf
#define DECODE0 0x80
#define DECODE1 0xc8
#define CMD_READ 0x15
#define UNDECODE 0x90
#define RTL_CYCLE 0xa3
#define RTR_CYCLE 0xa2
#define RTL_UNCYL 0xa1
#define RTR_UNCYL 0xa0
#define ACTCTL 0x98
#define SEGON 0xe0
#define SEGOFF 0xc0
#define BLINKCTL 0x88
//-------- AT24C04 变量声明 ---------
sbit _24C02_SCL = P2^6; //AT24C04的时钟
sbit _24C02_SDA = P2^5; //AT24C04的数据
uchar BUF[16]; //数据缓存区
51+HD7279+ADS1110+PT100的测温系统,通过与标准温度计对比拟合,精度能达到0.5度
uint code nDefaultDATA[] =
{// nLowTMP nHightTMP nTMPAdj
480, 650, 0 // 默认设置
};
uint nSettingDATA[3] = {0, 0, 0}; // 当前设置
void Delay5us();
void AT24C04_Start();
void AT24C04_Stop();
void AT24C04_SendACK(bit ack);
bit AT24C04_RecvACK();
void AT24C04_SendByte(uchar dat);
uchar AT24C04_RecvByte();
void AT24C04_ReadPage();
void AT24C04_WritePage();
//****** 红外接收 ******
sbit IRIN = P3^3; //红外接收器数据线
uchar IRCOM[7];
uchar nFlag = 0;
uchar nMode = 1; // nMode 0 1 2 3
// mean NULL nLowTMP nHightTMP nTMPAdj
uint nLowTMP = 480; // 最低温度设定
uint nHightTMP = 650; // 最高温度设定
char nTMPAdj = 0; // 温度修正
void send_ad_result(uchar temp);
/***********************************************************************************
************************************************************************************
////////////////////////////////HD 7279 函数////////////////////////////////////////
************************************************************************************
************************************************************************************/
void write7279(uchar cmd, uchar dta)
{
cs = 0;
send_byte (cmd);
send_byte (dta);
cs = 1;
}
51+HD7279+ADS1110+PT100的测温系统,通过与标准温度计对比拟合,精度能达到0.5度
uchar read7279(uchar command)
{
cs = 0;
send_byte(command);
return(receive_byte());
cs = 1;
}
void send_byte( uchar out_byte)
{
uchar i;
cs=0;
long_delay();
for (i=0;i<8;i++)
{
if (out_byte&0x80)
{
dat=1;
}
else
{
dat=0;
}
clk=1;
short_delay();
clk=0;
short_delay();
out_byte=out_byte*2;
}
dat=0;
}
uchar receive_byte(void)
{
uchar i, in_byte;
dat=1; // set to input mode
long_delay();
for (i=0;i<8;i++)
{
clk=1;
short_delay();
in_byte=in_byte*2;
if (dat)
{
51+HD7279+ADS1110+PT100的测温系统,通过与标准温度计对比拟合,精度能达到0.5度
in_byte=in_byte|0x01;
}
clk=0;
short_delay();
}
dat=0;
return (in_byte);
}
void delay10ms(uint time) //误差 -0.000000000001us
{
uchar a,b,c;
uint i;
for (i=0;i<time;i++)
{
for(c=7;c>0;c--)
for(b=168;b>0;b--)
for(a=24;a>0;a--);
}
}
void long_delay(void)
{
unsigned char i;
for (i=0;i<0x30;i++);
}
void short_delay(void)
{
unsigned char i;
for (i=0;i<8;i++);
}
/***********************************************************************************
************************************************************************************
////////////////////////////////HD 7279 函数 END////////////////////////////////////////
************************************************************************************
************************************************************************************/
//--------------------- 模块延时程序_1ms -------------------------
void delay1ms(uint delay1ms) //STC11F60XE,延时1ms
{
uchar a,b;
// 12M
51+HD7279+ADS1110+PT100的测温系统,通过与标准温度计对比拟合,精度能达到0.5度
// for(;delay1ms>0;delay1ms--)
// for(b=222;b>0;b--)
// for(a=12;a>0;a--);
// 11.0592M
for( ; delay1ms > 0; delay1ms--)
for(b = 21; b > 0; b--)
for(a = 130; a > 0; a--);
}
void Delay5us() // 晶振11.0592M 误差 -0.026765046296us
{
uchar a;
for(a=12;a>0;a--);
_nop_();
}
void delay(uint delay) //STC11F60XE,12M,延时170us
{
uchar a,b;
// 12M
// for(;delay>0;delay--)
// for(b=78;b>0;b--)
// for(a=5;a>0;a--);
// 11.0592M
for( ; delay > 0; delay--)
for( b = 2; b > 0; b--)
for( a = 232; a > 0; a--);
}
//--------------------- 数码管显示函数 -------------------------
void Display_TMP(uint nTmp1)
{
//send_byte(CMD_RESET);
write7279(DECODE0,nTmp1/100%100);
delay1ms(2);
write7279(DECODE0+1,nTmp1/10%10);
delay1ms(2);
write7279(SEGON,15);
delay1ms(2);
write7279(DECODE0+2,nTmp1%10);
delay1ms(2);
write7279(SEGON,63);
51+HD7279+ADS1110+PT100的测温系统,通过与标准温度计对比拟合,精度能达到0.5度
delay1ms(2);
write7279(SEGON,62);
delay1ms(2);
write7279(SEGON,61);
delay1ms(2);
write7279(SEGON,60);
delay1ms(2);
write7279(SEGON,59);
delay1ms(2);
// write7279(DECODE0+4,nTmp2/100%100);
// delay1ms(2);
// write7279(DECODE0+5,nTmp2/10%10);
// delay1ms(2);
// write7279(SEGON,47);
// delay1ms(2);
// write7279(DECODE0+6,nTmp2%10);
// delay1ms(2);
// write7279(SEGON,31);
// delay1ms(2);
// write7279(SEGON,30);
// delay1ms(2);
// write7279(SEGON,29);
// delay1ms(2);
// write7279(SEGON,28);
// delay1ms(2);
// write7279(SEGON,27);
// delay1ms(2);
//delay10ms(1000);
//send_byte(CMD_RESET);
}
void Display_SETTMP(uint nTmp2)
{
//send_byte(CMD_RESET);
write7279(DECODE0+4,nTmp2/100%100);
delay1ms(2);
write7279(DECODE0+5,nTmp2/10%10);
delay1ms(2);
write7279(SEGON,47);
delay1ms(2);
write7279(DECODE0+6,nTmp2%10);
delay1ms(2);
51+HD7279+ADS1110+PT100的测温系统,通过与标准温度计对比拟合,精度能达到0.5度
write7279(SEGON,31);
delay1ms(2);
write7279(SEGON,30);
delay1ms(2);
write7279(SEGON,29);
delay1ms(2);
write7279(SEGON,28);
delay1ms(2);
write7279(SEGON,27);
delay1ms(2);
//delay10ms(1000);
//send_byte(CMD_RESET);
}
void Display_SET()
{
send_byte(CMD_RESET);
if (nMode == 1) // set nLowTMP
{
write7279(SEGON,1);
delay1ms(2);
write7279(SEGON,2);
delay1ms(2);
write7279(SEGON,3);
delay1ms(2);
write7279(DECODE0+4,nLowTMP/100%100);
delay1ms(2);
write7279(DECODE0+5,nLowTMP/10%10);
delay1ms(2);
write7279(SEGON,47);
delay1ms(2);
write7279(DECODE0+6,nLowTMP%10);
}
if (nMode == 2) // set nHightTMP
{
write7279(SEGON,0);
delay1ms(2);
write7279(SEGON,1);
delay1ms(2);
write7279(SEGON,2);
delay1ms(2);
write7279(SEGON,4);
51+HD7279+ADS1110+PT100的测温系统,通过与标准温度计对比拟合,精度能达到0.5度
delay1ms(2);
write7279(SEGON,5);
delay1ms(2);
write7279(DECODE0+4,nHightTMP/100%100);
delay1ms(2);
write7279(DECODE0+5,nHightTMP/10%10);
delay1ms(2);
write7279(SEGON,47);
delay1ms(2);
write7279(DECODE0+6,nHightTMP%10);
}
if (nMode == 2) // set nTMPAdj
{
write7279(SEGON,0);
delay1ms(2);
write7279(SEGON,1);
delay1ms(2);
write7279(SEGON,2);
delay1ms(2);
write7279(SEGON,4);
delay1ms(2);
write7279(SEGON,5);
delay1ms(2);
write7279(SEGON,6);
delay1ms(2);
if (nTMPAdj < 0)
{
write7279(SEGON,32);
delay1ms(2);
write7279(DECODE0+5,(0-nTMPAdj)/10%10);
delay1ms(2);
write7279(DECODE0+6,(0-nTMPAdj)%10);
}
if (nTMPAdj > 0)
{
write7279(DECODE0+5,nTMPAdj/10%10);
delay1ms(2);
write7279(DECODE0+6,nTMPAdj%10);
}
}
}
/***********************************************************************************
51+HD7279+ADS1110+PT100的测温系统,通过与标准温度计对比拟合,精度能达到0.5度
************************************************************************************
////////////////////////////////红外解码 函数-BEGIN/////////////////////////////////
************************************************************************************
************************************************************************************/
void IR_IN() interrupt 2 using 0
{
// unsigned char j,k,N=0;
// EX1 = 0;
// delay(15);
// if (IRIN==1)
// {
// EX1 =1;
// return;
// }
// //确认IR信号出现
// while (!IRIN) //等IR变为高电平,跳过9ms的前导低电平信号。
// {
// delay(1);
// }
//
// for (j=0;j<4;j++) // 收集四组数据
// {
// for (k=0;k<8;k++) // 每组数据有8位
// {
// while (IRIN) // 等 IR 变为低电平,跳过4.5ms的前导高电平信号。
// {
// delay(1);
// }
// while (!IRIN) // 等 IR 变为高电平
// {
// delay(1);
// }
// while (IRIN) // 计算IR高电平时长
// {
// delay(1);
// N++;
// if (N>=30)
// {
// EX1=1;
// return;
// } // 0.14ms计数过长自动离开。
// } // 高电平计数完毕
// IRCOM[j]=IRCOM[j] >> 1; //数据最高位补“0”
// if (N>=8)
51+HD7279+ADS1110+PT100的测温系统,通过与标准温度计对比拟合,精度能达到0.5度
// {
// IRCOM[j] = IRCOM[j] | 0x80;
// } // 数据最高位补“1”
// N=0;
// }//end for k
// }//end for j
//
// if (IRCOM[2]!=~IRCOM[3])
// {
// EX1=1;
// return;
// }
//
// send_ad_result(IRCOM[2]);
//
// switch(IRCOM[2])
// {
// case 0x45:
// if (nFlag == 0)
// nFlag = 1;
// nFlag = 0;
// //goto OVER;
// break;
//
// case 0x47:
// if((nFlag==1) && (nMode<=3))
// nMode = 0;
// nMode++;
// //goto OVER;
// break;
//
// case 0x16:
// if ((nFlag==1) && (nMode==2))
// nHightTMP--;
// if ((nFlag==1) && (nMode==1))
// nLowTMP--;
// if ((nFlag==1) && (nMode==3))
// nTMPAdj--;
// //goto OVER;
// break;
//
// case 0x19:
// if ((nFlag==1) && (nMode==2))
// nHightTMP++;
51+HD7279+ADS1110+PT100的测温系统,通过与标准温度计对比拟合,精度能达到0.5度
// if ((nFlag==1) && (nMode==1))
// nLowTMP++;
// if ((nFlag==1) && (nMode==3))
// nTMPAdj++;
// //goto OVER;
// break;
// }
// //send_ad_result(IRCOM[5]);
// //OVER:
// EX1 = 1;
return ;
}
/***********************************************************************************
////////////////////////////////红外解码 函数 END////////////////////////////////////
************************************************************************************/
/***********************************************************************************
************************************************************************************
////////////////////////////////AD1110 转换 -BEGIN/////////////////////////////////
************************************************************************************
************************************************************************************/
/*******************************************************************************
名称:ads1110Start(void)
功能:ADS1110 I2C Start
********************************************************************************/
void ads1110Start(void)
{
ADS1110_SDA = 1;
_nop_(); _nop_(); _nop_();_nop_(); _nop_();
ADS1110_CLK = 1;
_nop_(); _nop_();
_nop_(); _nop_(); _nop_(); _nop_();
ADS1110_SDA = 0;
_nop_(); _nop_();
_nop_(); _nop_(); _nop_(); _nop_();
}
51+HD7279+ADS1110+PT100的测温系统,通过与标准温度计对比拟合,精度能达到0.5度
/*******************************************************************************
名称:ads1110Stop(void)
功能:ADS1110 I2C Stop
********************************************************************************/
void ads1110Stop(void)
{
ADS1110_SDA = 0;
_nop_(); _nop_();_nop_(); _nop_();_nop_(); _nop_();
ADS1110_CLK = 1; // -----------结束I2C总线.
_nop_(); _nop_();
_nop_(); _nop_(); _nop_(); _nop_();_nop_(); _nop_();
ADS1110_SDA = 1;
_nop_(); _nop_(); _nop_();
}
/*******************************************************************************
名称:waitAck(void)
功能:ADS1110 I2C 等待ack
********************************************************************************/
uchar waitAck(void)
{
uint i = 0;
ADS1110_CLK = 1;
_nop_(); _nop_(); _nop_(); _nop_(); _nop_();
while((ADS1110_SDA==1)&&(i<500))
i++;
ADS1110_CLK = 0;
_nop_(); _nop_(); _nop_(); _nop_(); _nop_();
return 0x00;
}
/*******************************************************************************
名称:void sendAck(void)
功能:向ADS1110 I2C 发送 ack
********************************************************************************/
void sendAck(void)
51+HD7279+ADS1110+PT100的测温系统,通过与标准温度计对比拟合,精度能达到0.5度
{
ADS1110_SDA=0;
_nop_();
_nop_();
_nop_();
_nop_();
ADS1110_CLK=1;
_nop_();
_nop_();
_nop_();
_nop_();
ADS1110_CLK=0;
}
/*******************************************************************************
名称:void sendNotAck(void)
功能:向ADS1110 I2C 不发送 ack
********************************************************************************/
void sendNotAck(void)
{
ADS1110_SDA=1;
_nop_();
_nop_();
_nop_();
_nop_();
ADS1110_CLK=1;
_nop_();
_nop_();
_nop_();
_nop_();
ADS1110_CLK=0;
}
/*******************************************************************************
名称:void ads1110SendByte(uchar sendData)
功能:向ADS1110 I2C 发送1个字节
********************************************************************************/
51+HD7279+ADS1110+PT100的测温系统,通过与标准温度计对比拟合,精度能达到0.5度
void ads1110SendByte(uchar sendData)
{
uchar i,temp;
temp = sendData;
for(i=0;i<8;i++)
{
temp = temp << 1;
ADS1110_CLK = 0;
_nop_(); _nop_(); _nop_(); _nop_(); _nop_();_nop_(); _nop_();
ADS1110_SDA = CY;
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
ADS1110_CLK = 1;
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
}
ADS1110_CLK = 0;
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
ADS1110_SDA = 1;
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
}
/*******************************************************************************
名称:uchar ads1110ReceiveByte(void)
功能:ADS1110 I2C 接收1个字节
********************************************************************************/
uchar ads1110ReceiveByte(void)
{
uchar i,k;
ADS1110_CLK = 0;
_nop_(); _nop_(); _nop_(); _nop_(); _nop_();_nop_(); _nop_();
ADS1110_SDA = 1;
_nop_(); _nop_();_nop_(); _nop_();_nop_(); _nop_();
for(i=0;i<8;i++)
{
51+HD7279+ADS1110+PT100的测温系统,通过与标准温度计对比拟合,精度能达到0.5度
ADS1110_CLK = 1;
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
k= (k << 1)| ADS1110_SDA;
ADS1110_CLK = 0;
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
}
_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();
return k;
}
/*******************************************************************************
名称:ads1110Config(void)
功能:对ADS1110进行配置
********************************************************************************/
void ads1110Config(void)
{
ads1110Start();
ads1110SendByte(ADS1110_WR_ADDRESS);
waitAck();
ads1110SendByte(ADS1110_CONFIG_REG);
waitAck();
ads1110Stop();
}
/*******************************************************************************
名称:读取ADS1100数据子程序
功能:
********************************************************************************/
uint RD_ADS()
{
uchar temp;
uint W_B1byte_high, W_B1byte_low, W_B1_word;
ads1110Start();
ads1110SendByte(ADS1110_RD_ADDRESS);
temp = waitAck();
if(!temp)
{
51+HD7279+ADS1110+PT100的测温系统,通过与标准温度计对比拟合,精度能达到0.5度
W_B1byte_high /*= TMR_H*/ = ads1110ReceiveByte();
sendAck();
W_B1byte_low /*= TMR_L*/ = ads1110ReceiveByte();
sendAck();
temp = ads1110ReceiveByte();
ads1110Stop();
W_B1_word = (W_B1byte_high << 8)+ W_B1byte_low;
if (W_B1_word > 0x7fff)
W_B1_word = 0;
return W_B1_word;
}
else
return 0x0000;
}
/*******************************************************************************
名称: 取AD结果函数
功能: 它是16位AD转换,连续去制25次,去掉3最大值和3个最小值,剩下19个取平均值
返回: 平均取值
********************************************************************************/
uint get_ad_result()
{
uchar i,j;
uint temp;
nTmp = 0;
for(i = 0; i < 25; i++) // 连续取值25次
{
AD_Result[i] = RD_ADS();
delay1ms(10);
}
for(i = 1; i< 25; i++) // 插入法对取的25个值进行排序
{
temp = AD_Result[i]; //store the original sorted array in temp
for(j=i ; j>0 && temp < AD_Result[j-1] ; j--) //compare the new array with temp
{
AD_Result[j] = AD_Result[j-1]; //all larger elements are moved one pot to the right }
51+HD7279+ADS1110+PT100的测温系统,通过与标准温度计对比拟合,精度能达到0.5度
AD_Result[j] = temp;
}
// for(i = 3; i < 22; i++) // 去掉3最大值和3个最小值,余下19个值求和
// {
// nTmp = nTmp + AD_Result[i];
// }
return AD_Result[12]; //nTmp / 19; // 取剩下19个数平均值
//ad_average_result=ad_average_result*4*5000/1024;
}
/*******************************************************************************
名称: 串口发送函数
功能: 取AD结果函数发送到串口,方便调试
返回: 无
********************************************************************************/
void send_ad_result(uchar temp)
{
SBUF = temp;
while(TI == 0) ;
TI = 0;
delay1ms(100);
//SBUF=R>>4;
}
/*******************************************************************************
名称: 初始化函数
功能: 设置串口相关寄存器值,波特率取9600, 12T模式
返回: 无
********************************************************************************/
void _initiate() //初始化函数
{
EA = 1;
ES = 0;
TMOD = 0x20; // 定时计数器方式控制寄存器,"自动重装,16位计数器".
SCON = 0x50; // 串行控制寄存器,方便在串口助手那观察
// 12M
// TH1 = 0xF3; // 定时器初值高8位设置
// TL1 = 0xF3; // 定时器初值低8位设置
// 11.0592M 波特率 9600
TH1 = 0xFD; // 定时器初值高8位设置
51+HD7279+ADS1110+PT100的测温系统,通过与标准温度计对比拟合,精度能达到0.5度
TL1 = TH1; // 定时器初值低8位设置
PCON = 0x00;
TR1 = 1;
// IE = 0x84; // 允许总中断中断,使能 INT1 外部中断
EX1 = 1;
// TCON = 0x10; // 触发方式为脉冲负边沿触发
}
/*******************************************************************************
名称: 蜂鸣器函数
功能: 设置蜂鸣器鸣响
返回: 无
********************************************************************************/
void Beep(uchar nSet)
{
}
/****************************************/
/****************************************/
//------------ AT24C04 驱动函数 --------------
/**************************************
向AT24C04写1页(16字节)数据
将TESTDATA开始的16个测试数据写如设备的00~0F地址中
**************************************/
void AT24C04_WritePage()
{
uchar i;
AT24C04_Start(); //起始信号
AT24C04_SendByte(0xa0); //发送设备地址+写信号
AT24C04_SendByte(0x00); //发送存储单元地址
for (i=0; i<3; i++)
{
AT24C04_SendByte(nSettingDATA[i]);
}
AT24C04_Stop(); //停止信号
}
/**************************************
从AT24C04读取1页(16字节)数据
将设备的00~0F地址中的数据读出存放在DATA区的BUF中
**************************************/
正在阅读:
51+HD7279+ADS1110+PT100的测温系统(程序)04-21
(完整word版)部编版语文一年级看图写话图片训练及范文.doc04-12
KPI参考09-02
杭州的夏天作文500字06-26
我不能忘却的一件事作文300字06-25
《可编程控制器技术》张东主编7章习题答案08-27
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 测温
- 程序
- 系统
- 7279
- 1110
- ADS
- 100
- 51
- HD
- PT
- 通用ShellCode深入剖析
- 土家风情深度亲子自驾游1.0
- 广东省2022年四年级下学期语文期末模拟测试卷(I)卷
- BK9053-倍福耦合器说明书(中文版)
- 城市规划法宣传资料
- 人教版英语英语一般将来时专项练习题及答案详解含答案解析推荐精
- 大学英语六级阅读历年真题训练unit6(B)
- 以色列教育孩子的方式
- 钢结构厂房招标文件_secret
- 欧姆定律计算题综合
- 2012年湖南金太阳项目
- 2010无烟单位创建方案
- 经典人生励志格言 出门走好路
- 2014上海招警考试公共基础之:行政篇 ——行政赔偿
- 电动汽车制动能量回收控制策略研究
- 2学生练习语法部分时态和语态
- 河南省实验中学高中地理(人教版)必修一课件:第一章《1.3地球的
- AutoCAD自定义矿图线型
- 一站到底题库20140515删减版
- 不断增强服务群众的能力和水平