久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 971|回復: 0
收起左側

52單片機+1602+18b20控制程序源代碼

[復制鏈接]
ID:595331 發表于 2019-8-5 09:37 | 顯示全部樓層 |閱讀模式
#include<reg52.h>

#define uchar unsigned char
#define uint unsigned int
sbit DQ=P3^3;
sbit RS=P2^5;
sbit RW=P2^6;
sbit E=P2^7;
unsigned char code str1[]={"temperature: "};
unsigned char code str2[]={" "};
uchar data disdata[5];
uint tvalue;//溫度值
uchar tflag;//溫度正負標志
/*************************lcd1602程序**************************/
void delay1ms(unsigned int ms)//延時1毫秒(不夠精確的)
{
unsigned int i,j;
for(i=0;i<ms;i++)
for(j=0;j<100;j++);
}
void wr_com(unsigned char com)//寫指令//
{
delay1ms(1);
RS=0;
RW=0;
E=0;
P0=com;
delay1ms(1);
E=1;
delay1ms(1);
E=0;
}
void wr_dat(unsigned char dat)//寫數據//
{
delay1ms(1);
RS=1;
RW=0;
E=0;
P0=dat;
delay1ms(1);
E=1;
delay1ms(1);
E=0;
}
void lcd_init()//初始化設置//
{
delay1ms(15);
wr_com(0x38);
delay1ms(5);
wr_com(0x08);delay1ms(5);
wr_com(0x01);delay1ms(5);
wr_com(0x06);delay1ms(5);
wr_com(0x0c);delay1ms(5);
}
void display(unsigned char *p)//顯示//
{
while(*p!='\0')
{
wr_dat(*p);
p++;
delay1ms(1);
}
}
init_play()//初始化顯示
{
lcd_init();
wr_com(0x80);
display(str1);
wr_com(0xc0);
display(str2);
}
/******************************ds1820程序***************************************/
void delay_18B20(unsigned int i)//延時1微秒
{
while(i--);
}
void ds1820rst()/*ds1820復位*/
{
unsigned char x=0;
DQ = 1; //DQ復位
delay_18B20(4); //延時
DQ = 0; //DQ拉低
delay_18B20(100); //精確延時大于480us
DQ = 1; //拉高
delay_18B20(40);
}
uchar ds1820rd()/*讀數據*/
{
unsigned char i=0;
unsigned char dat = 0;
for (i=8;i>0;i--)
{
DQ = 0; //給脈沖信號
dat>>=1;
DQ = 1; //給脈沖信號
if(DQ)
dat|=0x80;
delay_18B20(10);
}
return(dat);
}
void ds1820wr(uchar wdata)/*寫數據*/
{
unsigned char i=0;
for (i=8; i>0; i--)
{
DQ = 0;
DQ = wdata&0x01;
delay_18B20(10);
DQ = 1;
wdata>>=1;
}
}
read_temp()/*讀取溫度值并轉換*/
{
uchar a,b;
ds1820rst();
ds1820wr(0xcc);//*跳過讀序列號*/
ds1820wr(0x44);//*啟動溫度轉換*/
ds1820rst();
ds1820wr(0xcc);//*跳過讀序列號*/
ds1820wr(0xbe);//*讀取溫度*/
a=ds1820rd();
b=ds1820rd();
tvalue=b;
tvalue<<=8;
tvalue=tvalue|a;
if(tvalue<0x0fff)
tflag=0;
else
{
tvalue=~tvalue+1;
tflag=1;
}
tvalue=tvalue*(0.625);//溫度值擴大10倍,精確到1位小
return(tvalue);
}
/*******************************************************************/
void ds1820disp()//溫度值顯示
{
uchar flagdat;
disdata[0]=tvalue/1000+0x30;//百位數
disdata[1]=tvalue%1000/100+0x30;//十位數
disdata[2]=tvalue%100/10+0x30;//個位數
disdata[3]=tvalue%10+0x30;//小數位
if(tflag==0)
flagdat=0x20;//正溫度不顯示符號
else
flagdat=0x2d;//負溫度顯示負號:-
if(disdata[0]==0x30)
{
disdata[0]=0x20;//如果百位為0,不顯示
if(disdata[1]==0x30)
{
disdata[1]=0x20;//如果百位為0,十位為0也不顯示
}
}
wr_com(0xc0);
wr_dat(flagdat);//顯示符號
wr_com(0xc1);
wr_dat(disdata[0]);//顯示百位
wr_com(0xc2);
wr_dat(disdata[1]);//顯示十位
wr_com(0xc3);
wr_dat(disdata[2]);//顯示個位
wr_com(0xc4);
wr_dat(0x2e);//顯示小數點
wr_com(0xc5);
wr_dat(disdata[3]);//顯示小數位
wr_com(0xc6);
wr_dat(0xDF);//顯示度數
wr_com(0xc7);
wr_dat(0x43);//顯示c
}
/********************主程序***********************************/
void main()
{
init_play();//初始化顯示
while(1)
{
read_temp();//讀取溫度
ds1820disp();//顯示
}
}


回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91精品一区二区三区久久久久久 | 一区二区三区四区av | 伦理二区 | 国产精品一区二区视频 | 日本一区二区不卡 | 美女视频黄的 | 亚洲一区 中文字幕 | 精品国产一区二区三区性色av | 国产精品日韩欧美一区二区三区 | 人人做人人澡人人爽欧美 | 日韩在线国产 | 丝袜美腿一区二区三区动态图 | 国产精品久久久久久久岛一牛影视 | 日本视频在线 | 久久人人爽人人爽人人片av免费 | 欧美区在线 | 亚洲国产成人精品女人久久久 | 成人av一区| 精品久久久久久久人人人人传媒 | 成人免费视屏 | 日韩一区二区三区视频 | 在线亚洲人成电影网站色www | 欧美日韩综合精品 | 精品国产18久久久久久二百 | 99热精品在线观看 | 成人在线观看黄 | 亚洲区在线 | 成人福利在线 | 午夜视频免费在线观看 | 欧美大片在线观看 | 中文在线www | 色婷婷综合久久久中字幕精品久久 | 天天澡天天狠天天天做 | 欧美日韩一区二区在线观看 | 亚洲性在线 | 精品日韩一区 | 在线免费黄色小视频 | 亚洲欧美日韩久久久 | 久久精品国产精品青草 | 在线婷婷 | 特级丰满少妇一级aaaa爱毛片 |