新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 單片機關鍵技術基礎詳解(三)

單片機關鍵技術基礎詳解(三)

作者: 時間:2016-11-24 來源:網(wǎng)絡 收藏

  1.4 KeilC 編程

  【規(guī)則14】深入了解你所用的工具。

  仔細查看KeilC 附帶的幫助文件,你能找到你期待已久的東西。KeilC 是當前最好用的單片機開發(fā)軟件。要充分利用該軟件的功能,就必須對它深入的進行了解。

  【規(guī)則15】不要使用語言的冷僻特性,并且記住,耍小聰明會貽害無窮。最重要的是編寫你理解的代碼,理解你編寫的代碼,你就可能會做得很好。

  2 推薦書目

  要成為一個優(yōu)秀的單片機系統(tǒng)產品設計工程師,興趣、熱情、責任心至關重要。

2.1 單片機技術學習

  《微機原理及應用(從16 位到32 位) 》戴梅萼等著清華大學出版社。學校教材,也是當年我學習單片機的啟蒙書。

  2.2 C51 編程學習

  《單片機高級語言C51 Windows 環(huán)境編程與應用》作者:徐愛鈞彭秀華電子工業(yè)出版社。這本書幾乎覆蓋了C51 編程的方方面面,最新版本對當前使用最廣的keilC 也有很詳細的講述。對于剛學C51 編程的同志,本書是上上之選,強力推薦。比起現(xiàn)今書市上的所謂什么“C51 編程圣經(jīng)”之類的書強得多。

  2.3 C 語言編程必讀

  《C 陷阱與缺陷》Andrew Koenig 著

  《C 專家編程》Peter Van Der Linden 著

  C 語言開發(fā)技術經(jīng)典之作,C 程序員必讀之書,數(shù)十年來經(jīng)久不衰。如果你想對C語言全面的掌握,真正了解C 語言的精髓,這兩本書是必讀之作。由人民郵電出版社出版的中文譯本也還不錯。

  2.4 程序設計技術方面

  《數(shù)據(jù)結構》嚴蔚敏清華大學出版社。清華大學出版社的教材質量穩(wěn)定,中規(guī)中矩,價格相對來說也便宜一點。

  《程序設計實踐》Brian W. Kernighan Rob Pike 著;《代碼大全》

