📄 softreset.c
字号:
/************************************************************/
/********* 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -