




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第一章 51單片機的基本端口操作主要對單片機最簡系統在實際應用中的使用方法,從簡單到復雜地實現單片機最簡系統的基本功能。“點亮最簡單的單片機系統”從單片機原理上介紹單片機的基本組成和最簡單系統的典型電路,以及有關單片機C51編程方法和例程。“更加明亮的小燈”從功能上介紹如何使LED發光穩定,從原理上介紹單片機I/O口的電氣特性和使用方法。“定時亮滅的小燈”介紹如何使LED燈定時亮、滅,從單片機原理上介紹定時器的使用和編程方法。“小燈亮滅的人工控制”從功能上介紹如何通過按鍵控制LED燈的亮滅,從單片機原理上介紹單片機中斷的使用和編程方法。先復習下Keil 51的操作。1.1 點亮最簡單的單片機系
2、統常用MCS-51系列單片機引腳功能說明引腳定義引腳功能功能說明Vcc+5V電源電源電壓Vss地電路接地端P0.0-P0.7通道08位漏極開路的雙向I/O通道P1.0-P1.7通道18位擬雙向I/O通道1 / 21P2.0-P2.7通道28位擬雙向I/O通道P3.0RXD串行輸入口P3.1TXD串行輸出口P3.2INT0外部中斷0輸入口P3.3INT1外部中斷1輸入口P3.4T0定時器/計數器0外部時間脈沖輸入端P3.5T1定時器/計數器1外部時間脈沖輸入端P3.6WR外部數據存儲器寫脈沖P3.7RD外部數據存儲器讀脈沖RST/VPD復位輸入信號該引腳上有2個機器周期的高電平可以實現復位操作,
3、在掉電情況下將只給片內RAM供電ALE/PROG地址鎖存有效信號主要作用是提供一個適當的定時信號PSEN程序選通有效信號低電平時,指令寄存器的內容讀到數據總線上EA/Vpp 片選使能當保持TTL高電平時,8051執行內部ROM的指令;當使TTL為低電平時,從外部程序存儲器取出所有指令XTAL1晶振輸入端內部振蕩器外接晶振的一個輸入端XTAL2晶振輸入端內部振蕩器外接晶振的另一個輸入端提問:什么是單片機系統、 單片機輸入控制輸出顯示晶振、復位電路外圍功能器件提問:單片機中晶振有什么作用?回答:單片機訪問一次存儲器的時間,稱之為一個及其周期,是一個時間基準。一個機器周期包括12個時鐘周期。如果一個
4、單片機選擇了12MHz晶振,它的時鐘周期是1/12us,它的一個機器周期是12X(1/12us),也就是1us。 若是12MHz的晶振,當單片機中定時/計數器的數值加1時,實際經過的時間就是1us。提示:晶振電路,復位電路基本電路圖:發光二極管導通壓降通常為1.7V-1.9V;為什么要接電阻?電路原理及器件選擇?89C51:單片機,控制發光二極管亮滅OSC:晶振,在本例中選擇12MHz的立式晶振C3,C2:晶振電路的起振電容,容值為22pFL1:發光二極管R1:限流電阻,阻值為1k歐地址分配和連接?P1.0:與發光二極管電路相連,控制LED發光二極管陰極的電平高低RESET:復位引腳X1,X2
5、:單片機的晶振引腳程序設計:延時程序:我們先不使用單片機的定時器,而是直接采用軟件的延時程序定時控制發光二極管的亮滅。在12M晶振時,一個指令周期為1us,那么1M次就是1s。程序代碼: #include sbit gate=P10; /位定義 void main(void) unsigned int i,j; while(1) for(i=1000;i0;i-) /雙重循環,延時約1s for(j=1000;j0;j-); gate=!gate; /對P10取反,控制小燈 補充:結合第五代開發板電路圖可以看到1.2 更加明亮的小燈 外加與非門做驅動電路,增大電流,當然也有相應的電子驅動芯片。
6、 1.3 定時亮滅的小燈 下面我們進入單片機最重要的內容之一,定時和中斷。1. 什么是單片機的定時器?MSC-51單片機一般有兩個內部的16位定時器/計數器,分別成為T0和T1.分別有兩個8位的RAM單元組成,即每個計數器都是16位的計數器,最大計數量為2的16次方等于65536.而定時和計數的關系是什么呢?找個同學告訴我吧。定時器每完成一個時間的定時,計數器就加1.2一定要計滿65536個數嗎?3.如何使用MCS-51單片機的定時器呢? 定時器有兩個特定的寄存器TMOD和TCON,就象定時器的操作界面。 首先介紹定時器/計數器的方式寄存器TMOD。 TMOD的控制字TMOD.7TMOD.6T
7、MOD.5TMOD.4TMOD.3TMOD.2TMOD.1TMOD.0GATEC/TM1M0GATEC/TM1M0 可以看到,高四位和第四位分別代表兩個定時器/計數器,所以我們可以以TMOD第四位來說明各位的定義與功能。 GATE:分為兩種情況,GATE=0時,定時器的起停和INT1無關,在這種情況下,定時器的起停只取決與TR0.GATE=1時,在此種情況下定時器/計數器的開關不僅要由TR0來控制,而且還要受到INT1引腳的控制,只有TR1為1時,且INT1引腳也是高電平,定時器才能開始工作。 C/T:定時/計數器功能選擇。如果C/T為0就做定時器,如果C/T為1就做計數器。當然只能二選一。
8、M1,M0:用M1,M0來控制定時器/計數器4種工作方式的選擇。 工作方式0:M1=0,M0=0.13位定時.計數方式。它由TL(1/0)的低五位和TH(0/1)的8位構成13位的計數器,此時TL(1/0) 的高3位未用。 工作方式1:M1=0,M0=1.是16位定時/計數方式,其他特性與工作方式0相同。 工作方式2:M1=1,M0=0.自動重裝初值的8位定時/計數器。初值放在T(0/1)的高8位。在工作方式2,只有低8位參與計算,而高8位不參與計算,用作預置數存放,技術范圍256。每當計數溢出,就會打開T(0/1)的高、低8位之間的開關,計預置數進入低8位。這是由硬件自動完成的。通常這種方式
9、用于波特率發生器(我們將在串行接口中講解) 工作方式3:M1=1,M0=1.這種工作方式下,定時/計數器被拆成2個獨立的定時/計數器來用。其中,TL0可以構成8位的定時器或計數器的工作方式,兒TH0則只能作為定時器來用。只有在T1以工作方式2運行時,才讓T0以工作方式3運行。 然后,我們介紹控制寄存器TCON TCON控制寄存器TCON.7TCON.6TCON.5TCON.4TCON.3TCON.2TCON.1TCON.0TF1TR1TF0TR0IE1IT1IE0IT0TR0: T0的運行控制位。啟動定時器T0沒有專門的指令,而是通過TR0進行控制。當GATE=0時,T0的運行只取決于TR0的
10、0和1;當門控位GATE=1時,僅當TR0=1,并且外中斷0引腳上的輸入值為高電平時,T0才開始計數,這兩個條件缺一不可TF0: T0的溢出和中斷申請標志位。當T0溢出時,硬件置位TF0,表示提出了中斷申請。該標志位可以通過軟件查詢,也可以用軟件清零和置位,在單片機響應中斷申請后,硬件自動清零。TR1:TF1:接下來我們來看一個典型的定時器程序。要求:定時10ms,P1.0反相。/定義頭文件和位定義#include#includesbit P00=P00;sbit P13=P13;void main(void) /初始化端口 P0=0xFF; P13=0; /初始化定時器 TMOD=0x01;
11、 TH0=0xD8; TL0=0xF0; /啟動定時器,開中斷 TR0=1; ET0=1; EA=1; /等待循環 while(1);/定時器0中斷服務子程序void timer0_ISR(void) interrupt 1 using 1 /定時器初始重載 TH0=0xD8; TL0=0xF0; /操作 P00=!P00;到這里,大家肯定就會有疑惑,什么叫做中斷服務子程序,什么又叫做中斷。我們稍后解釋。 這里需要提醒大家的是單片機定時/計數器各種工作方式下的最大計數量。 工作方式0:13位,2的13次方等于8192次; 工作方式1:16位,2的16次方等于65536次; 工作方式2和3:都是
12、8位的,2的8次方等于256次 那么就出現了一個問題,如果我想定時1s的話,該怎么做呢?大家思考一下,然后我請個同學來回答。下面我們一起來看看如何實現1s的定時亮滅。#include#include#define unit unsigned int#define uchar unsigned charsbit P00=P00;sbit P13=P13;uint overflow_count=0;void main(void) P0=0xFF; P13=0; TMOD=0x01; TH0=0xD8; TL0=0xF0; TR0=1; ET0=1; EA=1; while(1) If(overfl
13、ow_count=100) P00=!P00; Overflow_count=0;void timer0_ISR(void) interrupt 1 using 1 TH0=0xD8; TL0=0xF0; Overflow_count+;完成了小燈定時亮滅,我們就基本學會了如何使用單片機定時器/計數器的使用方法。下面,就讓我們來看看前面留下的問題-“中斷”。定義:中斷屬于一種對事件的實時處理過程,中斷源可能隨時停止CPU當前的工作,轉而去處理中斷服務程序,待中斷服務程序完成后,再返回原來工作的斷點處,繼續原來的工作。再者,我們需要知道,單片機內部有多個中斷,分別是 定時/計數器0中斷-T0中斷
14、 定時/計數器1中斷-T1中斷 外中斷0-INT0中斷 外中斷1-INT1中斷 串口中斷-串口中斷那么,當不同的中斷同時發出終端申請,自然就會有一個中斷優先級的問題。優先級的問題不僅僅發生在兩個中斷同時產生的情況,也發生在一個中斷已經產生而未結束,又有一個中斷產生的情況。最后,就是中斷的響應過程。具體來說可以分為以下幾個步驟。 保護斷點,即保存下一將要執行的指令的地址,就是把這個地址送入堆棧; 尋找中斷入口,根據5個不同的中斷源所產生的中斷,查找5個不同的入口地址; 執行中斷服務程序,用中斷服務程序處理需要改變的變量或者事件; 中斷返回,執行完中斷服務程序后,從中斷斷點處返回主程序,繼續執行主
15、程序。上面分什么是中斷,中斷優先級,中斷的響應三個部分簡單介紹了中斷,下面我們來看看單片機中斷系統有何作用。簡單的說,單片機在自動控制中所起到的作用就兩個,一個是定時/計數,另一個就是中斷的使用。中斷的作用如下:第一、實現高速CPU和低速外設之間的配合,利用中斷方式進行I/O口操作,在宏觀上可以看成CPU和外設的并行工作;第二、可以實現實時控制。實時處理是控制系統對單片機提出的要求,各個設備可以隨時向CPU發出中斷申請,而CPU也必須做出快速響應和及時處理。第三、實現故障的緊急處理。當外設發生故障時,可以利用中斷系統請求CPU及時處理這些故障。第四、便于人機聯系。操作人員可以利用鍵盤等實現中斷
16、,完成人工介入。接下來我們學習中斷的使用!中斷系統主要包括5個中斷請求源和4個控制寄存器IE,IP,TCON和SCON來控制中斷申請,中斷開關和中斷優先級。1. 中斷方式和標志位TCONTCON的低四位用于外部中斷的控制,高4位用于T0,T1的控制。 TCON中的控制字 TCON.7TCON.6TCON.5TCON.4TCON.3TCON.2TCON.1TCON.0TF1TR1TF0TR0IE1IT1IE0IT0 外部中斷請求源 IT0: INT0觸發方式控制位,可由軟件進行置位和復位。IT0=0,INT0為低電平觸發方式;IT0=1,INT0為負跳變觸發方式。 IE0: INT0中斷請求標志
17、位。當有外部中斷的請求時,這位就會置1;在CPU響應中斷后,IE0置0; IT1: IE1:2. 中斷允許寄存器IE 中斷允許寄存器IEIE.7IE.6IE.5IE.4IE.3IE.2IE.1IE.0EAXXESET1EX1ET0EX0其中:EA:總開關,如果它等于0,則所有中斷都不允許ES:串行口中斷允許ET1:定時器1中斷允許EX1:外中斷1中斷允許ET0:定時器0中斷允許EX0:外中斷0中斷允許5個中斷的自然優先級為:外中斷0-INT0中斷-EX0定時器0-T0中斷-ET0外中斷1-INT1中斷-EX1定時器1-T1中斷-ET1串口中斷-串口中斷-ES 中斷優先級寄存器- - -IP.4IP.3IP.2IP.1IP.0EAXXPSPT1PX1PT0PX0其中某位為1,那么就為高優先級。了解了中斷的控制,最后我們回到開始程序中的中斷服務子程序。函數格式為返回值 函數名稱 (【參數】)【模式】【重入】interrupt n 【using n】其中interrupt n對應的是中斷源的編號,而using n決定了使用寄存器的組號。而51系統中有四個寄存器組,取決與PSW的兩位RS0和RS1的設置。為了方便大家理解,我們給出不同中斷服務程序的C51寫法如
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 美容美發行業普通合伙企業合伙人分紅與盈利分配協議
- 橡膠制品出口貿易代理及銷售合同
- 汽車故障診斷與維修技巧分享
- 水力發電項目長期購電協議(PPA)
- 抖音火花跨職能團隊協同合作協議
- 感染防控體系建設與傳染病防控知識培訓合同
- 賽事直播版權分銷與賽事賽事廣告投放合作協議
- 宗教信仰自由子女教育保障與父母支持協議
- 零售行業銷售數據分析專家職位合同
- 國際郵輪行李保險額外保障追加協議
- 家校攜手決戰中考-九年級家長會課件
- 蘇州昆山鹿城村鎮銀行2023年招聘人員筆試歷年難、易錯考點試題含答案附詳解
- 2023年高考英語模擬卷(天津專用)(解析版)
- 山西煤炭運銷集團錦瑞煤業有限公司煤炭資源開發利用、地質環境保護與土地復墾方案
- 《國家中藥飲片炮制規范》全文
- 教育公共基礎知識整理版
- Q-SY 06351-2020 輸氣管道計量導則
- 鐵路工程定額電子版(Excel版)
- 如何預防與處理勞動爭議培訓課件
- JJG 1148-2022電動汽車交流充電樁(試行)
- GB/T 31586.2-2015防護涂料體系對鋼結構的防腐蝕保護涂層附著力/內聚力(破壞強度)的評定和驗收準則第2部分:劃格試驗和劃叉試驗
評論
0/150
提交評論