softreset.c

来自「这是本人写的一个C51单片机的软件重启的工程示例」· C语言 代码 · 共 58 行

C
58
字号
/************************************************************/
/*********         SoftReset test C51           *************/
/**********  Written by WangBiao---20060414  ****************/
/************************************************************/
#include <AT89X51.H>
#include "lcd1602.h"

sbit LED=P3^4;

bit Int_flag;

extern void reset(void);//---must declare!!!!!!
//*********************************************//
//       delay nearly n*0.05s ;;n=20->1s      //
//********************************************//
void delay(unsigned int n)
{	unsigned int i;
	for(;n>0;n--)
	{	for(i=0;i<10000;) i++;  }
}
//-----------test LED-----------------------
void blink(unsigned char t,unsigned char n)
{	unsigned char i;
	for(i=0;i<n;i++)
	{	LED=0;delay(t);LED=1;delay(t);	}
}
//----------------------------------------------
void Int_fun(void)
{	Int_flag=0;
	dispstr(0,0,"Now interrupt");
	blink(5,3);
	reset();//---here softreset
}
//----------------------------------------------
void main(void)
{	IT0=0;//level triger!!!
	EA=1;
	EX0=1;
	Init_Lcd();
	dispstr(0,0,"Hello,welcome!!");
	blink(1,5);
	for(;;)
	{	dispstr(0,1,"the SoftReset!!");
		if(Int_flag) Int_fun();
	}
}
//--------------------------------------
void press(void) interrupt 0 using 1
{	unsigned char i;
	EA=0;
	Int_flag=1;//---here set INT flag
	for(i=0;i<3;i++)
	{	LED=0;delay(3);LED=1;delay(3);	}
	//---here must be one singal function!
	EA=1;
}
//--------------------------------------

⌨️ 快捷键说明

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