#include "INTRINS.H"
typedef unsigned char BYTE
sbit DQ = P3^3//DS18B20的数据口位P3.3
BYTE TPH //存放温橡睁度值的高字节
BYTE TPL //存放温森信度值的低字节
void DelayXus(BYTE n)
void DS18B20_Reset()
void DS18B20_WriteByte(BYTE dat)
BYTE DS18B20_ReadByte()
void main()
{
DS18B20_Reset() //设备复位
DS18B20_WriteByte(0xCC) //跳过ROM命令
DS18B20_WriteByte(0x44) //开始转换命令
while (!DQ) //等待转换完成
DS18B20_Reset() //设备复位
DS18B20_WriteByte(0xCC) //跳过ROM命令
DS18B20_WriteByte(0xBE) //读暂梁春岁存存储器命令
TPL = DS18B20_ReadByte() //读温度低字节
TPH = DS18B20_ReadByte() //读温度高字节
while (1)
}
#define EEPMASS1 0xAE /肢信/密码钥匙1#define EEPMASS2 0x56 //密码钥匙2
#define EEPADDR 0x4000 //eep地址起始
void eeprom_read(U16 u16Addr, U8 *pdatas, U8 len)
{
U8 *eep=(U8 *)u16Addr
U8 j
for(j=0j<lenj++)
{
pdatas[j]=eep[j]
}
}
void eep_word_write(U16 u16Addr, U8 *pdatas, U8 len)
{
U8 *eep=(U8*)u16Addr
U8 j
FLASH_DUKR=EEPMASS1 //锁埋饥铅1密钥
FLASH_DUKR=EEPMASS2 //锁2密钥
while(!(FLASH_IAPSR&0x08))//等待解密就绪
DISABLE_MAC_INTERRUPTS()
FLASH_CR2 |= 0x40//
FLASH_NCR2 &= ~0x40 //设置字弯好编程
for(j=0j<lenj++)
{
eep[j] = pdatas[j]
}
while(!(FLASH_IAPSR&0x04))
FLASH_IAPSR &=0xf7 // off the eeprom program
ENABLE_MAC_INTERRUPTS()
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)