STC15 按鍵中斷

2021-08-08 08:36:04 字數 1098 閱讀 6859

實現功能:

通電時亮乙個燈,輸出高電平x分鐘,低電平x分鐘

按一下變成兩個燈,高電平x分鐘,低電平x分鐘

再按一下變成三個燈,高電平x分鐘,低電平x分鐘

再按一下回到乙個燈

核心是通過按鍵改變flag的值,然後在延時中判斷flag值是否和原先的值相同

#include"reg51.h"

#define on 1

#define off 2

//三種狀態

#define low 1

#define mid 2

#define high 3

sfr p3m0 = 0xb2; //0000,0000 埠3模式暫存器0

sfr p3m1 = 0xb1; //0000,0000 埠3模式暫存器1

sbit ledlan=p3^1;

sbit ledhuang=p3^2;

sbit ledhong=p3^3;

sbit key=p3^5;

//sbit shuchu=p3^4;

sbit kongzhi=p3^0;

volatile

int flag=1;//按鍵改變flag值

void delay(int ms)

void ledon(int status)

}void ledoff()

void delay2(int time,int status)

}}void ioon(int time,int status)

void iooff(int time,int status)

//按鍵中斷初始化

void initinterr()

//設定p3.4,p3.0推挽輸出

void settuiwan()

main()

//兩個燈亮

for(;flag==mid;)

//三個燈亮

for(;flag==high;)

}}void key() interrupt 0

if(flag==4)flag=1;

}

STC15 微控制器 利用 外部中斷 測頻率

中斷測頻率 先來看張圖 圖中標明 itx 0 時 下降沿觸發中斷 itx 1 時 上公升沿,下降沿均可觸發中斷,這裡要注意不是隨便乙個io口有上公升沿或下降沿時都觸發中斷,比如我的int0 對應的埠是p32 所以 只有p32埠有上公升沿 下降沿時才會觸發外部中斷0。include include t...

STC15微控制器的EEPROM程式設計

在程式中使用 stc15微控制器是乙個8位的微控制器,據說在世界上銷量最大,是國產的品牌。其中也有許多值得稱道的地方,比如不用晶振,不用外部的儲存器,flash可以做記憶體使用等。可以進入休眠狀態,外部中斷就可以喚醒等。在使用者需要保持資料,當掉電可以儲存這些資料,等下次啟動後繼續使用資料。這個功能...

STC15系列微控制器SPI使用教程(三)

stc15系列微控制器spi使用教程 一 資料型別重定義 ifndef uchar define uchar unsigned char endif ifndef uint define uint unsigned int endif io埠定義 sbit miso p2 2 主機讀從裝置 主入從出...