⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 温度测试.c

📁 通过C语言实现的基于51单片机的几个典型例子
💻 C
字号:
#include<reg51.h>
typedef unsigned char uchar;
sbit TMDAT=P3^6;
void dmsec(unsigned int count)
{
  unsigned int i;
  while(count--)
  {
    for(i=0;i<125;i++){}
  }
 }
 void tmreset(void)
 {
   unsigned int i;
   TMDAT=0;
   i=103;
   while(i>0)i--;
   TMDAT=1;
   i=4;
   while(i>0)i--;
 }
 void tmpre(void)
 {
   unsigned int i;
   while(TMDAT);
   while(~TMDAT);
   i=4;
   while(i>0)i--;
 }
 bit tmrbit(void)
 {
  unsigned int i;
  bit dat;
  TMDAT=0;
  i++;
  TMDAT=1;
  i++;
  i++;
  dat=TMDAT;
  i=8;
  while(i>0)i--;
  return(dat);
 }
 unsigned char tmrbyte(void)
 {
  unsigned char i,j,dat;
  dat=0;
  for(i=0;i<=8;i++)
  { 
    j=tmrbit();
	dat=(j<<7)|(dat>>1);
  }
 return(dat);
 }
void tmwbyte(unsigned char dat)
{
  unsigned int i;
  unsigned char j;
  bit testb;
  for(j=1;j<=8;j++)
  { 
    testb=dat&0x01;
	dat=dat>>1;
	if(testb){
	TMDAT=0;
	i++;i++;
	TMDAT=1;
	i=8;while(i>0)i--;
	}
	else{
	TMDAT=0;
	i=8;while(i>0)i--;
	TMDAT=1;
	i++;i++;
	}
   }
  }
  void tmstart(void)
  {
   tmrest();
   tmpre();
   dmsec(1);
   tmwbyte(0xcc);
   tmwbyte(0x44);
  }
  unsigned char tmrtemp(void)
  {
   unsigned char a,b,y1,y2,y3;
   tmrest();
   tmpre();
   dmsec(1);
   tmwbyte(0xcc);
   tmwbyte(0xbe);
   a=tmrbyte();
   b=tmrbyte();
   y1=a>>4;
   y2=b<<4;
   y3=y1|y2;
   return(y3);
  }
  void main(void)
  {
   unsigned int i;
   unsigned char last;
   uchar lsb,msb;
   dmsec(1);
   tmstart();
   dmsec(1000);
   last=tmrtemp();
   msb=last/0x0a+0x30;
   lsb=last%0x0a+0x30;
   while(1){}
  }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -