网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
06月22日漏签0天
单片机吧 关注:211,846贴子:1,046,575
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 0回复贴,共1页
<<返回单片机吧
>0< 加载中...

求高手给讲讲有些地方不太懂

  • 只看楼主
  • 收藏

  • 回复
  • __小城布衣
  • 新兵
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include "reg51.h"
#include "intrins.h"
/*********************¶¨Òå¶Ë¿Ú***********************/
sbit DQ=P1^3;//ds18b20 ¶Ë¿Ú
//sfr dataled=0x80;
/*************************È«¾Ö±äÁ¿******************/
unsigned int temp;
unsigned char flag_get,count,num;
unsigned char code tab[]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //7¶Î¹²Ñô
unsigned char str[6];
/**********************º¯ÊýÉùÃ÷*********************/
unsigned int read_temp();
void Init_DS18B20();
unsigned char read();
void write();
/***********************Ö÷º¯Êý**********************/
void main()
{
unsigned char TempH=0,TempL=0;
EA=1;
ET0=1;
TMOD=0x01;//¶¨Ê±Æ÷ÉèÖÃ
TH0=0xf0;
TL0=0x60;
TR0=1;
P2=0x00;
count=0;
while(1)
{
str[5]=0x39; //ÏÔʾC·ûºÅ
str[1]=tab[TempH/100]; //ʮλζÈ
str[2]=tab[(TempH%100)/10]; //ʮλζÈ
str[3]=tab[(TempH%100)%10]|0x80; //¸öλζÈ,´øÐ¡Êýµã
str[4]=tab[TempL];
if(flag_get==1) //¶¨Ê±¶ÁÈ¡µ±Ç°Î¶È
{
temp=read_temp();
if(temp&0x8000)
{
str[0]=0x40;//¸ººÅ±êÖ¾
temp=~temp; // È¡·´¼Ó1
temp +=1;
}
else
str[0]=0;
TempH=temp>>4;
TempL=temp&0x0F;
TempL=TempL*6/10;//СÊý½üËÆ´¦Àí
flag_get=0;
}
}
}
/************************¶¨Ê±Æ÷ÖжÏ*****************/
void shaomiao() interrupt 1
{
TH0=0xf0;//¶¨Ê±Æ÷֨װֵ
TL0=0x60;
num++;
if(num==20)
{num=0;
flag_get=1;//±ê־λÓÐЧ}
}
count++;
if(count==1)
{
P2=0x00;
P0=str[0];//ÊýÂë¹ÜɨÃè
}
if(count==2)
{
P2=0x01;
P0=str[1];
}
if(count==3)
{
P2=0x02;
P0=str[2];
}
if(count==4)
{
P2=0x03;
P0=str[3];
}
if(count==5)
{
P2=0x04;
P0=str[4];
}
if(count==6)
{
P2=0x05;
P0=str[5];
count=0;
}
}
/************************ÑÓʱº¯Êý******************/
void delay(unsigned int i)//ÑÓʱº¯Êý
{
while(i--);
}
/************************³õʼ»¯********************/
void Init_DS18B20()
{
unsigned char x=0;
DQ = 1; //DQ¸´Î»
delay(8); //ÉÔ×öÑÓʱ
DQ = 0; //µ¥Æ¬»ú½«DQÀµÍ
delay(80); //¾«È·ÑÓʱ ´óÓÚ 480us
DQ = 1; //À¸ß×ÜÏß
delay(10);
x=DQ; //ÉÔ×öÑÓʱºó Èç¹ûx=0Ôò³õʼ»¯³É¹¦ x=1Ôò³õʼ»¯Ê§°Ü
delay(5);
}
/*************************¶ÁÒ»¸ö×Ö½Ú*********************/
unsigned char read()
{
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(5);
}
return(dat);
}
/*********************дһ¸ö×Ö½Ú****************************/
void write(unsigned char dat)
{
unsigned char i=0;
for (i=8; i>0; i--)
{
DQ = 0;
DQ = dat&0x01;
delay(5);
DQ = 1;
dat>>=1;
}
delay(5);
}
/***********************¶ÁȡζÈ*****************************/
unsigned int read_temp()
{
unsigned char a=0;
unsigned int b=0;
unsigned int t=0;
Init_DS18B20();
write(0xCC); // Ìø¹ý¶ÁÐòºÅÁкŵIJÙ×÷
write(0x44); // Æô¶¯Î¶Èת»»
delay(200);
Init_DS18B20();
write(0xCC); //Ìø¹ý¶ÁÐòºÅÁкŵIJÙ×÷
write(0xBE); //¶ÁȡζȼĴæÆ÷µÈ£¨¹²¿É¶Á9¸ö¼Ä´æÆ÷£© ǰÁ½¸ö¾ÍÊÇζÈ
a=read(); //µÍλ
b=read(); //¸ßλ
b<<=8;
t=a+b;
return(t);
}


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 0回复贴,共1页
<<返回单片机吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示