我开了两个中断 一个触摸中断用的外部中断1一个定时器中断 用来计算频率的 我们需要把八组频率不断的扫描出来显示 现在的问题是 如果我们在频率扫描到第四组的时候 触摸一下 进入触摸外部中断 触摸反映正常 但是后面的四组频率就显示不出来了
第四组只是打个比方 就是进入触摸中断以后 频率的显示就出问题了
void main()
{
dkchushihua();
LCD_Ini
tial();
LCD_ClearScreen();
LCD_CmdDatWrite(0x0f,0x10);
LCD_CmdDatWrite(0xc0,0x80);
LCD_CmdDatWrite(0xc4,0x00);//开启触摸功能 自动模式
ShowPicture();
dispword();
dispjianpan();
TMOD=0X15;//设置T1为16位定时器,设置T0为16位计数器
TH0=0X00;
TL0=0X00;
TH1=(65535-36697)/256;
TL1=(65535-36697)%256;
EA =1;
ET1=1;//开T1中断
EX1=1;//开外部中断1
IT1=1;//低电平触发
IPH=0x08;
IP =0x08;//设置定时器中断1为最高优先级中断,设置外部中断1为最低优先级中断
TR0=1;
TR1=1;
while(1)
{
disphzzhi();//不断更新新的频率值
}
}
void T1_time() interrupt 3
{
unsigned int lshzzhi;
num++;
if(num>=25)
{
TR0=0;
TR1=0;
lshzzhi=TH0;lshzzhi<<=8;lshzzhi|=TL0;
TH0=0x00;
TL0=0x00;
lshzzhi=lshzzhi<<1;
hzzhi[chose]=lshzzhi;
P2&=0xf8;
P2|=CHA[chose];
chose++;
if(chose>7)chose=0;
num=0;
}
TH1=(65535-36697)/256;
TL1=(65535-36697)%256;
TR0=1;
TR1=1;//同步
}
void INT_chukong() interrupt 2
{
//LCD_CmdDatWrite(0x0f,0x10);
LCD_Touch();
}
一周热门 更多>