分类导航
extern void serial_set(void); extern uchar * read_rom(void); extern bit match_rom(uchar *rom); #endif
4.4.3主函数程序:
#include \#include \#include #include #include #include unsigned char temp[5];
extern char xiaoshu_temp[5],zhen_temp[4]; extern bit flag; extern bit dot_dis;
uchar ds18b20_num1[8]={0xfd,0x00,0x00,0x00,0xb8,0xc5,0x45,0x28}; uchar ds18b20_num2[8]={0x8e,0x00,0x00,0x00,0xb8,0xc5,0x30,0x28}; uchar ds18b20_num3[8]={0xb9,0x00,0x00,0x00,0xb8,0xc5,0x31,0x28}; uchar ds18b20_num4[8]={0xe0,0x00,0x00,0x00,0xb8,0xc5,0x32,0x28}; #define uchar unsigned char #define uint unsigned int void serial_set(void);
void process(unsigned char,unsigned char); char volatile xiaoshu_temp[5],zhen_temp[4]; bit flag; bit dot_dis=1; sbit DQ=P1^0; //sbit DQ=P2^3;
extern unsigned char temp[5];
void delay(unsigned int time) {
unsigned int i,j;
6
//
}
for(i=0;ifor(j=0;j<200;j++); void main(void) { uchar i; uchar *ds18b20_rom; char *str2=\char *str3=\char *str4=\serial_set(); char *str1=\ Lcd_Init(); ClrScreen(); GotoXY(0,0); dot_dis=1; /*ds18b20_rom=read_rom(); for(i=0;i<8;i++) { } GotoXY(0,1); for(i=0;i<8;i++) { } while(1);*/ print_char(ds18b20_num2[i]/16); print_char(ds18b20_num2[i]); //显示序列号 ds18b20_num2[i]=*ds18b20_rom; ds18b20_rom++; //读序列号 while(1) { ds18b20_init(); ds18b20_writecommand(0xcc); ds18b20_writecommand(0x44); //转换 7 delay(500); match_rom(ds18b20_num1); //匹配第一路 ds18b20_writecommand(0xbe); //读 for(i=0;i<2;i++) { } temperature_process(temp[0],temp[1]); Screen_home(); Print(str1); if(!flag) //正 { } else //负 { Print(\Print(zhen_temp); if(dot_dis) Print(\Print(xiaoshu_temp); Print(zhen_temp); if(dot_dis) Print(\Print(xiaoshu_temp); temp[i]=ds18b20_readdata(); } Print(\ds18b20_init(); ds18b20_writecommand(0xcc); ds18b20_writecommand(0x44); //转换 delay(500); match_rom(ds18b20_num2); //匹配第二路 ds18b20_writecommand(0xbe); //读 { for(i=0;i<2;i++) 8 } temp[i]=ds18b20_readdata(); temperature_process(temp[0],temp[1]); GotoXY(9,0); Print(str2); { } else //负 { Print(\Print(zhen_temp); if(dot_dis) Print(\Print(xiaoshu_temp); Print(zhen_temp); if(dot_dis) Print(\Print(xiaoshu_temp); if(!flag) //正 } Print(\ds18b20_init(); ds18b20_writecommand(0xcc); ds18b20_writecommand(0x44); //转换 delay(500); match_rom(ds18b20_num3); //匹配第三路 ds18b20_writecommand(0xbe); //读 { temp[i]=ds18b20_readdata(); } temperature_process(temp[0],temp[1]); GotoXY(0,1); Print(str3); for(i=0;i<2;i++) 9 if(!flag) //正 { } else //负 { Print(\Print(zhen_temp); if(dot_dis) Print(\Print(xiaoshu_temp); Print(zhen_temp); if(dot_dis) Print(\Print(xiaoshu_temp); } Print(\ds18b20_init(); ds18b20_writecommand(0xcc); ds18b20_writecommand(0x44); //转换 delay(500); match_rom(ds18b20_num4); //匹配第四路 ds18b20_writecommand(0xbe); //读 for(i=0;i<2;i++) { temp[i]=ds18b20_readdata(); } temperature_process(temp[0],temp[1]); GotoXY(9,1); Print(str4); { Print(zhen_temp); if(dot_dis) Print(\ if(!flag) //正 10 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库多点式单总线数字温度监测系统(完整程序)(6)在线全文阅读。
for(j=0;j<200;j++);
void main(void) {
uchar i;
uchar *ds18b20_rom; char *str2=\char *str3=\char *str4=\serial_set(); char *str1=\
Lcd_Init(); ClrScreen();
GotoXY(0,0); dot_dis=1;
/*ds18b20_rom=read_rom(); for(i=0;i<8;i++) { }
GotoXY(0,1); for(i=0;i<8;i++) { }
while(1);*/
print_char(ds18b20_num2[i]/16); print_char(ds18b20_num2[i]);
//显示序列号
ds18b20_num2[i]=*ds18b20_rom; ds18b20_rom++;
//读序列号
while(1) {
ds18b20_init();
ds18b20_writecommand(0xcc);
ds18b20_writecommand(0x44); //转换
7
delay(500);
match_rom(ds18b20_num1); //匹配第一路 ds18b20_writecommand(0xbe); //读 for(i=0;i<2;i++) { }
temperature_process(temp[0],temp[1]); Screen_home(); Print(str1); if(!flag) //正 { }
else //负 {
Print(\Print(zhen_temp); if(dot_dis) Print(\
Print(xiaoshu_temp);
Print(zhen_temp); if(dot_dis) Print(\
temp[i]=ds18b20_readdata();
Print(\ds18b20_init();
ds18b20_writecommand(0x44); //转换 delay(500);
match_rom(ds18b20_num2); //匹配第二路 ds18b20_writecommand(0xbe); //读 {
for(i=0;i<2;i++)
8
temperature_process(temp[0],temp[1]); GotoXY(9,0); Print(str2); { }
if(!flag) //正
match_rom(ds18b20_num3); //匹配第三路 ds18b20_writecommand(0xbe); //读 {
temp[i]=ds18b20_readdata(); }
temperature_process(temp[0],temp[1]); GotoXY(0,1); Print(str3);
9
{ }
match_rom(ds18b20_num4); //匹配第四路 ds18b20_writecommand(0xbe); //读 for(i=0;i<2;i++) {
temperature_process(temp[0],temp[1]); GotoXY(9,1); Print(str4); {
10
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库多点式单总线数字温度监测系统(完整程序)(6)在线全文阅读。
相关推荐: