1、温度的测量18b20#include #include /*引脚配置* sbit IO=P37; sbit RS=P26; sbit RW=P25; sbit E=P27; /*变量unsigned char t; unsigned char fh; unsigned char no=NO 18B20! ; unsigned char yes=wen du wei:; unsigned char i; unsigned char TL; unsigned char TH; void delay(char x) /*延时函数; int i,j; for(j=0;j0;i-); void writ
2、e_com(unsigned char com ) /*1602写指令函数 RS=0; RW=0; P0=com; delay(5); E=1; delay(5); E=0; void write_date(unsigned char date) /1602写数据函数; RS=1; RW=0; P0=date; delay(5); E=1; delay(5); E=0; void init1602(void) /1602初始化函数 write_com (0x38); delay(5); write_com (0x38); delay(5); write_com (0x38); delay(5)
3、; write_com (0x08); delay(5); write_com (0x01); delay(5); write_com (0x06); delay(5); write_com (0x0c); delay(5); void put_str(char i,char j,unsigned char dat) /1602显示器显示定位显示数字; if(i=1) write_com(0x80+j-1); else write_com(0xc0+j-1); write_date(0+dat) ; void put_str1(char i,char j,unsigned char dat)
4、/1602显示器显示定位显示字符; if(i=1) write_com(0x80+j-1); else write_com(0xc0+j-1); write_date(dat); void writep(unsigned char h) /*显示字符串 char i=0; while(hi) write_date(hi); delay(5); i+; void DelayMS(unsigned int T) /*微秒延时 for(;T0;T-); bit ini() /*18B20初始化函数 bit flag=0; IO=1; for(t=0;t=2;t+); IO=0; for(t=0;t=
5、200;t+); IO=1; for(t=0;t=10;t+); flag=IO; for(t=0;t=200;t+); return flag; unsigned char readonechar() /*读一个字节; unsigned char dat; for(i=0;i8;i+) IO=1; _nop_(); IO=0; _nop_(); IO=1; for(t=0;t=1; if(IO=1) dat|=0x80; else dat|=0x00; for(t=0;t8;t+); return dat; void writeonechar(unsigned char dat) /*18B
6、20写指令 for(i=0;i8;i+) IO=1; _nop_(); IO=0; IO=dat&0x01; for(t=0;t10;t+); IO=1; for(t=0;t=1; for(t=0;t7) fh=1; TL=TL; TH=TH; TL+=1; if(TL=0); TH+; TN=TH*256+TL; TN/=16.0; tn=(unsigned char)TN; TN-=tn; TN*=1000; td=(unsigned int)TN ; qian=tn/100; m=tn/10%10; bai=tn%10; shi=td/100; n=td/10%10; ge=td%10; if(fh=1) put_str1(2,1,-); else put_str(2,1,qian); put_str(2,2,m); put_str(2,3,bai); put_str1(2,4,.); put_str(2,5,shi); put_str(2,6,n); put_str(2,7,ge);
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2