为什么
LCD_ShowNum(2,1,Hour,2);
LCD_ShowNum(2,4,Minute,2);
LCD_ShowNum(2,7,Second,2);
这三个函数放在中断里面不可以运行,需要放在while(1)里面,有大佬知道吗
#include <REGX52.H>
#include "Timer0.h"
#include <INTRINS.H>
#include "LCD1602.h"
unsigned int Hour = 23;
unsigned int Minute = 59;
unsigned int Second = 56;
void main(void)
{
unsigned char Num = 0;
LCD_Init();
Timer0_Init();
LCD_ShowString(1,1,"Time");
LCD_ShowString(2,3,":");
LCD_ShowString(2,6,":");
while(1)
{
// LCD_ShowNum(2,1,Hour,2);
// LCD_ShowNum(2,4,Minute,2);
// LCD_ShowNum(2,7,Second,2);
}
}
void Timer0_Routine() interrupt 1
{
static unsigned int T0Count1;
TL0 = 0x17; //设置定时初值
TH0 = 0xFC; //设置定时初值
T0Count1++;
if(T0Count1>=1000) //以1ms为基数,设置1s定时
{
T0Count1=0;
Second++;
if(Second > 59)
{
Second = 0;
Minute++;
if(Minute > 59)
{
Minute = 0;
Hour++;
if(Hour > 23)
{
Hour = 0;
}
}
}
}
LCD_ShowNum(2,1,Hour,2);
LCD_ShowNum(2,4,Minute,2);
LCD_ShowNum(2,7,Second,2);
}