久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2239|回復: 11
打印 上一主題 下一主題
收起左側

搞不懂單片機外部中斷 也查了資料 感覺還是找不到錯誤

[復制鏈接]
跳轉到指定樓層
樓主
#include<reg52.h>
#include<intrins.h>
#define uchar  unsigned char
#define uint unsigned int
sbit flag=P3^2;//外部中斷信號產生腳
sbit key=P3^0;//控制flag產生下降沿
sbit led=P2^0;

void delay(int a){
int x,y;
for(x=0;x<=a;x++)
for(y=110;y>=0.;y--);
}
/*  void le(void)
{          int a        ;
          while(1){
         P1=0x01;
for(a=0;a<8;a++){
   P1=_cror_(P1,1);
   delay(20);}} //led循環
} */



//外部中斷0初始化
void intlInit(void)
{


IT0=1; //  外部中斷0下降沿觸發
IE=0;  //清除標志位
EX0=1; // 開外部中斷
EA=1;  //開總中斷
}


//主函數
void main(){
        void  intlInit(void);         
           
        if(key==0)
        {                delay(1);
                 if(key==0)//P3^0腳         
             {
                  flag=1;           //P3^2腳
                   flag=0;//外部產生下降沿
                }
           } else flag=1;
                        
}
        // 外部中斷0中服務程序
void int1(void) interrupt 0
{
         led=~led;
        P1=0x00;
                  delay(20);
}

51hei圖片20200528203854.png (41.64 KB, 下載次數: 41)

51hei圖片20200528203854.png

51hei圖片20200528203858.png (41.09 KB, 下載次數: 31)

51hei圖片20200528203858.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:753266 發表于 2020-5-29 00:33 | 只看該作者
在main()函數結尾加個while(1);
把中斷函數名改成void exint0() interrupt 0  
試一下。
回復

使用道具 舉報

板凳
ID:235200 發表于 2020-5-29 00:43 | 只看該作者
問題未描述清楚,flag與KEY在程序中定義引腳P32和P30,不知為何要這么定義
回復

使用道具 舉報

地板
ID:213173 發表于 2020-5-29 06:05 | 只看該作者
樓主犯了兩個錯誤。1.程序結構錯誤:main函數初始化后必須限制在主循環while(1)中運行,哪怕沒有如何任務也得在while(1)中死循環。2.外部中斷理解錯誤:所謂外部中斷必須是單片機外部信號作用于IN0(IN1),由軟件置flag=1; flag=0;不會觸發IN0中斷。
  1. #include<reg52.h>
  2. #include<intrins.h>
  3. #define uchar  unsigned char
  4. #define uint unsigned int
  5. sbit flag=P3^2;//外部中斷信號產生腳
  6. sbit key=P3^0;//控制flag產生下降沿
  7. sbit led=P2^0;

  8. //外部中斷0初始化
  9. void intlInit(void)
  10. {
  11.         IT0=1; //  外部中斷0下降沿觸發
  12.         IE=0;  //清除標志位
  13.         EX0=1; // 開外部中斷
  14.         EA=1;  //開總中斷
  15. }
  16. //主函數
  17. void main()
  18. {
  19.         intlInit();         
  20.         while(1)
  21.         {

  22.         }
  23. }
  24. // 外部中斷0中服務程序
  25. void int1(void) interrupt 0
  26. {
  27.         led=~led;
  28. }
復制代碼
回復

使用道具 舉報

5#
ID:341098 發表于 2020-5-29 12:44 | 只看該作者
wulin 發表于 2020-5-29 06:05
樓主犯了兩個錯誤。1.程序結構錯誤:main函數初始化后必須限制在主循環while(1)中運行,哪怕沒有如何任務也 ...

贊同樓上
回復

使用道具 舉報

6#
ID:737694 發表于 2020-5-29 13:12 | 只看該作者
csmyldl 發表于 2020-5-29 00:43
問題未描述清楚,flag與KEY在程序中定義引腳P32和P30,不知為何要這么定義

想通過按鍵來控制中斷
回復

使用道具 舉報

7#
ID:737694 發表于 2020-5-29 13:16 | 只看該作者
wulin 發表于 2020-5-29 06:05
樓主犯了兩個錯誤。1.程序結構錯誤:main函數初始化后必須限制在主循環while(1)中運行,哪怕沒有如何任務也 ...

加過while后 還是不行 我先通過按P3^0按鍵發現沒用 然后我又直接按P3^2想產生跳變沿 還是沒反應 懵逼了
回復

使用道具 舉報

8#
ID:737694 發表于 2020-5-29 13:17 | 只看該作者
273431377 發表于 2020-5-29 00:33
在main()函數結尾加個while(1);
把中斷函數名改成void exint0() interrupt 0  
試一下。

應該加個while 不過這和名字沒啥關系吧
回復

使用道具 舉報

9#
ID:213173 發表于 2020-5-29 16:11 | 只看該作者
雪峰1259 發表于 2020-5-29 13:16
加過while后 還是不行 我先通過按P3^0按鍵發現沒用 然后我又直接按P3^2想產生跳變沿 還是沒反應 懵逼了[e ...

程序都給你改好了你還玩不轉,無語了。
回復

使用道具 舉報

10#
ID:737694 發表于 2020-5-29 21:43 | 只看該作者
wulin 發表于 2020-5-29 16:11
程序都給你改好了你還玩不轉,無語了。

額 我是想通過P3^0按鍵來產生這個中斷
回復

使用道具 舉報

11#
ID:67199 發表于 2020-5-29 22:55 | 只看該作者
雪峰1259 發表于 2020-5-29 21:43
額 我是想通過P3^0按鍵來產生這個中斷

外部中斷INT0與INT1,在 P3.2 P3.3口上,按P3.0不能產生外中斷。
回復

使用道具 舉報

12#
ID:737694 發表于 2020-5-30 17:29 | 只看該作者
lyxing 發表于 2020-5-29 22:55
外部中斷INT0與INT1,在 P3.2 P3.3口上,按P3.0不能產生外中斷。

我知道那兩個腳 我網上查的也可以通過別的i/o口來控制P3^2 P3^3的高低電位 觸發不就是有下降沿么 別的可以控制他的高低電位  咋就不可以等效那兩個腳呢
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 99reav| 国产精品亚洲综合 | 99re6在线视频精品免费 | 亚洲国产成人精品久久 | 亚洲精品久久久久久久不卡四虎 | 毛片免费视频 | av黄色在线 | 天天看天天操 | 日韩国产免费 | 欧美中文字幕一区二区三区 | 午夜小视频在线观看 | 9色网站| 国产91在线 | 中日 | 一区二区高清 | 亚洲综合大片69999 | 亚洲欧美v | 国产成人高清视频 | 91免费观看 | 黄免费看 | 午夜一区二区三区 | 国产精品99久久久久久宅男 | 91久久国产精品 | 国产性色视频 | 国产精品久久久久久婷婷天堂 | 精品1区| 中文字幕一区二区三区四区五区 | 久久99国产精一区二区三区 | 一级欧美| 一级毛片成人免费看a | 波多野结衣电影一区 | 久久九精品 | 欧美一级欧美一级在线播放 | 国产精品99久久久久 | 国产高清在线精品一区二区三区 | 在线视频91 | 午夜影院操 | 中文字幕二区 | 一区二区国产在线观看 | 久久国产一区二区 | 日韩电影免费在线观看中文字幕 | 中文字幕欧美一区 |