刚学单片机第一次做项目(抢答器),有不解的地方
1.写了一个外部中断服务程序,但似乎按什么键都不会显示(本意是按一下某键就会发出一个中断,但没反应),前面也开中断了,开发板上面到底哪些键按下去才算中断?
void someone_keys() interrupt 0
{
TR0=0;
while(1)
{
if(!K1)
{
P1=0xFE;
FM=0;
delays(100);
FM=1;
}
if(!K2)
{
P1=0xFD;
FM=0;
delays(100);
FM=1;
}
if(!K3)
{
P1=0xFB;
FM=0;
delays(100);
FM=1;
}
if(!K4)
{
P1=0xF7;
FM=0;
delays(100);
FM=1;
}
}
}
2.用定时器定时一秒还不怎么会。我给初值定时50ms,但不知道怎么去循环20次,试几次都不行。只会自己写函数延时。
刚接触,希望大虾能调教一下!谢谢!
[解决办法]
先是确定INT0是下降沿中断还是低电平中断,如果只是想看中断这个先不管
一个外部中断要开EX0还是E什么的
一个是总中断要开
后面2个置位了的话你把INT0拉低应该会进入中断程序的
你会定时50MS怎么就不会定时1秒了呢
uint t0cnt=0;
void timer0(void) interrupt n
{
t0cnt++;
if(t0cnt>=20)
{
t0cnt=0;
//到这里就是1秒了
}
T0H=...;
t0l=...;
}