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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1846|回復: 2
收起左側

為什么單片機程序中這個D1就是不能兩呢(外部中斷0控制led1)

[復制鏈接]
ID:946238 發表于 2021-7-23 19:28 | 顯示全部樓層 |閱讀模式
/****************************************************************
**********************
實驗現象:下載程序后,操作 K3 按鍵使 D1 狀態取反
接線說明: (具體接線圖可見開發攻略對應實驗的“實驗現象”章節)
1,單片機-->LED&交通燈模塊
P20-->D1
2,單片機-->獨立按鍵模塊
P32-->K3
注意事項:
*****************************************************************
**********************/
#include "reg52.h" //此文件中定義了單片機的一些特殊功能寄存器
typedef unsigned int u16; //對數據類型進行聲明定義
typedef unsigned char u8;
sbit k3=P3^2; //定義按鍵 K3
sbit led=P2^0; //定義 P20 口是 led
/****************************************************************
***************
* 函 數 名 : delay
* 函數功能 : 延時函數,i=1 時,大約延時 10us
*****************************************************************
**************/
void delay(u16 i)
{
while(i--);
}
/****************************************************************
***************
* 函 數 名 : Int1Init()
* 函數功能 : 設置外部中斷 1
* 輸 入 : 無
* 輸 出 : 無
*****************************************************************
**************/
void Int0Init()
{
//設置 INT0
IT0=1;//跳變沿出發方式(下降沿)
EX0=1;//打開 INT0 的中斷允許。
EA=1;//打開總中斷
}
/****************************************************************
***************
* 函 數 名 : main
* 函數功能 : 主函數
* 輸 入 : 無
* 輸 出 : 無
*****************************************************************
**************/
void main()
{
Int0Init(); // 設置外部中斷 0
while(1);
}
/****************************************************************
***************
* 函 數 名 : Int0() interrupt 0
* 函數功能 : 外部中斷 0 的中斷函數
* 輸 入 : 無
* 輸 出 : 無
*****************************************************************
**************/
void Int0() interrupt 0 //外部中斷 0 的中斷函數
{
delay(1000); //延時消抖
if(k3==0)
{
led=~led;
}
}

回復

使用道具 舉報

ID:161164 發表于 2021-7-23 21:52 | 顯示全部樓層
因為led只能亮,不能兩

雖然出了警告,但也可以啊
代碼沒問題,那就是硬件問題
Led正負有沒有接錯?
ezgif.com-gif-maker (1).gif


回復

使用道具 舉報

ID:123289 發表于 2021-7-24 09:08 | 顯示全部樓層
進入中斷時,K3必=0,否則是不會進入中斷的,所以 IF K3=0 沒有意義。
在中斷程序未退出之前,K3彈N次都是沒有用的,因為中斷進行中,無法再進入(當然按下也無用)。
但當你退出中斷時,會立即再進中斷(感覺上K3不聽話)。
所以正確的做法是:
中斷響應后:LED求反、延時、去除中斷標記(彈動必會產生中斷標記,去除它就不會立即再中斷),退出中斷服務程序。
當然K3在延時未結束之前會失效。這是你的程序可以改進的地方。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧州一区| 日本成人福利视频 | 国产一区二区三区在线 | 国产午夜三级一区二区三 | 草久久久| 欧美色图另类 | 国产精品一区二区三区四区五区 | 欧美日韩在线一区二区三区 | 精品1区2区 | 天堂av免费观看 | 91av在线免费看 | 成年人在线观看 | 综合国产第二页 | 黄色中文字幕 | 成人免费视频网站在线看 | 做a的各种视频 | 日韩精品一区二区三区视频播放 | 一区二区三区在线免费观看 | 欧美精品一区二区三区在线播放 | 精品久久久久久久久久久久久 | 欧美日韩不卡合集视频 | 毛片网站免费观看 | 国产精品久久久久久久久久免费看 | 久久机热| 日韩免费av | 日韩av在线免费 | 亚洲成人av在线播放 | 波波电影院一区二区三区 | 成人免费视频在线观看 | 精品国产一区二区三区久久久四川 | 日韩黄色av| 日本手机在线 | 国产精品18hdxxxⅹ在线 | 中文字幕在线第一页 | 91一区| 精品久草 | 国产精品久久在线观看 | 夜夜艹 | 欧美日韩视频在线 | 亚洲精品1区| 97精品超碰一区二区三区 |