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

📄 temp.c

📁 基于51系列单片机的介绍IIC的原理与应用的软件设计
💻 C
字号:
#include<reg52.h>
/*************************************************
	引用外部函数
**************************************************/
extern WRBYTES(unsigned masteraddr,unsigned char Ramaddr,char buf[],unsigned char num,bit wr);

sbit LED_DIG = P1^3;
sbit LED_COM = P1^2;
unsigned char counter = 0;
unsigned int Temp;
unsigned char Disbuf[] = {0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a,0x0a};	//显示初始化,全部消隐
unsigned char code DisCode[] = {0x0C0,0xF9,0xA4,0xB0,0x99,0x92,
								0x82,0xF8,0x80,0x90,0xFF};
								//共阳极数码管码表,定位在ROM中
/********************************
	显示延时
*********************************/
void Delay(void)
{
	unsigned char i = 200;
	while(i--);
}
/********************************
	带参数传递的显示程序
*********************************/
void Display(unsigned char Dat[8])
{
	static unsigned char i = 0;
	unsigned LED_Posit = 0x01;
	for(i = 0;i<8;i++)
	{
		if(i==1)
			P0 = DisCode[Dat[i]]&0x7f;	//送段选
		else
			P0 = DisCode[Dat[i]];	//送段选
		LED_DIG = 1;
		LED_DIG = 0;
		P0 = LED_Posit;				//选通一个数码管
		LED_COM = 1;
		LED_COM = 0;
		Delay();
		P0 = 0;				//消隐
		LED_COM = 1;
		LED_COM = 0;
		LED_Posit<<=1;
	}
}

/******************************
	读温度植
********************************/
void GetTemp()
{
		WRBYTES(0x90,0x00,Disbuf,2,1);
		Temp = Disbuf[0];
		Temp<<=8;
		Temp+=Disbuf[1];
		Temp>>=7;
		Temp*=10;
		Temp /= 2;
		Disbuf[2] = Temp/100;
		Disbuf[1] = (Temp%100)/10;
		Disbuf[0] = Temp%10;

}
/*************************************
	主函数
**************************************/
main()
{unsigned char i;
	/*TMOD = 0x01;
	TR0 = 1;
	ET0=EA=1;*/
	while(1)
	{
		for(i=0;i<250;i++)
		Display(Disbuf);   //必须等待一段时间再读,否则会打断转换
		
		GetTemp();
	}
}

⌨️ 快捷键说明

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