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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

51单片机中断学习

發布時間:2025/3/15 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 51单片机中断学习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

51單片機中斷學習

? (2012-04-12 19:36:39)
標簽:?

單片機中斷

分類:?51mcu

一、中斷的概念
????CPU在處理某一事件A時,發生了另一事件B請求CPU迅速去處理(中斷發生);
????CPU暫時中斷當前的工作,轉去處理事件B(中斷響應和中斷服務);
????待CPU將事件B處理完畢后,再回到原來事件A被中斷的地方繼續處理事件A(中斷返回),這一過程稱為中斷

?

二、中斷源

????在51單片機中有5個中斷源

????中斷號??????????優先級????????????????????中斷源????????????????????中斷入口地址?

???????0???????????????1(最高)?????????????外部中斷0??????????????????????0003H
???????1???????????????2??????????????????????定時器0???????????????????????000BH

???????2???????????????3?????????????????????外部中斷1??????????????????????0013H

???????3???????????????4??????????????????????定時器1???????????????????????0018H

???????4???????????????5??????????????????????串口總段??????????????????????0023H

?

三、中斷寄存器

????單片機有10個寄存器主要與中斷程序的書寫控制有關

????1.中斷允許控制寄存器IE

????2.定時器控制寄存器TCON

????3.串口控制寄存器SCON

????4.中斷優先控制寄存器IP

????5.定時器工作方式控制寄存器TMOD

????6.定時器初值賦予寄存器(TH0/TH1,TL0/TL1)

寄存器詳細說明:http://blog.sina.com.cn/s/blog_a05b986d0101545c.html

?

四、寄存器功能與賦值說明

????注:在用到中斷時,必須要開總中斷EA,即EA=1。??//開總中斷

????1.中斷允許控制寄存器IE

????

????EX0(EX1):外部中斷允許控制位

????????EX0=1 外部中斷0開關閉合???//開外部0中斷
????????EX0=0 外部中斷0開關斷開

????ET0(ET1):定時中斷允許控制位

????????ET0=1?定時器中斷0開關閉合?//開內部中斷0

????????ET0=0 定時器中斷0開關斷開
????ES: 串口中斷允許控制位?????

????????ES=1 串口中斷開關閉合?????//開串口中斷

????????ES=0 串口中斷開關斷開

????2.定時器控制寄存器 TCON?????//控制外部中斷和定時器中斷

????

????外部中斷:

????????IE0(IE1):外部中斷請求標志位

????????????當INT0(INT1)引腳出現有效的請求信號,此位由單片機自動置1,cpu開始響應,處理終端,而當入

????????中斷程序后由單片機自動置0.

????????//外部中斷,即外部中斷相應的引腳接入低電平或下降沿信號時,中斷開始響應。

????????IT0(IT1):外部中斷觸發方式控制位???????????????????//選擇有效信號

????????????IT0(IT1)=1:脈沖觸發方式,下降沿有效。

????????????IT0(IT1)=0:電平觸發方式,低電平有效。

????內部中斷:

????????TF0(TF1):內部定時器/計數器溢出中斷標志位

????????????當定時器、計數器計數溢出的時候,此位由單片機自動置1,cup開始響應,處理中斷,而當進入中

????????斷程序后由單片機自動置0.

?????//內部中斷實際上就是利用內部的計數器,只不過提供計數的脈沖來自單片機自身。

????????TRO(TR1):定時器/計數器啟動位????????????????????//啟動定時器

????????TRO(TR1)=1; 啟動定時器/計數器0

????????TR0(TR1)=0; 關閉定時器/計數器0

?????3.串口控制寄存器SCON

?????

?????TI:串行口發送中斷標志位

??????????當單片機串口發送完一幀數據后,此位由單片機自動置1,而當進入中斷服務程序后是不會自動清0的,

?????必須由用戶在中斷服務中用軟件清0.

?????RI:串行口接收中斷標志位

??????????當單片機串口接收完一幀數據后,此位由單片機自動置1,而當進入中斷服務程序后是不會自動清0的,

????必須由用戶在中斷服務軟件中用軟件清0.

?????(IP以后補上,TMOD,TL0/TH0 在定時器/計數器中講)

?

五、中斷結構圖:

????

?

六、定時器/計數器

????1.計數的定義:

????????計數是指對外部事件進行計數,外部事件的發生以輸入脈沖的形式表示,因此計數功能的實質就是對外來

????的脈沖進行計數,在單片機中對應引腳T0和T1,兩個脈沖輸入端。

????????外部輸入的脈沖在負跳變時有效(即外部脈沖由1變化到0),計數器加1.

????2.定時器:

????????定時器是通過計數器的計數來實現的,不過此時的計數脈沖來自單片機的內部,因此定時器的實質是對內

????部脈沖的計數,在單片機中,每個機器周期產生一次計數脈沖,計數器加1.

????3.工作方式控制寄存器TMOD:

????????

????????TMOD的低半字節(D0,D1,D2,D3)用來控制定時器/計數器0

????????TMOD的高半字節(D4,D5,D6,D7)用來控制定時器/計數器1

????????對TMOD中的內容說明:

????????GATE——門控制。   
??????????GATE=1時,由外部中斷引腳INT0、INT1來啟動定時器T0、T1。   
?????????????當INT0引腳為高電平時TR0置位,啟動定時器T0;   
?????????????當INT1引腳為高電平時TR1置位,啟動定時器T1。   
??????????GATE=0時,僅由TR0,TR1置位分別啟動定時器T0、T1。

????????C/T——功能選擇位   
???????????C/T=0時為定時功能,C/T=1時為計數功能。     
????????M0、M1——方式選擇功能   
????????由于有2位,因此有4種工作方式?

????????
???

??4.根據單片機晶振,所選TMOD的的工作方式,所要定的時間,來確定THO和TLO所要賦予的初值

????(以12M晶振,工作方式1,16位計數器為例,設所定時間為Xus(16為計數器最大數65536,即65536us,若所

??????定時間大于65535,則要用if語句控制,現假設X<65535))

?????1.時鐘周期的時間t=1/12M=1/12 us

?????2.機器周期的時間T=12*1/12=1 us

?????3.因為每經過一個機器周期計數器+1,所以,計數器+1,經過的時間為?1 us。

?????若所定時間為X,則要求經過Xus,中斷響應,又因為16為計數器要全部置1(即達到65535)+1后,中斷才會

?????響應,所以,初值=(65536-X)

?????4.將初值轉化為16進制碼,分別付給THO和TLO

?????eg:所定時間5ms

?????????初值=(65536-5000)=60536=EC78

?????????TH0=0XEC; TL0=0X78;

?????(當工作方式不同時,TH0/TL0的賦值也不同,個人覺得有了16位計數器了,其余的沒什么用,不介紹了)

??5.寫程序時另一種THO/TLO賦值方法

?????TH0=(65536-20000)/256;?????
?????TL0=(65536-20000)%6;

?????這樣設置,每經過20ms,發生一次中斷,中斷時間一般以秒為單位,所以經過n次中斷即可。
? 

???????

總結

以上是生活随笔為你收集整理的51单片机中断学习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。