51hei.png (26.91 KB, 下載次數: 35)
下載附件
2021-12-18 02:57 上傳
單片機源程序如下:
- #include "reg51.h"
- #include "intrins.h"
- #define uchar unsigned char
- #define uint unsigned int
- #define out P0
- sbit smg1=out^4;
- sbit smg2=out^5;
- sbit DQ=P3^7;
- void delay5(uchar n);
- void init_ds18b20(void);
- uchar readbyte(void);
- void writebyte(uchar dat);
- uchar retemp(void);
- void main()
- {
- uchar i,temp;
- while(1)
- {
- P0=0xff;
- temp=retemp();
- for(i=0;i<5;i++)
- {
- out=(temp/10)&0x0f;
- smg1=0;
- smg2=1;
- delay5(100);
- out=(temp%10)&0x0f;
- smg1=1;
- smg2=0;
- delay5(100);
- }
- }
- }
- void delay5(uchar i)
- {
- while(i--);
- }
- void init_ds18b20(void)
- {
- uchar x=0;
- DQ=0;
- delay5(120);
- DQ=1;
- delay5(16);
- delay5(80);
- }
- uchar readbyte(void)
- {
- uchar i=0;
- uchar date=0;
- for(i=8;i>0;i--)
- {
- DQ=0;
- delay5(1);
- DQ=1;
- date>>=1;
- if(DQ)
- date|=0x80;
- delay5(11);
- }
- return(date);
- }
- void writebyte(uchar dat)
- {
- uchar i=0;
- for(i=8;i>0;i--)
- {
- DQ=0;
- DQ=dat&0x01;
- delay5(12);
- DQ=1;
- dat>>=1;
- delay5(5); }
- }
- uchar retemp(void)
- {
- uchar a,b,tt;
- uint t;
- init_ds18b20();
- writebyte(0xcc);
- writebyte(0x44);
- init_ds18b20();
- writebyte(0xcc);
- writebyte(0xbe);
- a=readbyte();
- b=readbyte();
- t=b;
- t<<=8;
- t=t|a;
- tt=t*0.0625;
- return(tt);
- }
復制代碼
所有資料51hei附件下載:
溫度監測.rar
(76.43 KB, 下載次數: 4)
2021-12-16 12:04 上傳
點擊文件名下載附件
|