欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 6388|回復(fù): 4
收起左側(cè)

幫忙看看這個(gè)中斷程序有沒有問(wèn)題?

[復(fù)制鏈接]
ID:28560 發(fā)表于 2011-3-15 19:18 | 顯示全部樓層 |閱讀模式
//用軟件仿真可以,燒在51hei板上只有剛按第一次有反應(yīng),后面再按就不取反了 ,
#include <reg51.h>
#include <absacc.h>
#define unit unsigned int
#define uchar unsigned char

sbit L0=P0^0;
sbit L1=P0^1;
sbit L2=P0^2;
sbit L3=P0^3;

void delays(void)
{
uchar i;
for(i=300;i>0;i--);
}


void main(void)
{
P1=0x00;        // 初始化端口
EA=1; IT0=1; EX0=1;      // 初始化外中斷標(biāo)志位
while(1)
{ 
         delays();        // 鍵的消抖延時(shí)函數(shù)
}
}


/* 外中斷0的中斷服務(wù)子程序 */
void intersvr0(void)  interrupt 0 using 1
{
L3=!L3;       // 燈L3狀態(tài)取反
L2=!L2;       // 燈L2狀態(tài)取反
L1=!L1;       // 燈L1狀態(tài)取反
L0=!L0;       // 燈L0狀態(tài)取反
} 
回復(fù)

使用道具 舉報(bào)

ID:28560 發(fā)表于 2011-3-15 22:04 | 顯示全部樓層

 ,自己頂一下

回復(fù)

使用道具 舉報(bào)

ID:1 發(fā)表于 2011-3-16 03:16 | 顯示全部樓層

我在開發(fā)板上試驗(yàn)了了一下你這個(gè)程序,存在的問(wèn)題是你沒有做按鍵的消抖處理,所以導(dǎo)致整個(gè)程序很不穩(wěn)定,按下了中斷按鍵燈有點(diǎn)亂來(lái).

回復(fù)

使用道具 舉報(bào)

ID:1 發(fā)表于 2011-3-16 16:05 | 顯示全部樓層

給你一個(gè)解決辦法: 

 當(dāng)用外部中斷的方法實(shí)現(xiàn)按鍵的檢測(cè)時(shí),由于存在按鍵抖動(dòng),這樣我們?cè)诎聪掳存I時(shí),會(huì)出現(xiàn)多次進(jìn)入中斷的現(xiàn)象,最好的解決辦法是在程序中我們進(jìn)行相應(yīng)的處理:

 
void int_key() interrupt 0//外部中斷1服務(wù)程序

{
  EX0=0;//關(guān)外部中斷1
  delay_ms(100);
  if(s1==0) //s1是外部中斷對(duì)應(yīng)的IO口
  {
   s1_num++; //這里是用戶自己編寫的程序
   s1_num%=4;//這里是用戶自己編寫的程序
   di();//這里是用戶自己編寫的程序
  }

while(!s1);

EX0=1;//開外部中斷

}

delay_ms(100),if(s1==0)是必需要有的,延時(shí)是為了消抖,if(s1==0)是為了看看延時(shí)后是否還為低電平,如果還為低電平那確實(shí)是按下按鍵了,并且這樣可以有效地做到一次按鍵只進(jìn)入一次中斷,當(dāng)然delay_ms(100)這個(gè)延時(shí)時(shí)間不能太長(zhǎng),否則正常的按鍵也會(huì)在延時(shí)后,因?yàn)闀r(shí)間太長(zhǎng)手已經(jīng)松開變?yōu)楦唠娖剑袛噱e(cuò)誤。這個(gè)中斷是下降沿觸發(fā)。

回復(fù)

使用道具 舉報(bào)

ID:29055 發(fā)表于 2011-5-24 02:43 | 顯示全部樓層
謝謝 版主這么詳細(xì)的解釋,我先收藏了.
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表