单片机源程序如下:
#include #include 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_DS18B0(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); }
上一篇:基于RS-485总线的单片机温控系统程序
下一篇:51单片机自动红外洗手器程序
推荐阅读最新更新时间:2024-11-11 18:09
设计资源 培训 开发板 精华推荐
- NCP160MXTBGEVB:250 mA、超低噪声和高 PSRR LDO 稳压器评估板
- 使用 Analog Devices 的 LTC1771ES8 的参考设计
- DVK-SFEU-1-GEVK:适用于 RCZ1 的 Sigfox™ AT 开发套件
- 使用 STMicroelectronics 的 UC3844B 的参考设计
- 嵌入式第一次作业
- LDK130PU08R 0.8V、300mA 低静态电流极低噪声 LDO 的典型应用可调版本电路
- 具有直接反馈的 LT1372CS8 正负转换器的典型应用
- 使用 Semtech 的 EZ1580 的参考设计
- 1.4、2.2W、2 通道、D 类便携式音频功率放大器
- LT4320HN8-1 理想二极管桥控制器的典型应用电路