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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

請教一個問題:51單片機用外部中斷通過矩陣按鍵控制led的亮滅

查看數: 5382 | 評論數: 9 | 收藏 1
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2020-6-25 23:03

正文摘要:

請教一個問題:51單片機用外部中斷通過矩陣按鍵控制led的亮滅。想要達到目的:每一次按鍵被觸發,LED的狀態翻轉一次。 單片機電路圖如下: 我自己寫的程序如下:下載后單片機的效果是按下按鍵led小燈點亮,一直 ...

回復

ID:332444 發表于 2023-3-9 21:10
15818463972 發表于 2020-6-26 12:34
感謝你了,我一直困在循環這里搞不明白,自己摸索了兩天都搞不明白,現在懂了,看了代碼后恍然大悟

不過不管如何都不建議在中斷里面使用循環,為了說明問題,勉強修改,中斷里面可以使用變量累加判斷。
ID:1064915 發表于 2023-3-9 17:30
for(i=0;i<1000;i++);
延時時間怎么計算?
ID:789846 發表于 2020-6-26 12:36
void int0_process() interrupt 0
{        
        unsigned int i;
        for(i=0;i<1000;i++);
        LED = ~LED;
                     
}
ID:789846 發表于 2020-6-26 12:34

感謝你了,我一直困在循環這里搞不明白,自己摸索了兩天都搞不明白,現在懂了,看了代碼后恍然大悟
ID:789846 發表于 2020-6-26 12:25
xianfajushi 發表于 2020-6-26 09:16
代碼按我的電路修改了,僅供參考。

可以了,現在明白了,謝謝你
ID:332444 發表于 2020-6-26 09:16
代碼按我的電路修改了,僅供參考。
ID:332444 發表于 2020-6-26 09:12
  1. #include <reg52.h>
  2. sbit LED = P0^0;
  3. sbit wai = P3^2;
  4. sbit key = P1^7;
  5. void main()
  6. {
  7.         int i;
  8.         P1 = 0XF7;        //矩陣按鍵變為獨立按鍵
  9.         P0 = 0x00;        //熄滅led
  10.         IT0 = 1;                //下降沿觸發
  11.         EX0 = 1;                //開啟INT0中斷
  12.         EA = 1;                        //開啟總中斷  

  13.         while(1)
  14.         {
  15.         if(key == 0)
  16.         {
  17.                 for(i=0;i<1000;i++);      //按鍵消抖
  18.                 if(key==0)wai = 0;                //令P3^2引腳電平為0,下降沿出發外部中斷
  19.                                 }
  20.         wai = 1;
  21.         }
  22. }
  23. void int0_process() interrupt 0
  24. {        
  25.         unsigned int i;
  26.         for(i=0;i<1000;i++);
  27.         LED = ~LED;                        
  28. }
復制代碼
ID:332444 發表于 2020-6-26 07:55
按鍵代碼要包含在無限循環中,不是無限循環被按鍵代碼包含。
ID:332444 發表于 2020-6-26 07:49
中斷函數內多余代碼去掉,保留LED取反試看,按鍵代碼無限循環去掉。

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表