日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

蓝桥杯单片机——中断系统(7)

發(fā)布時間:2023/12/20 windows 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 蓝桥杯单片机——中断系统(7) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、原理分析

1、什么是中斷?

CPU在處理某一事件A時,發(fā)生了另一事件B請求CPU迅速去處理(中斷發(fā)生);CPU暫時中斷當(dāng)前的工作,轉(zhuǎn)去處理事件B(中斷響應(yīng)和中斷服務(wù));待CPU將事件B處理完畢后,再回到原來事件A被中斷的地方繼續(xù)處理事件A(中斷返回),這一過程稱為中斷 。

中斷系統(tǒng)三要素:中斷源、中斷的嵌套和優(yōu)先級處理、中斷的響應(yīng)過程

2、51單片機具有5個中斷源:

3、?中斷允許控制寄存器(IE)
8051單片機通過中斷允許控制寄存器進行兩級中斷控制。

EA—中斷允許的總控制位。
EA=0時,中斷總禁止相當(dāng)于關(guān)中斷,即禁止所有中斷。
EA=1時,中斷總允許,相當(dāng)于開中斷。總的中斷允許后,各個中斷源是否可以申請
中斷,則由其余各中斷源的中斷允許位進行控制。
EX0—外部中斷0允許控制位,當(dāng)EX0=0,禁止外中斷0;EX0=1,允許外中斷0。
EX1—外部中斷1允許控制位,當(dāng)EX1=0,禁止外中斷1;EX1=1,允許外中斷1。
ET0—定時器0中斷允許控制位,當(dāng)ET0=0, 禁止該中斷;ET0=1,允許定時器0中斷。
ET1—定時器1中斷允許控制位,當(dāng)ET1=0,禁止該中斷;ET1=1,允許定時器1中斷。
ES—串行口中斷允許控制位,當(dāng)ES=0,禁止串行中斷;ES=1,允許串行中斷。
ET2—定時器2中斷允許控制位,當(dāng)ET2=0,禁止該中斷;ET2=1,允許定時器2中斷。
(鏈接:https://wenku.baidu.com/view/22d783be59fb770bf78a6529647d27284a733762.html)
3、P3口
P3口除了可以做普通的I/O使用外,還具有第二功能:

二、程序編寫

實現(xiàn)功能:定義一個working()函數(shù),使L1燈不斷閃爍。將P32引腳定義成外部中斷功能,按鍵S5就會產(chǎn)生外部中斷觸發(fā)信號,在中斷響應(yīng)函數(shù)中,點亮L8指示燈,延時一段時間后熄滅,該功能用兩種方式實現(xiàn):1、中斷方式(在中斷服務(wù)函數(shù)中延時)2、查詢方式

首先將J5處的跳線帽接到2~3引腳,即S5按鍵接到P32/INTO, S4按鍵接到P33/INT1。

中斷方式:(直接在中斷服務(wù)函數(shù)中執(zhí)行)

#include <reg52.h> sbit L1=P0^0; sbit L8=P0^7;void delay(unsigned int t)//延時函數(shù),注意t為int型 {while(t--);while(t--);while(t--); } void working()//L1閃爍函數(shù) {P2=0xA0;P0=0x00;P2=0x80;P0=0xFF;//關(guān)閉外設(shè)P2=0x80;L1=0;delay(60000);L1=1;delay(60000); } void Init_INT0()//初始化函數(shù),對中斷的工作狀態(tài)的初始化設(shè)置 {EA=1;//開中斷總開關(guān),允許中斷IT0=1;//外部中斷0,下降沿觸發(fā);若為低電平觸發(fā),則為IT0=0;EX0=1;//開外部中斷0 } void serviceINT0() interrupt 0//外部中斷服務(wù)函數(shù) {L8=0;delay(60000);delay(60000);delay(60000);delay(60000);delay(60000);delay(60000);L8=1; } void main() {Init_INT0();while(1){working();} }

查詢方式:(在中斷服務(wù)函數(shù)中標(biāo)志變量,在外部延時)

#include <reg52.h> sbit L1=P0^0; sbit L8=P0^7;void delay(unsigned int t)//延時函數(shù),注意t為int型 {while(t--);while(t--);while(t--); } void working()//L1閃爍函數(shù) {P2=0xA0;P0=0x00;P2=0x80;P0=0xFF;//關(guān)閉外設(shè)P2=0x80;L1=0;delay(60000);L1=1;delay(60000); } void Init_INT0()//初始化函數(shù),對中斷的工作狀態(tài)的初始化設(shè)置 {EA=1;//開中斷總開關(guān),允許中斷IT0=1;//外部中斷0,下降沿觸發(fā);若為低電平觸發(fā),則為IT0=0;EX0=1;//開外部中斷0 } unsigned char flag=0; void serviceINT0() interrupt 0//外部中斷服務(wù)函數(shù) {flag=1; } void LED() {if(flag==1){ L8=0;delay(60000);delay(60000);delay(60000);delay(60000);delay(60000);delay(60000);L8=1;}flag=0; } void main() {Init_INT0();while(1){working();LED();} }

?

?

總結(jié)

以上是生活随笔為你收集整理的蓝桥杯单片机——中断系统(7)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。