久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
STC12C5A60S2單片機(jī)驅(qū)動(dòng)18b20顯示整數(shù),12m晶振 串口全是00
[打印本頁(yè)]
作者:
maizhi99
時(shí)間:
2021-8-13 14:26
標(biāo)題:
STC12C5A60S2單片機(jī)驅(qū)動(dòng)18b20顯示整數(shù),12m晶振 串口全是00
STC12C5A60S2驅(qū)動(dòng)18b20顯示整數(shù) 12m晶振 串口全是00
請(qǐng)各位大佬指教
單片機(jī)源程序如下:
#include "STC12C5A60S2.h" //調(diào)用51單片機(jī)的頭文件
#include <Intrins.h>
sbit ds18b20=P3^2;
//---------------------------------------
unsigned char temp1;
unsigned int temp2;
unsigned char xiaoshu1;//小數(shù)第一位
unsigned char xiaoshu2;//小數(shù)第二位
unsigned char xiaoshu;//兩位小數(shù)
//---------------------------------------
void Timer0Init(void) //1微秒@12MHz
{
AUXR |= 0x80; //定時(shí)器時(shí)鐘1T模式
TMOD &= 0xF0; //設(shè)置定時(shí)器模式
TMOD |= 0x01; //設(shè)置定時(shí)器模式
TL0 = 0xF4; //設(shè)置定時(shí)初始值
TH0 = 0xFF; //設(shè)置定時(shí)初始值
TF0 = 0; //清除TF0標(biāo)志
TR0 = 1; //定時(shí)器0開(kāi)始計(jì)時(shí)
}
/* 微秒延時(shí)函數(shù) 參數(shù)給幾 就延時(shí)幾微秒 */
void delay_us(unsigned int us)
{
while(us--)
{
Timer0Init();
}
}
//---------------------------------------
//名稱:復(fù)位DS18B20函數(shù)
bit Reset(void)
{
bit k;
ds18b20=1;
ds18b20=0; //拉低DQ總線開(kāi)始復(fù)位
delay_us(870); //保持DQ低大約870uS,符合不低于48US的要求
ds18b20=1; //拉高準(zhǔn)備接收數(shù)據(jù)
delay_us(80); //大約80uS后
k=ds18b20; //讀出數(shù)據(jù)并保存
delay_us(400); //維持約400US,符合總讀時(shí)隙不低于480US的要求
return k; //k=0為復(fù)位成功,k=1為復(fù)位失敗
}
//---------------------------------------
//名稱:讀一字節(jié)函數(shù)
unsigned char ReadByte(void)
{
unsigned char j,buf=0;
for(j=0;j<8;j++) //接收8次還原一個(gè)字節(jié)數(shù)據(jù)
{
buf=buf>>1; //接收前,想將接收緩沖區(qū)右移
ds18b20=0; //拉低
delay_us(2);
ds18b20=1; //拉高,為讀數(shù)據(jù)做準(zhǔn)備
delay_us(6);
if(ds18b20==1) buf|=0x80; //讀出1位數(shù)據(jù)保存于buf中
//維持約52US,符合總讀時(shí)隙不低于60US的要求
delay_us(52);
}
return buf; //退出的同時(shí)將接收緩沖區(qū)參數(shù)返回
}
//---------------------------------------
//名稱:寫(xiě)一字節(jié)函數(shù)
void WriteByte(unsigned char dat)
{
unsigned char j;
for(j=0;j<8;j++)
{
if(dat&0x01) //如果寫(xiě)1
{
ds18b20=0; //拉低
delay_us(2);
ds18b20=1; //拉高
delay_us(63);
}
else //如果寫(xiě)0
{
ds18b20=0; //拉低
delay_us(63);
ds18b20=1; //拉高
delay_us(2);
}
dat=dat>>1; //寫(xiě)入字節(jié)右移1位
}
}
//---------------------------------------
//名稱:DS18B20溫度轉(zhuǎn)換函數(shù)
bit Convert()
{
if(Reset()==0) //復(fù)位DS18B20
{
WriteByte(0xcc); //寫(xiě)入跳過(guò)序列號(hào)命令字 Skip Rom
WriteByte(0x44); //寫(xiě)入溫度轉(zhuǎn)換命令字 Convert T
return 1; //啟動(dòng)溫度轉(zhuǎn)換成功
}
else
{
return 0; //啟動(dòng)溫度轉(zhuǎn)換失敗
}
}
//---------------------------------------
//名稱:轉(zhuǎn)換結(jié)束處理函數(shù)
void ReadFlash(void)
{
unsigned char Lsb,Msb;
if(Reset()==0) //復(fù)位DS18B20
{
WriteByte(0xcc); //寫(xiě)入跳過(guò)序列號(hào)命令字 Skip Rom
WriteByte(0xbe); //寫(xiě)入讀取數(shù)據(jù)令字 Read Scratchpad
Lsb=ReadByte(); //讀出第一個(gè)字節(jié)暫存于LSB
Msb=ReadByte(); //讀出第二個(gè)字節(jié)暫存于MSB
temp1=Lsb&0x0f; //temp1內(nèi)裝溫度參數(shù)的小數(shù)部分
temp2=(Lsb>>4)|(Msb<<4);//temp2內(nèi)裝溫度參數(shù)的整數(shù)部分
xiaoshu1 = (temp1&0x0f)*10/16; //小數(shù)第一位
xiaoshu2 = (temp1&0x0f)*100/16%10;//小數(shù)第二位
xiaoshu=xiaoshu1*10+xiaoshu2; //小數(shù)兩位
temp2=((temp2/100)<<8)+(temp2/10%10)*16+(temp2%10);
}
else
{
temp1=0; //如果復(fù)位失敗,溫度參數(shù)清零
temp2=0; //如果復(fù)位失敗,溫度參數(shù)清零
}
}
void main(void) //主函數(shù),單片機(jī)開(kāi)機(jī)后就是從這個(gè)函數(shù)開(kāi)始運(yùn)行
{
SCON = 0x50; //8位數(shù)據(jù),可變波特率
AUXR |= 0x40; //定時(shí)器時(shí)鐘1T模式
AUXR &= 0xFE; //串口1選擇定時(shí)器1為波特率發(fā)生器
TMOD &= 0x0F; //設(shè)置定時(shí)器模式
TL1 = 0xC7; //設(shè)置定時(shí)初始值
TH1 = 0xFE; //設(shè)置定時(shí)初始值
ET1 = 0; //禁止定時(shí)器%d中斷
TR1 = 1; //定時(shí)器1開(kāi)始計(jì)時(shí)
while(1) //死循環(huán),單片機(jī)初始化后,將一直運(yùn)行這個(gè)死循環(huán)
{
if(Convert()==1) //啟動(dòng)轉(zhuǎn)換
{
ReadFlash(); //讀取溫度
}
SBUF=temp2;
while(TI == 0); //檢查發(fā)送中斷標(biāo)志位
TI = 0; //令發(fā)送中斷標(biāo)志位為0(軟件清零)
}
}
復(fù)制代碼
作者:
xuyaqi
時(shí)間:
2021-8-13 15:20
查18b20與串口硬件接線是否正確。
作者:
lamcare
時(shí)間:
2024-3-17 10:46
你好,請(qǐng)問(wèn)解決了嗎
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
欧美精品一区三区
|
国产一区二区成人
|
成在线人视频免费视频
|
成人在线观看网站
|
成人精品国产免费网站
|
成年人在线视频
|
夜夜爆操
|
国产香蕉视频在线播放
|
久久精品av
|
午夜在线小视频
|
日韩一区中文字幕
|
免费特级黄毛片
|
久久久久无码国产精品一区
|
天天躁日日躁狠狠躁白人
|
成在线人视频免费视频
|
日韩一区二区三区视频
|
久久99深爱久久99精品
|
国产毛片毛片
|
免费午夜视频在线观看
|
人人爽人人爽
|
亚洲精品视频在线观看视频
|
久久99这里只有精品
|
国产精品久久久久久吹潮
|
欧美成人一区二区三区片免费
|
欧美一级在线免费观看
|
伦理二区
|
亚洲三级在线观看
|
国产精品网页
|
99国产精品视频免费观看一公开
|
激情欧美一区二区三区中文字幕
|
天天综合网91
|
免费国产一区
|
精品国产一区二区三区四区在线
|
成人二区
|
日本中出视频
|
午夜国产一级
|
欧美日韩精品区
|
欧美日韩国产一区二区三区
|
午夜影院在线观看视频
|
免费在线视频a
|
av中文字幕在线播放
|