亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码
標題:
51單片機基于DS18B20的溫度檢測并顯示在lcd1602上
[打印本頁]
作者:
deathno2
時間:
2018-1-24 11:51
標題:
51單片機基于DS18B20的溫度檢測并顯示在lcd1602上
我是新人,只是為了下載個程序才來發這個帖子,大家不要欺負我。
由于我現在手頭的程序都是我幫我們公司做的項目程序,不敢發上來,只有發個簡單的程序了。
仿真如下圖:
QQ截圖20180124114307.jpg
(131.03 KB, 下載次數: 68)
下載附件
2018-1-24 11:44 上傳
程序:(有什么問題都可以來問我)
單片機源程序如下:
#include <reg52.h>
#include <stdio.h>
sbit DQ =P1^3;
sbit RS = P1^5;
sbit RW = P1^6;
sbit EN = P1^7;
void delay(unsigned int i);
void init_DS18B20(void);
unsigned char read_DS18B20(void);
void write_DS18B20(unsigned char dat);
double read_temperature(void);
void init_lcd(void);
void lcd_write_dat(unsigned char dat);
void lcd_write_cmd(unsigned char cmd);
void main(void)
{
double temp;
unsigned char i;
char str[16];
init_lcd();
init_DS18B20();
while(1)
{
temp = read_temperature();
if(temp)
{
sprintf(str,"%f",temp);
for(i=0;i<15;i++)
lcd_write_dat(str[i]);
delay(20000);
init_lcd();
}
}
}
void delay(unsigned int i)
{
while(i--);
}
void init_DS18B20(void)
{
bit flag=1;
while(flag==1)
{
DQ = 1;
DQ = 0;
delay(70);
DQ = 1;
delay(10);
flag=DQ;
delay(20);
}
}
unsigned char read_DS18B20(void)
{
unsigned char i = 0, dat = 0;
for (i=0; i<8; i++)
{
DQ = 0;
dat>>=1;
DQ = 1;
if(DQ)
dat|=0x80;
delay(4);
}
return dat;
}
void write_DS18B20(unsigned char dat)
{
unsigned char i=0;
for (i=0; i<8; i++)
{
DQ = 0;
DQ = dat&0x01;
delay(3);
DQ = 1;
dat>>=1;
}
delay(5);
}
double read_temperature(void)
{
unsigned int temp=0;
double d;
init_DS18B20();
write_DS18B20(0xCC);
write_DS18B20(0x44);
init_DS18B20();
write_DS18B20(0xCC);
write_DS18B20(0xBE);
temp=read_DS18B20();
temp=temp+read_DS18B20()*0x100;
if(temp<0xf000)
{
d=temp*0.0625;
}
else
{
temp=~temp+1;
d=-(temp*0.0625);
}
return d;
}
void init_lcd(void)
{
lcd_write_cmd(0x38);
lcd_write_cmd(0x0f);
lcd_write_cmd(0x06);
lcd_write_cmd(0x01);
delay(100);
}
void lcd_write_dat(unsigned char dat)
{
P2 = dat;
RS = 1;
RW = 0;
EN = 1;
delay(100);
EN = 0;
delay(5000);
}
void lcd_write_cmd(unsigned char cmd)
{
P2 = cmd;
RS = 0;
RW = 0;
EN = 1;
delay(100);
EN = 0;
delay(5000);
}
復制代碼
作者:
獨搖66
時間:
2018-11-5 20:11
錯誤好多。。。
作者:
chenge
時間:
2018-11-7 12:56
還是很厲害的
作者:
Dremt
時間:
2018-11-7 14:26
還是特別厲害的
作者:
Josie
時間:
2018-11-7 21:42
這個可以用嗎?
作者:
Josie
時間:
2018-11-7 21:42
我想拿來做一個實訓的參考
作者:
a132a465a
時間:
2019-11-28 23:16
您好,如果我想把D0到D7連接到P0到P7,程序該如何修改,請指點
作者:
河神45454545
時間:
2020-12-19 17:01
為什么會一開始顯示85?
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1