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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

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

查看數: 2240 | 評論數: 11 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2020-5-28 20:40

正文摘要:

#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 ...

回復

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的高低電位 觸發不就是有下降沿么 別的可以控制他的高低電位  咋就不可以等效那兩個腳呢
ID:67199 發表于 2020-5-29 22:55
雪峰1259 發表于 2020-5-29 21:43
額 我是想通過P3^0按鍵來產生這個中斷

外部中斷INT0與INT1,在 P3.2 P3.3口上,按P3.0不能產生外中斷。
ID:737694 發表于 2020-5-29 21:43
wulin 發表于 2020-5-29 16:11
程序都給你改好了你還玩不轉,無語了。

額 我是想通過P3^0按鍵來產生這個中斷
ID:213173 發表于 2020-5-29 16:11
雪峰1259 發表于 2020-5-29 13:16
加過while后 還是不行 我先通過按P3^0按鍵發現沒用 然后我又直接按P3^2想產生跳變沿 還是沒反應 懵逼了[e ...

程序都給你改好了你還玩不轉,無語了。
ID:737694 發表于 2020-5-29 13:17
273431377 發表于 2020-5-29 00:33
在main()函數結尾加個while(1);
把中斷函數名改成void exint0() interrupt 0  
試一下。

應該加個while 不過這和名字沒啥關系吧
ID:737694 發表于 2020-5-29 13:16
wulin 發表于 2020-5-29 06:05
樓主犯了兩個錯誤。1.程序結構錯誤:main函數初始化后必須限制在主循環while(1)中運行,哪怕沒有如何任務也 ...

加過while后 還是不行 我先通過按P3^0按鍵發現沒用 然后我又直接按P3^2想產生跳變沿 還是沒反應 懵逼了
ID:737694 發表于 2020-5-29 13:12
csmyldl 發表于 2020-5-29 00:43
問題未描述清楚,flag與KEY在程序中定義引腳P32和P30,不知為何要這么定義

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

贊同樓上
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. }
復制代碼
ID:235200 發表于 2020-5-29 00:43
問題未描述清楚,flag與KEY在程序中定義引腳P32和P30,不知為何要這么定義
ID:753266 發表于 2020-5-29 00:33
在main()函數結尾加個while(1);
把中斷函數名改成void exint0() interrupt 0  
試一下。

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品久久久 | 99久久国产免费 | 久久久五月天 | 国产精品久久久久久久久久久新郎 | av黄色在线观看 | 色偷偷噜噜噜亚洲男人 | 久久97精品 | 亚洲一区二区三区四区五区午夜 | www.久久.com | 欧一区| 黄色片a级| 国产精品自拍啪啪 | 国产欧美一区二区精品久导航 | 91久久精品一区二区三区 | 在线观看国产视频 | 国产精品黄 | 在线91| 亚洲精品久久久9婷婷中文字幕 | 久久99精品国产麻豆婷婷 | 免费观看成人性生生活片 | 日韩欧美国产精品 | 日韩一级免费大片 | 欧美最猛黑人xxxx黑人 | 成人激情视频在线 | 91传媒在线播放 | 久精品久久 | 精品视频在线播放 | 日韩不卡视频在线观看 | 北条麻妃一区二区三区在线观看 | 综合色婷婷 | 成在线人视频免费视频 | 正在播放国产精品 | 四虎成人精品永久免费av九九 | 国产精品18hdxxxⅹ在线 | 在线观看国产视频 | 精品国产18久久久久久二百 | 超碰人人91 | 日韩一区二区三区视频在线播放 | 国产精品一区久久久 | 久久久久久高潮国产精品视 | 日韩一级不卡 |