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

📄 89c51.c

📁 此单片机程序设计51单片机控制的延时开关
💻 C
字号:
#include	<REG51.h>
#include	<stdio.h>


 
void main(void)
{

idata char ch,flag,loop_j;
idata unsigned int time,loop_i ;
	  
////////////////
// 寄存器设置 //
////////////////
SCON  = 0x50;		        // SCON: mode 1, 8-bit UART, enable receive   
TMOD  = 0x21;               // TMOD: timer 1, mode 2, 8-bit reload
							//       timer 0, mode 1, 16-bit timer      
TH1   = 0x0FD;              // TH1:  reload value for 9600 baud 
TR1   = 1;                  // TR1:  timer 1 run                          
TI	  = 1;

//////////////////////
// 提示輸入倒計時間 //
//////////////////////
printf("Please input countdown time(0~999): ");
while(!RI)
{
}
RI = 0;
ch = SBUF;					//倒计时秒数0~999,接受3个字符来设定
time = (ch-0x30)*100;
while(!RI)
{
}
RI = 0;
ch = SBUF;
time += (ch-0x30)*10;
while(!RI)
{
}
RI = 0;
ch = SBUF;
time += (ch-0x30);

//////////////////////
// 提示選擇控制方式 //
//////////////////////
printf("When countdown time is over, is the relay ON or OFF?(Y:ON; N:OFF): ");
while(!RI)
{
}
RI = 0;
ch = SBUF;
if(ch=='Y')
{
	flag = 1;
	T1 = 1;					// P3.5置高,放開繼電器
}
else
{
	flag = 0;
	T1 = 0;					// P3.5置低,吸合繼電器
}


TL0=0x1E;						//设置timer 0以0.05s溢出,则初值 m=2^16-(0.5X11059200)/12=19486=0x4C00
TH0=0x4C;
TF0 = 0;
TR0 = 1;						//timer 0 run

//////////////////////
// 每1s更新一次時間 //
//////////////////////
for(loop_i = time-1; loop_i > 0 ; loop_i--)
{
	for(loop_j = 20; loop_j > 0 ; loop_j--)
	{
		while(!TF0)		// wait for timer 0 overflow
		{
		}
		TL0 = 0x1E;
		TH0 = 0x4C;	
		TF0 = 0;
	}
	printf("%d",loop_i);
}

TR0 = 0;						//timer o stop

////////////////
// 控制繼電器 //
////////////////
if(flag)
	T1 = 0;
else
	T1 = 1;

	
TL0=0x1E;								
TH0=0x4C;
TF0 = 0;
TR0 = 1;


WR=0;		//Beep on

//////////////
// BEEP鳴2s //
//////////////
for(loop_j = 40; loop_j > 0 ; loop_j--)				
{
	while(!T0)		// wait for timer 0 overflow
	{
	}
	TL0 = 0x1E;
	TH0 = 0x4C;	
	TF0 = 0;
}

WR=0;	//Beep off

while(1)
{
}
}

⌨️ 快捷键说明

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