三、MCS-51單片機終端及外中斷軟件編程

  MCS-51單片機有多個中斷源,以8051為例,有5個中斷源,兩個外中斷、兩個定時中斷和一個串行中斷,這一節(jié)我們討論外中斷軟件編程。

  外中斷是由外部原因引起的中斷,有兩個中斷源。即外中斷0(INT0)和外中斷1(INT1),中斷請求信號由引腳P3.2(INT0)和P3.3(INT1)輸入。

  外中斷請求信號有兩種方式,一是電平方式,二是脈沖方式??赏ㄟ^有關控制位的定義進行規(guī)定。

  電平方式為低電平有效,只需在單片機的(INT0)和(INT1)中斷請求輸入端采樣到有效的低電平時,就會激活外部中斷。

  脈沖方式則在脈沖的后負跳沿有效,即在相鄰兩個機器周期對中斷請求引入端進行采樣中,如前一次為高,后一次為低即為有效中斷請求。這就要求在這種中斷方式,中斷請求信號的脈沖寬度必須大于一個機器周期,以保證電平變化能被單片機采樣到。

  定時器控制寄存器 (TCON)

  外中斷請求方式的控制位在定時控制寄存器TCON(地址為88H)中的位88(IT0)和位8A(IT1)兩個位,當IT0(IT1)=0為電平方式,IT0(IT1)=1為脈沖方式。同時在此寄存器中的位89(IE0)和位8B(IE1)為外中斷請求標志位,當CPU采樣到INT0(INT1)端出現(xiàn)有效中斷請求時,此位由硬件置1。在中斷響應完成后轉向中斷服務時,再由硬件自動清0。

  下面我們對有關控制位作說明:

  ·EA——中斷允許總控制位,EA=0,中斷總禁止,禁止所有中斷。EA=1,中斷總允許,總允許位打開后,各中斷的允許或禁止由各中斷允許控制位設置決定。

  ·EX0(EX1)——外部中斷允許控制位,EX0(EX1)=0,禁止外部中斷。EX0(EX1)=1,允許外部中斷。

  ·ET0(ET1)——定時/計數(shù)中斷允許控制位,ET0(ET1)=0,禁止定時/計數(shù)中斷。ET0(ET1)=1,允許定時/計數(shù)中斷。

  ·ES——串行中斷允許控制位,ES=0,禁止串行中斷。ES=1,允許串行中斷。

  中斷的允許和禁止就是中斷的開放和關閉,中斷允許就是開放中斷,中斷的禁止就是關閉中斷。從以上說明我們可看出,MCS-51的中斷允許是通過兩級控制的,以EA位作為總中斷控制位,以各中斷控制位為分控制位。當總中斷位為禁止狀態(tài)時,不管分控制位是允許或禁止整個中斷都是禁止的。只有當EA=1(允許)時,才能由各分控制位設置各自的中斷允許與禁止。MCS-51單片機復位后,IE=00H,因此中斷處于禁止狀態(tài)。

  值得一提的是:單片機中斷響應后不會自動關閉中斷,因此在轉入中斷服務程序后,應由軟件指令禁止中斷。

  中斷優(yōu)先級控制寄存器 (IP)

  MCS-51的中斷優(yōu)先級控制比較簡單,只設置了高、低兩個級別的有限級,各中斷源的優(yōu)先級別由優(yōu)先寄存器(IP)進行控制。

  ·PX0——外中斷0(INT0)優(yōu)先級控制位。

  ·PT0——定時中斷0(T0)優(yōu)先級控制位。

  ·PX1——外中斷1(INT1)優(yōu)先級控制位。

  ·PT1——定時中斷1(T1)優(yōu)先級控制位。

  ·PS ——串行中斷(ES)優(yōu)先級控制位。

  控制位=0,優(yōu)先級為低??刂莆?1,優(yōu)先級為高。

  中斷優(yōu)先級是為了中斷嵌套服務的,控制原則為:

  (1) 低優(yōu)先級中斷不能打斷高優(yōu)先級的中斷服務,而高優(yōu)先級的中斷服務可以打斷低優(yōu)先級的中斷服務。

  (2) 同級的中斷已經(jīng)響應,其他中斷將被禁止。

  (3) 如果同級的多個中斷源同時出現(xiàn),CPU將按查詢次序確定哪個中斷被響應,次序為:外中斷0→定時中斷0→外中斷1→定時中斷1→串行中斷。

  中斷控制寄存器的狀態(tài)設置

  在應用中,我們可以通過相應的控制寄存器來使用中斷系統(tǒng),因此從使用的角度上看,這些控制寄存器是面向用戶的。這些控制寄存器既可以進行字節(jié)尋址,也可以進行位尋址,也就是對位狀態(tài)的尋址既可以使用字節(jié)操作指令也可以使用位操作指令,例如:

  MOV IE,#81H

  如使用位操作指令,也可寫為:

  SETB EA

  SETB EX0

  對于一般的外中斷程序,我們可以這樣安排:

  ORG 0000H ;主程序入口

  START: AJMP MAIN

  ORG 0003H ;外中斷程序入口

  AJMP INT00

  MAIN: MOV IE,#81H ;允許總中斷和外中斷

  …… ;主程序

  ……

  ……

  INT00: …… ;外中斷服務程序

  ……

  RETI ;中斷返回



評論


技術專區(qū)

關閉
×

Digikey let's do
· 2025年第1期限时报名开启,5月8日截止
· Digikey助力,提供一站式免费器件支持
· 跟大佬一起 【DIY 功率监测与控制系统】