久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
簡易單片機溫度報警器源程序與電路原理圖
[打印本頁]
作者:
senyaney
時間:
2017-8-9 12:35
標題:
簡易單片機溫度報警器源程序與電路原理圖
0.png
(82.84 KB, 下載次數: 60)
下載附件
2017-8-9 20:42 上傳
原理圖下載:
原理圖.pdf
(39.12 KB, 下載次數: 21)
2017-8-9 12:40 上傳
點擊文件名下載附件
硬件原理圖
下載積分: 黑幣 -5
單片機源碼:
#include<reg52.h>
#define ui unsigned int
#define uc unsigned char //宏定義
sbit DQ =P3^7; //定義DS18B20總線I/O
bit bdata fuhao;
uc qian,bai,shi,ge;
uc code led[] = {0x5F,0x44,0x9D,0xD5,0xC6,0xD3,0xDB,0x47,0xDF,0xD7};
uc code led_dian[] = {0x7f,0x64,0xbd,0xf5,0xe6,0xf3,0xfb,0x67,0xff,0xf7};
//============================================================================================
//====================================DS18B20=================================================
//============================================================================================
/*****延時子程序*****/
void Delay(int num)
{
while(num--) ;
}
/*****初始化DS18B20*****/
void Init_DS18B20()
{
DQ = 1; //DQ復位
Delay(8); //稍做延時
DQ = 0; //單片機將DQ拉低
Delay(80); //精確延時,大于480us
DQ = 1; //拉高總線
Delay(40);
}
/*****讀一個字節*****/
uc ReadOneChar()
{
uc i=0;
uc dat = 0;
for (i=8;i>0;i--)
{
DQ = 0; // 給脈沖信號
dat>>=1;
DQ = 1; // 給脈沖信號
if(DQ)
dat|=0x80;
Delay(4);
}
return(dat);
}
/*****寫一個字節*****/
void WriteOneChar(uc dat)
{
uc i=0;
for (i=8; i>0; i--)
{
DQ = 0;
DQ = dat&0x01;
Delay(5);
DQ = 1;
dat>>=1;
}
}
/*****讀取溫度*****/
ui ReadTemperature()
{
ui a=0,b=0,t=0;
float tt=0;
Init_DS18B20();
WriteOneChar(0xCC); //跳過讀序號列號的操作
WriteOneChar(0x44); //啟動溫度轉換
Init_DS18B20();
WriteOneChar(0xCC); //跳過讀序號列號的操作
WriteOneChar(0xBE); //讀取溫度寄存器
a=ReadOneChar(); //讀低8位
b=ReadOneChar(); //讀高8位
t=b;
t<<=8;
t=t|a;
if(t&0xf800)
{
t=~t+1;
fuhao=1;
}
else
fuhao=0;
tt=t*0.0625;
t=tt*10+0.5; //放大10倍輸出并四舍五入
return(t);
}
/*****讀取溫度*****/
void check_wendu()
{
ui f;
f=ReadTemperature(); //獲取溫度值并減去DS18B20的溫漂誤差
qian=f/1000;
bai=(f%1000)/100; //計算得到十位數字
shi=((f%1000)%100)/10; //計算得到個位數字
ge=((f%1000)%100)%10; //計算得到小數位
}
/*****顯示開機初始化等待畫面*****/
void Disp_init()
{
P0 = 0x7f; //顯示----
P2 = 0x7f;
Delay(100);
P2 = 0xdf;
Delay(100);
P2 = 0xf7;
Delay(100);
P2 = 0xfd;
Delay(100);
P2 = 0xff; //關閉顯示
}
/*****顯示溫度子程序*****/
void Disp_Temperature() //顯示溫度
{
if(qian==0)
{
if(fuhao==1)
P0=0x7f; //1011 1111
else
P0=0xff;
P2=0xfd;
Delay(10);
P2 = 0xff;
}
else if(qian!=0)
{
P0 =~led[qian];
P2 = 0xfd;
Delay(10);
P2 = 0xff;
}
if((bai==0)&&(qian==0))
{
P0=0xff; //
P2=0xf7;
Delay(10);
P2=0xff;
}
else if((bai==0)&&(qian!=0))
{
P0=~led[bai];
P2=0xf7;
Delay(10);
P2=0xff;
}
else if(bai!=0)
{
P0=~led[bai]; //
P2=0xf7;
Delay(10);
P2=0xff;
}
P0=~led_dian[shi]; //
P2=0xdf;
Delay(10);
P2=0xff;
P0=~led[ge]; //顯示符號
P2=0x7f;
Delay(10);
P2=0xff; //關閉顯示
}
/*****主函數*****/
void main()
{
uc z;
for(z=0;z<100;z++)
{
Disp_init();
check_wendu();
}
while(1)
{
check_wendu();
for(z=0;z<10;z++)
Disp_Temperature();
}
}
復制代碼
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
精品国产综合
|
一级黄色生活视频
|
国产欧美在线一区二区
|
亚洲国产成人av好男人在线观看
|
九九久久免费视频
|
欧美精品在线观看
|
av毛片在线
|
亚洲二区在线
|
黑人巨大精品欧美一区二区免费
|
91欧美
|
国产一区不卡
|
欧美日韩一区二区三区在线观看
|
日韩精品 电影一区 亚洲
|
视频在线观看一区二区
|
国产毛片久久久久久久久春天
|
波波电影院一区二区三区
|
av在线电影网站
|
国产精品视频网
|
成人午夜激情
|
99精品欧美一区二区三区综合在线
|
亚洲激情一级片
|
欧美中文一区
|
精品二三区
|
国产成人亚洲精品自产在线
|
精品在线一区
|
日韩在线一区二区三区
|
久久久精品国产
|
欧美精品一区三区
|
99国产视频
|
精品久久久久久红码专区
|
久久免费资源
|
色综合久久天天综合网
|
丁香一区二区
|
成人午夜av
|
www国产亚洲精品久久网站
|
欧美视频区
|
国产成人网
|
午夜视频免费网站
|
久久国产精品-国产精品
|
午夜精品久久久久久久久久久久
|
香蕉久久a毛片
|