|
- #include<reg52.h>
- #include<intrins.h>
- #include<wendu.h>
- uchar temget()
- {
- uchar low,high;
- int temp;
- float temperature;
- dsinit();
- write(0xcc);
- write(0x44);
- Delay_us(100);
- dsinit();
- write(0xcc);
- write(0xbe);
- Delay_us(100);
- low=read();
- high=read();
- temp=((high<<8)|low);
- temperature=temp*0.0625;//分辨率是0.0625
- // temp=high<<4;
- // temp|=(low>>4); //顯示整數
- return temperature;
- }
- uchar read()
- {
- uchar i;
- uchar dat;
- for(i=0;i<8;i++)
- {
- DQ=0;
- _nop_();_nop_();_nop_();_nop_();_nop_();
- dat>>=1;
- DQ=1;
- if(DQ==1)
- {
- dat|=0x80;
- }
- Delay_us(100);
- }
- return dat;
- }
- void write(uchar dat)
- {
- uchar i;
- for(i=0;i<8;i++)
- {
- DQ=0;
- DQ=dat&0x01;
- Delay_us(70);
- DQ=1;
- dat>>=1;
- }
- }
- void dsinit()
- {
- DQ=0;
- Delay_us(80);
- DQ=1;
- Delay_us(80);
- }
- void Delay_us(uchar us)
- {
- while(us--);
- }
復制代碼
|
-
捕獲.PNG
(18.31 KB, 下載次數: 28)
下載附件
2018-12-20 14:40 上傳
-
-
51黑論壇_temp.rar
2018-12-20 14:38 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
50.54 KB, 下載次數: 41, 下載積分: 黑幣 -5
|