void Timer0Init(void) //1微秒@11.0592MHz
{
TMOD &= 0xF0; //定时器1保持原状态不变
TMOD |= 0x02; //定时器0设置为模式2
TH0=0xF7; //初值为256-9
TL0=0xF7; //重装值
EA=1; //开总中断
ET0=1; //开t1中断
// TR0=1; // 开始计时
void tm0_isr() interrupt 1 using 1//定时器0中断服务函数,使用工作寄存器区1
{
}
///////////////////////////////////////////////////////////////
//External interrupt0 service routine
void exint0() interrupt 0 //(location at 0003H) //外部中断0服务函数
{
Alarm_Off = 1; //报警控制信号置1
}
////////////////////////////////////////////////////////////////
void delay200ms(void) //延时200毫秒
{
unsigned char a,b,c;
for(c=55;c>0;c--)
for(b=100;b>0;b--)
for(a=3;a>0;a--);
}
void delay500ms(void) //延时500毫秒
{
unsigned char a,b,c;
for(c=67;c>0;c--)
for(b=141;b>0;b--)
for(a=18;a>0;a--);
_nop_();
}
void delay1s(void) //延时1秒
{
unsigned char a,b,c;
for(c=95;c>0;c--)
for(b=26;b>0;b--)
for(a=185;a>0;a--);
}
//----------- INIT UART ----------------------------------------
void UartInit()//串口初始化函数
{
SCON = 0x50; //8-bit variable UART
TMOD = 0x20; //Set Timer1 as 8-bit auto reload mode
TH1 = TL1 = -(FOSC/12/32/BAUD); //Set auto-reload vaule
TR1 = 1; //Timer1 start run
EA = 1; //Open master interrupt switch
}
//------- Send a byte data to UART ----------------------------
void SendData(unsigned char dat)//发送一个字节
{
SBUF = dat; //Send data to UART buffer
while(!TI);
TI=0;
}
//------- Send a string to UART -------------------------------
void SendString(char *s)//发送字符串
{
while (*s) //Check the end of the string
{
SendData(*s++); //Send current char and increment string ptr
}
} 收起 sunqi8838306 5
关键的语句,都已经有注释了。