首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

刚刚学单片机第一次做项目(抢答器),有不解的地方

2012-09-09 
刚学单片机第一次做项目(抢答器),有不解的地方1.写了一个外部中断服务程序,但似乎按什么键都不会显示(本意

刚学单片机第一次做项目(抢答器),有不解的地方
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秒了呢

C/C++ code
uint t0cnt=0;void timer0(void) interrupt n{  t0cnt++;  if(t0cnt>=20)  {     t0cnt=0;     //到这里就是1秒了  }  T0H=...;  t0l=...;}
[解决办法]
探讨
1.写了一个外部中断服务程序,但似乎按什么键都不会显示(本意是按一下某键就会发出一个中断,但没反应),前面也开中断了,开发板上面到底哪些键按下去才算中断?
void someone_keys() interrupt 0
{
TR0=0;
while(1)
{
if(!K1)
{
P1=0xFE;
FM=0;
delays(100……

热点排行