用STM8怎样编写温度采集显示系统程序?

用STM8怎样编写温度采集显示系统程序?,第1张

#include "REG51.H"

#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()

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12450450.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存