#include <REGX52.H>
#include "T.h"
#include "Delay.h"
#include "LCD1602.h"
unsigned char jishu=0;
//unsigned char KeyNum;
void main()
{
LCD_Init();
T_Init();
while(1)
{
LCD_ShowNum(2,7,jishu,2);
}
}
void mm() interrupt 1
{
jishu++;
if(P3_4==0)
{jishu++;}
}
void m() interrupt 3
{
jishu--;
if(jishu<0)
{jishu=99;}
}
中断模块
#include <REGX52.H>
/**
- @brief 定时器0初始化
- @param参数 无
- @retval返回值 无
- /
void T_Init(void)
{
TMOD= 0x66; //设置定时器模式
TL0=TH0=256-1; //设置定时初值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
ET0=1;
TL1=TH1=256-1; //设置定时初值
TF1 = 0; //清除TF1标志
TR1 = 1; //定时器1开始计时
ET1=1;
EA=1;
}
!问题!
再主函数方面,我用lcd1602显示0-99
用中断函数计数器通过按键一二控制加减
但是我设置的是小于0时变成99
但是实际操作是55,如果程序改成if(jishu==-1)则程序正常
问题很小,求解答