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

📄 practise.c

📁 单片机单片机单单片机单片机单片机单片机单片机单片机单片机单片机单片机单片机单片机单片机单片机单片机单片机单片机单片机单片机片机单片机单片机单片机
💻 C
字号:
#include<reg52.h>
#include<intrins.h>

#define uchar unsigned char
#define uint unsigned int

sbit feng=P2^3;
sbit dq=P2^2;
sbit led=P1^0;
sbit dula=P2^6;
sbit wela=P2^7;

uchar L_temper;
uchar H_temper;

uint C_temper;

uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71	
};

uchar code table2[]={
0xfe,0xfd,0xfb,0xf7,0xef,0xdf
};

/******************延时***************************/

void delay_us()
{
	_nop_();
}

void delay_ms(uint z)
{
	uint ii,jj;
	for(ii=z;ii>0;ii--)
		for(jj=110;jj>0;jj--);
}

/****************复位与存在***********************/

void reset()
{	
	dq=1;
	
	dq=0;
	delay_us(600);
	dq=1;
	delay_us(30);
}

void exist()
{
	uchar ii=20;
	while(dq==0||ii<0) ii--;
	delay_us(500);
	dq=1;	
}

/*************************************************/
bit read_bit()
{
	bit bb;
	
	dq=0;
	delay_us(2);
	dq=1;
	delay_us(5);
	bb=dq;
	delay_us(60);	
	
	return bb;
}

/*************************************************/

//读字节
uchar read_byte()
{
	uchar byte=0x00;
	uchar ii=0,jj;
	bit temp;
	//uchar tt=0x01;
	
	while(ii < 8)
	{	
		delay_us(2);
		temp=read_bit();
		byte=(byte>>1)|(temp<<7);
		++ii;	
		/*
		delay_us(2);
		temp=read_bit();
		byte=byte+temp&tt;
		tt<<1;
		*/		
	}
	
	return(byte);
}

//写入字节
void write_byte(uchar xx)
{
	bit bb;
	uchar test=0x01;//*********************************这里可能有问题?
	uchar date=xx;
	uchar ii=0;
	
	while(ii < 8)
	{
		bb=test&date;
		if(bb)
		{
			dq=0;
			delay_us(5);
			dq=1;
			delay_us(15);
		}
		else
		{
			dq=0;
			delay_us(100);
			dq=1;
			delay_us(2);
		}
		++ii;		
	}
			
}

/**********************温度************************/

void convert_temper()
{
	reset();
	exist();
	write_byte(0xCC);
	write_byte(0x44);
}

void read_temper()
{
	uchar LSB_temper=0x00;
	uchar MSB_temper=0x00;

	reset();
	exist();
	write_byte(0xCC);
	write_byte(0xBE);		
	LSB_temper=read_byte();
	MSB_temper=read_byte();
	
	C_temper=MSB_temper;
	C_temper=(C_temper<<8)|LSB_temper;
	C_temper=C_temper*0.0625*10+0.5;
	
	return C_temper;			
}

/******************响应******************************/

void display_temper()
{
	uchar aa,bb,cc;
	
	aa=C_temper/100;
	bb=C_temper%10/10;
	cc=C_temper/10;
	
	wela=1;
	P0=table2[0];
	wela=0;
	delay_ms(2);
	
	dula=1;
	P0=table[cc];
	dula=0;
	delay_ms(2);
	
	wela=1;
	P0=table2[1];
	wela=0;
	delay_ms(2);
	
	dula=1;
	P0=table[bb+0x80];
	dula=0;
	delay_ms(2);

	wela=1;
	P0=table2[2];
	wela=0;
	delay_ms(2);
	
	dula=1;
	P0=table[aa];
	dula=0;
	delay_ms(2);

}

void init1()
{
	
}





void main()
{
	feng=1;	
}

⌨️ 快捷键说明

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