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

📄 display.c

📁 用KEILC 编的充电器程序。自动调节充电电压。需要电路资料与我联系
💻 C
字号:
#include <hardware.c>
#define NOP() {_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();}

void int3()interrupt 3 using 2
{

TR1=0;
TH1=0XF1;//0x4c;
TL1=0x99;//08;
TR1=1;
jishi4ms++;
if (key_bit==1) key_time++;
else key_time=0;
write_flash=1;		
if (jishi4ms>=250)	 //计时时间更新,最终以分钟为单位循环计时//
	{
	jishi4ms=0;
	jishi_sec++;
	jd_bit=1;
		if (jishi_sec>=60)
			{
			jishi_sec=0;
			jishi_min++;
			}
	}
if ((jishi4ms%50)==0) {flash=!flash;chgc_bit=1;}
}



void delay(uchar us)
{
while (--us);

}

void htod_change()	//十六进制转十进制并查表存入显示缓冲区//
{
uchar a;
uint b;
		
		//disbuffer[3]=dismap1[a];
		b=dis_hex_buffer%1000;
		a=b/100;		
		disbuffer[2]=dismap1[a];
		b=b%100;
		a=b/10;					
		disbuffer[1]=dismap1[a];  
		a=b%10;						
		disbuffer[0]=dismap1[a];
}


void key_dis()
{
if(write_flash==1)
	{
	dig1=dig2=dig3=dig0=1;
	seg=0xff;
	key_h=0;
	NOP();
	if (seg==0xff)
		{
		keyword=0xff;
		key_h=1;
		NOP();
		}
	else
		{
		NOP();
		if (key_time>100)
			{
			key_bit=0;
			keyword=seg;
			}
		else	key_bit=1; 
		NOP();
		key_h=1;
		}
		
	discount++;
	
	if (discount>3)
		{
		discount=0;
		}
	switch (discount)
		{
			case 0:
			{
			if (flash_0&&flash) 	seg=0;
			else 	seg=disbuffer[discount];
			dig0=0;
			break;
			}
			case 1:
			{
			if (flash_1&&flash) 	seg=0;
			else 	seg=disbuffer[discount]+8;
			dig1=0;
			break;
			}
			case 2:
			{
			if (flash_2&&flash) 	seg=0;
			else 	seg=disbuffer[discount];
			dig2=0;
			break;
			}
			case 3:
			{
			if (flash_3&&flash) 	seg=0;
			else 	
				{
				if (inmode>=0x10) seg=disbuffer[discount]+8;	//充电时加上小数点。
				else  seg=disbuffer[discount];
				}
			dig3=0;
			break;
			}
		}
	write_flash=0;
	}
}
void InitMCU()
{
uchar y,z;
y=0x55;
z=0x79;
ET1=1;
EA=1;
TMOD=0x10;
TH1=0xf6;
TL1=0x7a;
delay(250);
delay(250);
delay(250);
delay(250);

}

⌨️ 快捷键说明

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