问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用8051单片机设计一数字式温度计 的电路图 有程序的最好 谢了

发布网友 发布时间:2022-05-17 07:26

我来回答

4个回答

热心网友 时间:2023-10-12 20:59

这个电路很简单,我说一下就可以了。数字式温度传感器用最常用的DS18B20,它只有3个管脚,一个接电源,一个接地,另一个接8051单片机就可以了。温度值用数码管显示。这样整个电路就接好了。如果楼主觉得我回答的可以别忘了给我加分哦,为了你的问题我花费了半天的时间啊。程序如下:
#include<reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define Self_Define_ISP_Download_Command 0x3D
sfr IAP_CONTR=0xE7;
sbit DQ = P3^5; //DS18B20接入口
uchar code table[]={ 0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,0x80,0x90} ;
char ,shi,ge; //定义变量
void Init_Com(void)
{
TMOD = 0x20;
SM0=0;
SM1=1;
REN=1;
TH1 = 0xFd;
TL1 = 0xFd;
TR1 = 1;
EA=1;
ES=1;
}

/*延时子函数*/
void delay(uint num)
{
while(num--) ;
}

/*************DS18b20温度传感器函数*********************/
Init_DS18B20(void) //传感器初始化
{
uchar x=0;
DQ = 1; //DQ复位
delay(10); //稍做延时
DQ = 0; //单片机将DQ拉低
delay(80); //精确延时 大于 480us //450
DQ= 1; //拉高总线
delay(20);
x=DQ; //稍做延时后 如果x=0则初始化成功 x=1则初始化失败
delay(30);

}

//读一个字节
ReadOneChar(void)
{
uchar i=0;
uchar dat = 0;
for (i=8;i>0;i--)
{
DQ = 0; // 给脉冲信号
dat>>=1;
DQ = 1; // 给脉冲信号
if(DQ)
dat|=0x80;
delay(8);
}
return(dat);
}

//写一个字节
WriteOneChar(unsigned char dat)
{
uchar i=0;
for (i=8; i>0; i--)
{
DQ = 0;
DQ = dat&0x01;
delay(10);
DQ = 1;
dat>>=1;
}
delay(8);
}

//读取温度
int ReadTemperature(void)
{
uchar a,b;
uint t;
float tt;
Init_DS18B20();
WriteOneChar(0xCC); // 跳过读序号列号的操作
WriteOneChar(0x44); // 启动温度转换
Init_DS18B20();
WriteOneChar(0xCC); //跳过读序号列号的操作
WriteOneChar(0xBE); //读取温度寄存器等(共可读9个寄存器) 前两个就是温度
a=ReadOneChar();//低位
b=ReadOneChar();//高位
tt=(b*256+a)*0.0625*100;//2个8位合成16位
t=(int)tt;
/*t=b;
t<<=8;
t=t|a;
tt=t*0.0625;
t= tt*10+0.5; */
return(t);
}

/*显示子函数*/
void display(int ,int shi,int ge)
{
int temp;
temp=ReadTemperature();//读温度
=temp/1000;//显示百位
shi=temp%1000/100;//显示十位
ge=temp%100/10;//显示个位
//xiao=temp%10;

P2=0xfd; //位选
P0=0X7f; //显示小数点
delay(500);

P2=0xfe;
P0=table[];//显示千位
delay(500);//一小段延时动态显示
P2=0xfd;
P0=table[shi];//显示百位
delay(500);
P2=0xfb;
P0=table[ge];//显示十位
delay(500);
P2=0xf7;// 显示°
P0=0x9c;
// delay(50);
}

void main()
{
Init_Com();
while(1)
{

display(,shi,ge);//显示函数
}
}

void UART_Interrupt_Receive(void) interrupt 4
{
unsigned char k=0;
unsigned int a,b;
if(RI==1)
{
RI=0;
k=SBUF;
if(k==Self_Define_ISP_Download_Command)
{
for(a=1000;a>0;a--)
for(b=100;b>0;b--); //延时约1S
IAP_CONTR = 0x60;
}
}
else
{
TI=0;
}
}

热心网友 时间:2023-10-12 21:00

见课本第280页!

热心网友 时间:2023-10-12 21:00

留给邮箱,我给你发

热心网友 时间:2023-10-12 21:01

ProteUS仿真已经调试成功,并且实物也焊接并调试

请留下邮箱地址,将仿真文件发邮件给你做参考!

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果手机微信怎么换漂亮字体(苹果手机微信怎么换行输入) 有什么好用的app转换字体 手写转文字的软件 erp可以看评论地址吗 淘宝评论url是什么意思? 揭秘:码牌支付风控升级,背后真相揭秘 电脑电视直播软件哪个好用什么软件好电脑看电视直播 潼南子同街学区是哪些 三极管BU406价格和参数? 火锅料放在冰柜忘了插电一个星期给会坏了吗 火锅的设备有哪些 数字温度计单片机课程设计 基于51单片机及DS18B20温度传感器的数字温度计设计? 用单片机设计数字温度计 隔离霜是用在防晒霜之前还是防晒霜之后啊? 资生堂什么产品好用? 360软件管家上的一键安装和下载有什么不一样吗? 360软件宝库里 &quot;打开软件&quot; &quot;一键安装&quot; &quot;下载&quot; &quot;已安装&quot; 分别是什么意思? 下载破解版时,下方总是出现一键安装该怎么办? 谁有王琪的《又见送情郎》mp3百度网盘下载链接 如何下载一键安装 刺客信条4自由呐喊反杀时候是无敌的吗,加勒比海在哪里,要地图标记的照片 帮我写关于沙场上的严肃气氛和景象 求岳云鹏 五环之歌 送情郎 mp3 郭德纲 大约在冬季MP3格式下载地址,或发到1021859293@qq.com,谢谢 太阁立志传5吧的自创剧本 谁有电视剧《八兄弟》中插曲《送情郎》的下载地址 龙之谷战神加点方法。 断箭好看吗? 求岳云鹏的送情郎MP3。 挽鲁迅的巧嵌其作品,称号的对联 送情郎 郭德纲 mp3有效下载地址 用c51单片机和热敏电阻制作温度计 李智雅整容照片集 李智雅的父母 李智雅整容 李智雅资料 的qq号 博客 相册 照片 图片 T—ara哪些成员整容了啊?朴孝敏有吗? 罗爱乔为何代替秀莲活了20年? 各位网友谁有凯叔亲子旅游英语(高清视频)百度网盘链接地址求分享谢谢 如何使用男方的生育保险 上海外语频道的一个英语的旅游节目,getaway,大概周六播出 女方生育保险报销可以用男方的吗 OPPOa59s图片不见了 怎么还原 英语的旅游节目! 女方生育后男方的生育保险怎么操作 OPPO A59s如何恢复保险箱里的照片? 轿车监控一般都监控多少米 含字开头的成语 轿车内监控装在哪? 含进字开头的成语有哪些 96年夏天 天空出现一个星系 非常大 有人记得么 用含一字开头的两个成语造句 含意字开头的成语求大神帮助