数字体温计protues仿真图和程序Word文档格式.docx
- 文档编号:15838271
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:27
- 大小:355.35KB
数字体温计protues仿真图和程序Word文档格式.docx
《数字体温计protues仿真图和程序Word文档格式.docx》由会员分享,可在线阅读,更多相关《数字体温计protues仿真图和程序Word文档格式.docx(27页珍藏版)》请在冰豆网上搜索。
sbitIcden=卩2八7;
sbitIcdrw=P2A5;
sbitAN=P2A0;
sbitAM=P2A1;
ucharcodeTemp_Disp_Title[]={"
CurrentTemp:
"
};
uchartemp_buffer[]={"
TEMP:
ucharcodexs[]={0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9};
/小、数位
ucharTemp_value[]={0x00,0x00};
〃为DS18B20读取的字节分配地址
ucharDisplay_Digit[]={0,0,0,0};
uintT;
voiddelay(uint);
voiddelay1602(uint);
voidinit_ds18b20();
voidwrite_byte(uchardate);
voiddisplay_temp();
voidwrite_com(uchar);
voidwrite_2(uchar);
voidinit1602();
ucharread_byte();
voidread_temp();
voidmain()
{bitzhi=0;
AN=1;
init1602();
//1602初始化read_temp();
//读取温度delay(50000);
while
(1)
{read_temp();
if(zhi==0)
display_temp();
//按键没有按下时显示温度if(Display_Digit[2]>
2)//设定报警温度if(zhi==0)
BUFFER=0;
delay(2000);
BUFFER=1;
delay1602
(1);
if(AN==0)//检测按键
{delay1602(5);
//去抖if(AN==0)//按下按键{zhi=~zhi;
//while
(1);
//保持当前温度while(!
AN);
//松手检测
}
voiddelay(uintt)
{
while(t--);
voiddelay1602(uintz)
uintx,y;
for(x=z;
x>
0;
x--)for(y=110;
y>
y--);
/****************************初始化,检测DS18B20是否在线*****************************/voidinit_ds18b20()
DQ=1;
delay(8);
DQ=0;
delay(85);
delay(14);
delay(5);
voidwrite_byte(uchardate)
uchari;
for(i=0;
i<
8;
i++)
//写数据前将数据线拉低DQ=date&
0x01;
//从最低位开始写delay(5);
//留出ds18b20采样时间DQ=1;
//采样完将数据拉高,等待下一次采样date»
=1;
//date右移一位
delay(5);
ucharread_byte()
uinti,value;
value>
>
〃右移一位,同时起延时作用
if(DQ==1)
value|=0x80;
//从高位开始读delay(5);
returnvalue;
voidread_temp()
{init_ds18b20();
write_byte(0xcc);
〃跳过ROMwrite_byte(0x44);
〃启动温度测量delay(200);
〃给出温度测量时间
init_ds18b20();
〃跳过ROMwrite_byte(0xbe);
//读取温度
voiddisplay_temp()
uinti;
Temp_value[0]=read_byte();
Temp_value[1]=read_byte();
Display_Digit[0]=xs[Temp_value[0]&
0x0f];
//显示小数位
T=((Temp_value[0]&
0xf0)>
4)|((Temp_value[1]&
0x07)<
<
4);
Display_Digit[3]=T/100;
//百位
Display_Digit[2]=T%100/10;
//十位
Display_Digit[1]=T%10;
//个位temp_buffer[11]=Display_Digit[0]+'
0'
;
temp_buffer[10]='
.'
;
temp_buffer[9]=Display_Digit[1]+'
temp_buffer[8]=Display_Digit[2]+'
temp_buffer[7]=Display_Digit[3]+'
if(Display_Digit[3]==0)
temp_buffer[7]='
'
//如果百位为0,则显示空格if(Display_Digit[2]==0&
&
Display_Digit[3]==0)
temp_buffer[8]='
//如果百位和十位同时为0,则十位处显示空格write_com(0x80);
15;
{write_2(Temp_Disp_Title[i]);
}write_com(0x80+0x40);
for(i=0;
12;
{write_2(temp_buffer[i]);
delay1602(10);
}write_com(0x80+0x4d);
write_2(0xdf);
write_2('
C'
);
voidwrite_com(ucharcom)
lcdrs=0;
P0=com;
delay1602(5);
lcden=1;
lcden=0;
voidwrite_2(ucharda)
lcdrs=1;
P0=da;
delay1602(5);
lcden=1;
voidinit1602()
lcden=0;
lcdrw=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x80);
仿真图
C1
•U1
XT.4L1
X
LSI
XTAL2
RST
TEXT>
psaq
ALE
EA
CRYST细
—
R2..
10k•-
--■■
22p<
D2:
LED-8F
ftTS^51<
LCD1
U«
16L
thetemperature
is38.0
P0.0/AD0P0.1/AD1
P0.2WD2
P03AD3
P0.4/AD4
P0.5WD5
P0.6WD6
P0.7/AD7
P2D/A8
P2.1/A9P22/A10P23/A11P2.4/A12P25/A13P2B/A14P2.7/A15
P3.0KXDP3.1/TXDP32匝
P33^NfT
P3.4fT0
P3.5fT1_
P3.6匝
P3.7莎
fj.
□
■21
■22
(0Oiu>
QOOOOOOO
XCW寸£
9*
■24■2E■2E
■27
■2E
■1C
■ii
OP2.0
OP2.1
OP2.2
OP2.3
OP2.4
OP2.5
OP2.6
OP2.7
ORS
ORW
U4
VCC
DQ
GND••
DS1S820<
.
程序清单
#include<
reg51.h>
#defineucharunsignedchar
#defineuintunsignedintuchari;
sbitlcdrs=P39
sbitlcdrw=P3A1;
sbitIcden=卩3八2;
sbitd1=P1A0;
sbitd2=P1A1;
ucharcodet0[]="
thetemperature"
ucharcodet1[]="
is"
//利用一个温度表解决温度显示
ucharcodewendu[]="
0123456789"
乱码
sbitDQ=P3A7;
//定义ds18B20总线IO
//液晶显示模块
voiddelay(uintz)
for(x=100;
1;
x--)for(y=z;
y--);
P2=com;
voidwrite_date(uchardate)
P2=date;
voidinit_lcd()
write_com(0x01);
write_com(0x0c);
write_com(0x06);
write_com(0x80);
16;
{write_date(t0[i]);
delay(0);
}write_com(0x80+0x40);
write_date(t1[i]);
//温度采集模块
voidtmpDelay(intnum)//延时函数
{while(num--);
}/****************************************************************
**************/
voidInit_DS18B20()〃初始化ds1820
unsignedcharx=0;
DQ=1;
〃DQ复位
tmpDelay(8);
//稍做延时
DQ=0;
//单片机将DQ拉低
tmpDelay(80);
//精确延时大于480us
//拉高总线
tmpDelay(14);
x=DQ;
//稍做
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 体温计 protues 仿真 程序