郭天祥51單片機教程【知識薈萃】_第1頁
郭天祥51單片機教程【知識薈萃】_第2頁
郭天祥51單片機教程【知識薈萃】_第3頁
郭天祥51單片機教程【知識薈萃】_第4頁
郭天祥51單片機教程【知識薈萃】_第5頁
已閱讀5頁,還剩204頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第一講,學(xué)單片機需要什么基礎(chǔ)? 什么是單片機、單片機能做什么、怎么開始學(xué)習(xí)單片機。 學(xué)單片機需要的一些預(yù)備知識 C51基礎(chǔ)知識。 了解TX-1C單片機學(xué)習(xí)板系統(tǒng)結(jié)構(gòu) 如何用TX-1C單片機學(xué)習(xí)板在短時間內(nèi)掌握51單片機和C語言編程。 KEIL工程建立詳細介紹及KEIL軟件使用方法 從點亮實驗板上的一個發(fā)光二極管開始,1,行業(yè)重點,學(xué)單片機需要什么基礎(chǔ)? 與以前所學(xué)的知識關(guān)聯(lián)很少; 只需要掌握很基本的數(shù)電模電知識,如二進制、十進制、十六進制之間的轉(zhuǎn)換,與、或、非邏輯關(guān)系等; 對各種器件的概念基本上是從0開始; 如果要用C語言編程,需具備簡單的C語言基礎(chǔ); 所有人都站在了同一起跑線上;,2,行業(yè)重

2、點,什么是單片機? 單板機 將CPU芯片、存儲器芯片、I/O接口芯片和簡單的I/O設(shè)備(小鍵盤、LED顯示器)等裝配在一塊印刷電路板上,再配上監(jiān)控程序(固化在ROM中),就構(gòu)成了一臺單板微型計算機(簡稱單板機)。,單板機,3,行業(yè)重點,單板機的I/O設(shè)備簡單,軟件資源少,使用不方便。早期主要用于微型計算機原理的教學(xué)及簡單的測控系統(tǒng),現(xiàn)在已很少使用。,4,行業(yè)重點,單片機 在一片集成電路芯片上集成微處理器、存儲器、I/O接口電路,從而構(gòu)成了單芯片微型計算機,即單片機。 Intel公司推出了MCS-51系列單片機:集成 8位CPU、4K字節(jié)ROM、128字節(jié)RAM、4個8位并口、1個全雙工串行口、

3、2個16位定時/計數(shù)器。尋址范圍64K,并有控制功能較強的布爾處理器。,單板機,單片機,5,行業(yè)重點,單片機能做什么,實物展示 用到單片機的項目經(jīng)驗介紹 手持糧庫溫度尋檢設(shè)備 畢設(shè)答辯打分器 電話臺燈 自動感應(yīng)水龍頭 凡是與控制或簡單計算有關(guān)的電子設(shè)備都可以用單片機來實現(xiàn),再根據(jù)具體實際情況選擇不同性能的單片機,如:atmel,stc,pic,avr,凌陽,80C51,arm等,6,行業(yè)重點,工業(yè)自動化:數(shù)據(jù)采集、測控技術(shù)。 智能儀器儀表:數(shù)字示波器、數(shù)字信號源、數(shù)字萬用表、感應(yīng)電流表等。 消費類電子產(chǎn)品:洗衣機、電冰箱、空調(diào)機、電視機、微波爐、手機、IC卡、汽車電子設(shè)備等。 通訊方面:調(diào)制解

4、調(diào)器、程控交換技術(shù)、手機、小靈通等。 武器裝備:飛機、軍艦、坦克、導(dǎo)彈、航天飛機、魚雷制導(dǎo)、智能武器等。 等等.,7,行業(yè)重點,怎么開始學(xué)習(xí)?,實踐第一。 補充必要的理論知識,即缺什么補什么。 做工程項目積累經(jīng)驗。(可在網(wǎng)絡(luò)上搜集題目,也可自己有什么想法大膽的去試驗),8,行業(yè)重點,預(yù)備知識,電平特性 2進制與16進制的表示及轉(zhuǎn)換 二進制數(shù)的邏輯運算 8051單片機介紹 C51基礎(chǔ)知識,9,行業(yè)重點,關(guān)于電平特性,數(shù)字電路中只有兩種電平:高和低 (本課程中)定義單片機為TTL電平: 高 +5V 低 0V RS232電平:計算機的串口 高 -12V 低+12V 所以計算機與單片機之間通訊時需要加

5、電平轉(zhuǎn)換芯片max232(實驗板上左下角)。,10,行業(yè)重點,二進制,數(shù)字電路中的兩種電平特性決定了它 0 0 6 110 1 17111 2 1081000 3 1191001 4 100101010 5 10111 1011,11,行業(yè)重點,十六進制,是二進制的簡短表示形式。 十進制中的0-15分別表示為十六進制的0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F 熟練掌握二進制與十六進制之間的轉(zhuǎn)換。 規(guī)律:一般把四個二進制數(shù)放在一起轉(zhuǎn)換成一個十六進制數(shù),轉(zhuǎn)換時先把二進制數(shù)轉(zhuǎn)換成十進制數(shù),再把十進制數(shù)轉(zhuǎn)換成十六進制數(shù)。,12,行業(yè)重點,如:0001B - 1 - 1H B表示為

6、二進制,H為十六進制 1001B - 9 - 9H 1010B - 10 - AH 0010 1100 - 44 - 2CH,13,行業(yè)重點,各種進位制的對應(yīng)關(guān)系,14,行業(yè)重點,二進制數(shù)的邏輯運算,1. “與”運算 “與”運算是實現(xiàn)“必須都有,否則就沒有”這種邏輯關(guān)系的一種運算。 運算符為“ ”, 其運算規(guī)則如下: 00=0, 01=10=0, 11=1,15,行業(yè)重點,2. “或”運算 “或”運算是實現(xiàn)“只要其中之一有,就有”這種邏輯關(guān)系的一種運算, 其運算符為“+”。 “或”運算規(guī)則如下: 0+0=0, 0+1=1+0=1, 1+1=1,16,行業(yè)重點,3. “非”運算 “非”運算是實現(xiàn)

7、“求反”這種邏輯的一種運算,如變量A的“非”運算記作 。 其運算規(guī)則如下:,17,行業(yè)重點,4. “異或”運算 “異或”運算是實現(xiàn)“必須不同, 否則就沒有”這種邏輯的一種運算, 運算符為“”。其運算規(guī)則是:,18,行業(yè)重點,80C51系列介紹, Intel的:80C31、80C51、87C51,80C32、80C52、87C52等; ATMEL的:89C51、89C52、89C2051等; Philips、華邦、Dallas 、STC Siemens(Infineon)等公司的許多產(chǎn)品 。 補充:關(guān)于型號的介紹,80C51是MCS-51系列中的一個典型品種;其它廠商以8051為基核開發(fā)出的CM

8、OS工藝單片機產(chǎn)品統(tǒng)稱為80C51系列。當(dāng)前常用的80C51系列單片機主要產(chǎn)品有:,19,行業(yè)重點,80C51的引腳封裝,總線型,非總線型,20,行業(yè)重點,21,行業(yè)重點,22,行業(yè)重點,總線(BUS)是計算機各部件之間傳送信息的公共通道。微機中有內(nèi)部總線和外部總線兩類。內(nèi)部總線是CPU內(nèi)部之間的連線。外部總線是指CPU與其它部件之間的連線。 外部總線有三種: 數(shù)據(jù)總線DB(Data Bus), 地址總線 AB(Address Bus)和控制總線 CBControl Bus)。,23,行業(yè)重點,CPU:由運算和控制邏輯組成,同時還包括中斷系統(tǒng)和部分外部特殊功能寄存器; RAM:用以存放可以讀寫

9、的數(shù)據(jù),如運算的中間結(jié)果、最終結(jié)果以及欲顯示的數(shù)據(jù); ROM:用以存放程序、一些原始數(shù)據(jù)和表格; I/O口:四個8位并行I/O口,既可用作輸入,也可用作輸出; T/C:兩個定時/記數(shù)器,既可以工作在定時模式,也可以工作在記數(shù)模式;,24,行業(yè)重點,五個中斷源的中斷控制系統(tǒng); 一個全雙工UART(通用異步接收發(fā)送器)的串行I/O口,用于實現(xiàn)單片機之間或單片機與微機之間的串行通信; 片內(nèi)振蕩器和時鐘產(chǎn)生電路,石英晶體和微調(diào)電容需要外接。最高振蕩頻率取決于單片機型號及性能。,25,行業(yè)重點,C51知識,C語言是一種編譯型程序設(shè)計語言,它兼顧了多種高級語言的特點,并具備匯編語言的功能。目前,使用C語言

10、進行程序設(shè)計已經(jīng)成為軟件開發(fā)的一個主流。用C語言開發(fā)系統(tǒng)可以大大縮短開發(fā)周期,明顯增強程序的可讀性,便于改進、擴充和移植。而針對8051的C語言日趨成熟,成為了專業(yè)化的實用高級語言。,26,行業(yè)重點,C語言作為一種非常方便的語言而得到廣泛的支持,很多硬件開發(fā)都用C語言編程,如:各種單片機、DSP、ARM等. C語言程序本身不依賴于機器硬件系統(tǒng),基本上不作修改就可將程序從不同的單片機中移植過來。 C提供了很多數(shù)學(xué)函數(shù)并支持浮點運算,開發(fā)效率高,故可縮短開發(fā)時間,增加程序可讀性和可維護性。,C-51的特點,27,行業(yè)重點,C-51與ASM-51相比,有如下優(yōu)點: 1.對單片機的指令系統(tǒng)不要求了解,

11、僅要求對8051 的存貯器結(jié)構(gòu)有初步了解; 2.寄存器分配、不同存貯器的尋址及數(shù)據(jù)類型等細節(jié)可由編譯器管理; 3.程序有規(guī)范的結(jié)構(gòu),可分成不同的函數(shù),這種方式可使程序結(jié)構(gòu)化; 4.提供的庫包含許多標準子程序,具有較強的數(shù)據(jù)處理能力; 5.由于具有方便的模塊化編程技術(shù),使已編好程序可容易地移植;,28,行業(yè)重點,C51的數(shù)據(jù)類型,基本數(shù)據(jù)類型,類型,符號,關(guān)鍵字,數(shù)的表示范圍,所占位數(shù),整型,字符型,實型,有,無,(signed) int,16,-3276832767,(signed) short,16,-3276832767,(signed) long,32,-2147483648214748

12、3647,16,unsigned int,065535,32,04294967295,unsigned long int,unsigned short int,16,065535,有,float,32,3.4e-383.4e38,有,double,64,1.7e-3081.7e308,有,char,8,-128127,無,unsigned char,8,0255,29,行業(yè)重點,C語言中的基本數(shù)據(jù)類型,類型,符號,關(guān)鍵字,數(shù)的表示范圍,所占位數(shù),整型,字符型,實型,有,無,(signed) int,16,-3276832767,(signed) short,16,-3276832767,(si

13、gned) long,32,-21474836482147483647,16,unsigned int,065535,32,04294967295,unsigned long int,unsigned short int,16,065535,有,float,32,3.4e-383.4e38,有,double,64,1.7e-3081.7e308,有,char,8,-128127,無,unsigned char,8,0255,30,行業(yè)重點,C51的數(shù)據(jù)類型擴充定義,sfr:特殊功能寄存器聲明 sfr16:sfr的16位數(shù)據(jù)聲明 sbit:特殊功能位聲明 bit:位變量聲明 例:sfr SCON

14、 = 0X98; sfr16 T2 = 0 xCC; sbit OV = PSW2;,31,行業(yè)重點,例: 數(shù)據(jù)類型 變量名 char var1; bit flags; unsigned char vextor10; int wwww; 注意:變量名不能用C語言中的關(guān)鍵字表示。,C-51數(shù)據(jù)的存儲類型,32,行業(yè)重點,C-51的包含的頭文件,通常有:reg51.h reg52.h math.h ctype.h stdio.h stdlib.h absacc.h 常用有:reg51.h reg52.h (定義特殊功能寄存器和位寄存器); math.h (定義常用數(shù)學(xué)運算);,33,行業(yè)重點,C-

15、51的運算符 與C語言基本相同: + - * / (加 減 乘 除) = (位右移 位左移) ,36,行業(yè)重點,單片機主要掌握以下幾點,最小系統(tǒng)能夠運行起來的必要條件。 1.電源 2.晶振3.復(fù)位電路 對單片機任意IO口的隨意操作 1.輸出控制電平高低2.輸出檢測電平高低。 定時器:重點掌握最常用的方式2 中斷:外部中斷、定時器中斷、串口中斷 串口通信:單片機之間、單片機與計算機間,37,行業(yè)重點,KEIL的使用,掌握KEIL工程的建立和軟件的開發(fā); 掌握KEIL中軟件仿真的基本應(yīng)用; 掌握用KEIL直接硬件仿真TX-1C單片機學(xué)習(xí)板的方法,38,行業(yè)重點,Main 函數(shù)格式:void mai

16、n()特點:無返回值,無參。任何一個C程序有且僅有一個main函數(shù),它是整個程序開始執(zhí)行的入口。例:void main() 總程序從這里開始執(zhí)行; 其他語句; ,39,行業(yè)重點,40,行業(yè)重點,41,行業(yè)重點,42,行業(yè)重點,43,行業(yè)重點,44,行業(yè)重點,45,行業(yè)重點,課后練習(xí),對照TX-1C單片機學(xué)習(xí)板原理圖寫程序 用位操作和總線操作兩種方法完成以下題目 1.熟練建立KEIL工程 2.點亮第一個發(fā)光管. 3.點亮最后一個發(fā)光管 4.點亮1、3、5、7 5.點亮二、四、五、六 6.嘗試讓第一個發(fā)光管閃爍 7.嘗試設(shè)計出流水燈程序,46,行業(yè)重點,自己動手實踐需要硬件材料,DIP40腳座一個

17、。 杜邦線,單頭帶冒,40根。 單排針 兩排。 小電路板一塊。 DS12C887 一片(舊10元,新22元)。 焊錫、,47,行業(yè)重點,單片機工作的基本時序,機器周期和指令周期 (1) 振蕩周期: 也稱時鐘周期, 是指為單片機提供時鐘脈沖信號的振蕩源的周期,TX實驗板上為11.0592MHZ。 (2) 狀態(tài)周期: 每個狀態(tài)周期為時鐘周期的 2 倍, 是振蕩周期經(jīng)二分頻后得到的。 (3) 機器周期: 一個機器周期包含 6 個狀態(tài)周期S1S6, 也就是 12 個時鐘周期。 在一個機器周期內(nèi), CPU可以完成一個獨立的操作。 (4) 指令周期: 它是指CPU完成一條操作所需的全部時間。 每條指令執(zhí)行

18、時間都是有一個或幾個機器周期組成。MCS - 51 系統(tǒng)中, 有單周期指令、雙周期指令和四周期指令。,48,行業(yè)重點,第二講,如何申請免費樣片 簡單延時程序 子程序調(diào)用 帶參數(shù)子程序設(shè)計 C51庫函數(shù)的方便調(diào)用 如何驅(qū)動蜂鳴器 如何驅(qū)動繼電器 集電極開路的概念及應(yīng)用。,49,行業(yè)重點,While (表達式)語句(內(nèi)部也可為空)特點:先判斷表達式,后執(zhí)行語句。原則:若表達式不是0,即為真,那么執(zhí)行語句。否則跳出while 語句。,50,行業(yè)重點,For (表達式1;表達式2;表達式3) 語句(內(nèi)部可為空)執(zhí)行過程:1.求解一次表達式1.2.求解表達式2,若其值為真(非0 即為真),則執(zhí)行for中

19、語句。然后執(zhí)行第3步。否則結(jié)束for 語句,直接跳出,不再執(zhí)行第3步。3.求解表達式3.4.跳到第2步重復(fù)執(zhí)行。,51,行業(yè)重點,集電極開路典型圖,52,行業(yè)重點,課后練習(xí),第一個發(fā)光管以間隔200ms閃爍 8個發(fā)光管由上至下間隔1s流動,其中每個管亮500ms,滅500ms,亮?xí)r蜂鳴器響,滅時關(guān)閉蜂鳴器,一直重復(fù)下去。 8個發(fā)光管來回流動,第個管亮100ms,流動時讓蜂鳴器發(fā)出“滴滴”聲。 用8個發(fā)光管演示出8位二進制數(shù)累加過程。 8個發(fā)光管間隔200ms由上至下,再由下至上,再重復(fù)一次,然后全部熄滅再以300ms間隔全部閃爍5次。重復(fù)此過程。 間隔300ms第一次一個管亮流動一次,第二次兩

20、個管亮流動,依次到8個管亮,然后重復(fù)整個過程。 間隔300ms先奇數(shù)亮再偶數(shù)亮,循環(huán)三次;一個燈上下循環(huán)三次;兩個分別從兩邊往中間流動三次;再從中間往兩邊流動三次;8個全部閃爍3次;關(guān)閉發(fā)光管,程序停止。,53,行業(yè)重點,第三講,數(shù)碼管是如何顯示出字符的 數(shù)碼管靜態(tài)顯示與動態(tài)顯示原理 中斷概念 單片機的定時器應(yīng)用,54,行業(yè)重點,顯示器及其接口,單片機系統(tǒng)中常用的顯示器有: 發(fā)光二極管LED(Light Emitting Diode)顯示器、液晶LCD(Liquid Crystal Display)顯示器、CRT顯示器等。LED、LCD顯示器有兩種顯示結(jié)構(gòu):段顯示(7段、米字型等)和點陣顯示(

21、58、88點陣等)。,55,行業(yè)重點,使用LED顯示器時,要注意區(qū)分這兩種不同的接法。為了顯示數(shù)字或字符,必須對數(shù)字或字符進行編碼。七段數(shù)碼管加上一個小數(shù)點,共計8段。因此為LED顯示器提供的編碼正好是一個字節(jié)。TX實驗板用共陰LED顯示器,根據(jù)電路連接圖顯示16進制數(shù)的編碼已列在下表。,共陰極,共陽極,56,行業(yè)重點,共陰數(shù)碼管碼表,0 x3f , 0 x06 , 0 x5b , 0 x4f , 0 x66 , 0 x6d , 0 1 2 3 4 5 0 x7d , 0 x07 , 0 x7f , 0 x6f , 0 x77 , 0 x7c , 6 7 8 9 A B 0 x39 , 0 x

22、5e , 0 x79 , 0 x71 , 0 x00 C D E F 無顯示,57,行業(yè)重點,LED數(shù)碼顯示方式及電路,靜態(tài)顯示方式 LED顯示器工作方式有兩種:靜態(tài)顯示方式和動態(tài)顯示方式。靜態(tài)顯示的特點是每個數(shù)碼管的段選必須接一個8位數(shù)據(jù)線來保持顯示的字形碼。當(dāng)送入一次字形碼后,顯示字形可一直保持,直到送入新字形碼為止。這種方法的優(yōu)點是占用CPU時間少,顯示便于監(jiān)測和控制。缺點是硬件電路比較復(fù)雜,成本較高。,58,行業(yè)重點,動態(tài)顯示,動態(tài)顯示的特點是將所有位數(shù)碼管的段選線并聯(lián)在一起,由位選線控制是哪一位數(shù)碼管有效。選亮數(shù)碼管采用動態(tài)掃描顯示。所謂動態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和相應(yīng)

23、的位選,利用發(fā)光管的余輝和人眼視覺暫留作用,使人的感覺好像各位數(shù)碼管同時都在顯示。動態(tài)顯示的亮度比靜態(tài)顯示要差一些,所以在選擇限流電阻時應(yīng)略小于靜態(tài)顯示電路中的。,59,行業(yè)重點,60,行業(yè)重點,61,行業(yè)重點,中斷系統(tǒng),62,行業(yè)重點,3.1 80C51的中斷系統(tǒng),3.1.1 80C51的中斷系統(tǒng)結(jié)構(gòu),一、中斷的概念 CPU在處理某一事件A時,發(fā)生了另一事件B請求CPU迅速去處理(中斷發(fā)生); CPU暫時中斷當(dāng)前的工作,轉(zhuǎn)去處理事件B(中斷響應(yīng)和中斷服務(wù)); 待CPU將事件B處理完畢后,再回到原來事件A被中斷的地方繼續(xù)處理事件A(中斷返回),這一過程稱為中斷 。,63,行業(yè)重點,MCS-51

24、單片機的中斷系統(tǒng)結(jié)構(gòu),執(zhí)行主程序,主程序,繼續(xù)執(zhí)行主程序,斷點,中斷請求,中斷響應(yīng),執(zhí)行中斷處理程序,中斷返回,64,行業(yè)重點,引起CPU中斷的根源,稱為中斷源。中斷源向CPU提出的中斷請求。CPU暫時中斷原來的事務(wù)A,轉(zhuǎn)去處理事件B。對事件B處理完畢后,再回到原來被中斷的地方(即斷點),稱為中斷返回。實現(xiàn)上述中斷功能的部件稱為中斷系統(tǒng)(中斷機構(gòu))。,65,行業(yè)重點,隨著計算機技術(shù)的應(yīng)用,人們發(fā)現(xiàn)中斷技術(shù)不僅解決了快速主機與慢速I/O設(shè)備的數(shù)據(jù)傳送問題,而且還具有如下優(yōu)點:,分時操作。CPU可以分時為多個I/O設(shè)備服務(wù),提高了計算機的利用率;,實時響應(yīng)。CPU能夠及時處理應(yīng)用系統(tǒng)的隨機事件,系

25、統(tǒng)的實時性大大增強;,可靠性高。CPU具有處理設(shè)備故障及掉電等突發(fā)性事件能力,從而使系統(tǒng)可靠性提高。,66,行業(yè)重點,80C51中斷系統(tǒng)的結(jié)構(gòu) 80C51的中斷系統(tǒng)有5個中斷源(8052有 6個) ,2個優(yōu)先級,可實現(xiàn)二級中斷嵌套 。,67,行業(yè)重點,1、(P3.2)可由IT0(TCON.0)選擇其為低電平有效還是下降沿有效。當(dāng)CPU檢測到P3.2引腳上出現(xiàn)有效的中斷信號時,中斷標志IE0(TCON.1)置1,向CPU申請中斷。,68,行業(yè)重點,2、(P3.3)可由IT1(TCON.2)選擇其為低電平有效還是下降沿有效。當(dāng)CPU檢測到P3.3引腳上出現(xiàn)有效的中斷信號時,中斷標志IE1(TCON

26、.3)置1,向CPU申請中斷。,69,行業(yè)重點,3、TF0(TCON.5),片內(nèi)定時/計數(shù)器T0溢出中斷請求標志。當(dāng)定時/計數(shù)器T0發(fā)生溢出時,置位TF0,并向CPU申請中斷。,70,行業(yè)重點,4、TF1(TCON.7),片內(nèi)定時/計數(shù)器T1溢出中斷請求標志。當(dāng)定時/計數(shù)器T1發(fā)生溢出時,置位TF1,并向CPU申請中斷。,71,行業(yè)重點,5、RI(SCON.0)或TI(SCON.1),串行口中斷請求標志。當(dāng)串行口接收完一幀串行數(shù)據(jù)時置位RI或當(dāng)串行口發(fā)送完一幀串行數(shù)據(jù)時置位TI,向CPU申請中斷。,72,行業(yè)重點,二、中斷請求標志 1、TCON的中斷標志,IT0(TCON.0),外部中斷0觸發(fā)

27、方式控制位。 當(dāng)IT0=0時,為電平觸發(fā)方式。 當(dāng)IT0=1時,為邊沿觸發(fā)方式(下降沿有效)。 IE0(TCON.1),外部中斷0中斷請求標志位。 IT1(TCON.2),外部中斷1觸發(fā)方式控制位。 IE1(TCON.3),外部中斷1中斷請求標志位。 TF0(TCON.5),定時/計數(shù)器T0溢出中斷請求標志位。 TF1(TCON.7),定時/計數(shù)器T1溢出中斷請求標志位。,73,行業(yè)重點,2、SCON的中斷標志,RI(SCON.0),串行口接收中斷標志位。當(dāng)允許串行口接收數(shù)據(jù)時,每接收完一個串行幀,由硬件置位RI。注意,RI必須由軟件清除。 TI(SCON.1),串行口發(fā)送中斷標志位。當(dāng)CPU

28、將一個發(fā)送數(shù)據(jù)寫入串行口發(fā)送緩沖器時,就啟動了發(fā)送過程。每發(fā)送完一個串行幀,由硬件置位TI。CPU響應(yīng)中斷時,不能自動清除TI,TI必須由軟件清除。,74,行業(yè)重點,一、中斷允許控制 CPU對中斷系統(tǒng)所有中斷以及某個中斷源的開放和屏蔽是由中斷允許寄存器IE控制的。,3.1.3 80C51中斷的控制,EX0(IE.0),外部中斷0允許位; ET0(IE.1),定時/計數(shù)器T0中斷允許位; EX1(IE.2),外部中斷0允許位; ET1(IE.3),定時/計數(shù)器T1中斷允許位; ES(IE.4),串行口中斷允許位; EA (IE.7), CPU中斷允許(總允許)位。,75,行業(yè)重點,二、中斷優(yōu)先級

29、控制 80C51單片機有兩個中斷優(yōu)先級,即可實現(xiàn)二級中斷服務(wù)嵌套。每個中斷源的中斷優(yōu)先級都是由中斷優(yōu)先級寄存器IP中的相應(yīng)位的狀態(tài)來規(guī)定的 。,PX0(IP.0),外部中斷0優(yōu)先級設(shè)定位; PT0(IP.1),定時/計數(shù)器T0優(yōu)先級設(shè)定位; PX1(IP.2),外部中斷0優(yōu)先級設(shè)定位; PT1(IP.3),定時/計數(shù)器T1優(yōu)先級設(shè)定位; PS (IP.4),串行口優(yōu)先級設(shè)定位; PT2 (IP.5) ,定時/計數(shù)器T2優(yōu)先級設(shè)定位。,76,行業(yè)重點,PX0(IPH.0),外部中斷0優(yōu)先級設(shè)定位; PT0(IPH.1),定時/計數(shù)器T0優(yōu)先級設(shè)定位; PX1(IPH.2),外部中斷0優(yōu)先級設(shè)定位

30、; PT1(IPH.3),定時/計數(shù)器T1優(yōu)先級設(shè)定位; PS (IPH.4),串行口優(yōu)先級設(shè)定位; PT2 (IPH.5) ,定時/計數(shù)器T2優(yōu)先級設(shè)定位。,而80C52單片機有四個中斷優(yōu)先級,即可實現(xiàn)四級中斷服務(wù)嵌套。每個中斷源的中斷優(yōu)先級由中斷優(yōu)先級寄存器IP和IPH中的相應(yīng)位的狀態(tài)來規(guī)定的 。,77,行業(yè)重點,同一優(yōu)先級中的中斷申請不止一個時,則有中斷優(yōu)先權(quán)排隊問題。同一優(yōu)先級的中斷優(yōu)先權(quán)排隊,由中斷系統(tǒng)硬件確定的自然優(yōu)先級形成,其排列如所示:,78,行業(yè)重點,設(shè)置52單片機的4個中斷源,使他們的優(yōu)順序為T1,INT1,INT0,T0.,IPH = 0X08;PT1 = 1;,IP =

31、 0X40;PX1 = 1;,79,行業(yè)重點,80C51單片機的中斷優(yōu)先級有三條原則:,CPU同時接收到幾個中斷時,首先響應(yīng)優(yōu)先級別最高的中斷請求。 正在進行的中斷過程不能被新的同級或低優(yōu)先級的中斷請求所中斷。 正在進行的低優(yōu)先級中斷服務(wù),能被高優(yōu)先級中斷請求所中斷。,為了實現(xiàn)上述后兩條原則,中斷系統(tǒng)內(nèi)部設(shè)有兩個用戶不能尋址的優(yōu)先級狀態(tài)觸發(fā)器。其中一個置1,表示正在響應(yīng)高優(yōu)先級的中斷,它將阻斷后來所有的中斷請求;另一個置1,表示正在響應(yīng)低優(yōu)先級中斷,它將阻斷后來所有的低優(yōu)先級中斷請求。,80,行業(yè)重點,3.2 80C51單片機中斷處理過程,中斷響應(yīng)條件 中斷源有中斷請求; 此中斷源的中斷允許位

32、為1; CPU開中斷(即EA=1)。 以上三條同時滿足時,CPU才有可能響應(yīng)中斷。,3.2.1 中斷響應(yīng)條件和時間,81,行業(yè)重點,3.3 80C51的定時/計數(shù)器,實現(xiàn)定時功能,比較方便的辦法是利用單片機內(nèi)部的定時/計數(shù)器。也可以采用下面三種方法:,軟件定時:軟件定時不占用硬件資源,但占用了CPU時間,降低了CPU的利用率。 采用時基電路定時:例如采用555電路,外接必要的元器件(電阻和電容),即可構(gòu)成硬件定時電路。但在硬件連接好以后,定時值與定時范圍不能由軟件進行控制和修改,即不可編程。 采用可編程芯片定時:這種定時芯片的定時值及定時范圍很容易用軟件來確定和修改,此種芯片定時功能強,使用靈

33、活。在單片機的定時/計數(shù)器不夠用時,可以考慮進行擴展。,82,行業(yè)重點,3.3.1 定時/計數(shù)器的結(jié)構(gòu)和工作原理,一、定時/計數(shù)器的結(jié)構(gòu) 定時/計數(shù)器的實質(zhì)是加1計數(shù)器(16位),由高8位和低8位兩個寄存器組成。TMOD是定時/計數(shù)器的工作方式寄存器,確定工作方式和功能;TCON是控制寄存器,控制T0、T1的啟動和停止及設(shè)置溢出標志。,83,行業(yè)重點,二、定時/計數(shù)器的工作原理,加1計數(shù)器輸入的計數(shù)脈沖有兩個來源,一個是由系統(tǒng)的時鐘振蕩器輸出脈沖經(jīng)12分頻后送來;一個是T0或T1引腳輸入的外部脈沖源。每來一個脈沖計數(shù)器加1,當(dāng)加到計數(shù)器為全1時,再輸入一個脈沖就使計數(shù)器回零,且計數(shù)器的溢出使T

34、CON中TF0或TF1置1,向CPU發(fā)出中斷請求(定時/計數(shù)器中斷允許時)。如果定時/計數(shù)器工作于定時模式,則表示定時時間已到;如果工作于計數(shù)模式,則表示計數(shù)值已滿。 可見,由溢出時計數(shù)器的值減去計數(shù)初值才是加1計數(shù)器的計數(shù)值。,84,行業(yè)重點,設(shè)置為定時器模式時,加1計數(shù)器是對內(nèi)部機器周期計數(shù)(1個機器周期等于12個振蕩周期,即計數(shù)頻率為晶振頻率的1/12)。計數(shù)值N乘以機器周期Tcy就是定時時間t 。,設(shè)置為計數(shù)器模式時,外部事件計數(shù)脈沖由T0或T1引腳輸入到計數(shù)器。在每個機器周期的S5P2期間采樣T0、T1引腳電平。當(dāng)某周期采樣到一高電平輸入,而下一周期又采樣到一低電平時,則計數(shù)器加1,

35、更新的計數(shù)值在下一個機器周期的S3P1期間裝入計數(shù)器。由于檢測一個從1到0的下降沿需要2個機器周期,因此要求被采樣的電平至少要維持一個機器周期。當(dāng)晶振頻率為12MHz時,最高計數(shù)頻率不超過1/2MHz,即計數(shù)脈沖的周期要大于2 s。,85,行業(yè)重點,3.3.2 定時/計數(shù)器的控制,80C51單片機定時/計數(shù)器的工作由兩個特殊功能寄存器控制。TMOD用于設(shè)置其工作方式;TCON用于控制其啟動和中斷申請。 一、工作方式寄存器TMOD 工作方式寄存器TMOD用于設(shè)置定時/計數(shù)器的工作方式,低四位用于T0,高四位用于T1。其格式如下:,86,行業(yè)重點,GATE:門控位。GATE0時,只要用軟件使TCO

36、N中的TR0或TR1為1,就可以啟動定時/計數(shù)器工作;GATA1時,要用軟件使TR0或TR1為1,同時外部中斷引腳或也為高電平時,才能啟動定時/計數(shù)器工作。即此時定時器的啟動多了一條件。 :定時/計數(shù)模式選擇位。 0為定時模式; =1為計數(shù)模式。 M1M0:工作方式設(shè)置位。定時/計數(shù)器有四種工作方式,由M1M0進行設(shè)置。,87,行業(yè)重點,二、控制寄存器TCON TCON的低4位用于控制外部中斷,已在前面介紹。TCON的高4位用于控制定時/計數(shù)器的啟動和中斷申請。其格式如下:,TF1(TCON.7):T1溢出中斷請求標志位。T1計數(shù)溢出時由硬件自動置TF1為1。CPU響應(yīng)中斷后TF1由硬件自動清

37、0。T1工作時,CPU可隨時查詢TF1的狀態(tài)。所以,TF1可用作查詢測試的標志。TF1也可以用軟件置1或清0,同硬件置1或清0的效果一樣。 TR1(TCON.6):T1運行控制位。TR1置1時,T1開始工作;TR1置0時,T1停止工作。TR1由軟件置1或清0。所以,用軟件可控制定時/計數(shù)器的啟動與停止。 TF0(TCON.5):T0溢出中斷請求標志位,其功能與TF1類同。 TR0(TCON.4):T0運行控制位,其功能與TR1類同。,88,行業(yè)重點,3.3.3 定時/計數(shù)器的工作方式 一、方式0 方式0為13位計數(shù),由TL0的低5位(高3位未用)和TH0的8位組成。TL0的低5位溢出時向TH0

38、進位,TH0溢出時,置位TCON中的TF0標志,向CPU發(fā)出中斷請求。,89,行業(yè)重點,定時器模式時有:Nt/ Tcy 計數(shù)初值計算的公式為: 定時器的初值還可以采用計數(shù)個數(shù)直接取補法獲得。 計數(shù)模式時,計數(shù)脈沖是T0引腳上的外部脈沖。,門控位GATE具有特殊的作用。當(dāng)GATE=0時,經(jīng)反相后使 或門輸出為1,此時僅由TR0控制與門的開啟,與門輸出1 時,控制開關(guān)接通,計數(shù)開始;當(dāng)GATE=1時,由外中斷引腳信號控制或門的輸出,此時控制與門的開啟由外中斷引腳信號和TR0共同控制。當(dāng)TR0=1時,外中斷引腳信號引腳的高電平啟動計數(shù),外中斷引腳信號引腳的低電平停止計數(shù)。這種方式常用來測量外中斷引腳

39、上正脈沖的寬度。,90,行業(yè)重點,二、方式1 方式1的計數(shù)位數(shù)是16位,由TL0作為低8位、TH0作為高8位,組成了16位加1計數(shù)器 。,計數(shù)個數(shù)與計數(shù)初值的關(guān)系為:,91,行業(yè)重點,三、方式2 方式2為自動重裝初值的8位計數(shù)方式。,工作方式2特別適合于用作較精確的脈沖信號發(fā)生器。,計數(shù)個數(shù)與計數(shù)初值的關(guān)系為:,92,行業(yè)重點,四、方式3 方式3只適用于定時/計數(shù)器T0,定時器T1處于方式3時相當(dāng)于TR1=0,停止計數(shù)。,工作方式3將T0分成為兩個獨立的8位計數(shù)器TL0和TH0 。,93,行業(yè)重點,3.3.4 定時/計數(shù)器應(yīng)用舉例 初始化程序應(yīng)完成如下工作: 對TMOD賦值,以確定T0和T1的

40、工作方式。 計算初值,并將其寫入TH0、TL0或TH1、TL1。 中斷方式時,則對IE賦值,開放中斷。 使TR0或TR1置位,啟動定時/計數(shù)器定時或計數(shù)。,94,行業(yè)重點,例 利用定時/計數(shù)器T1的方式1,產(chǎn)生10ms的定時,并使P1.0引腳上輸出周期為20ms的方波,采用中斷方式,設(shè)系統(tǒng)時鐘頻率為12 MHz。 解:1、計算計數(shù)初值X: 由于晶振為12 MHz,所以機器周期Tcy為1 s。 所以: Nt/ Tcy 10000/110000 X655361000055536D8F0H 即應(yīng)將D8H送入TH0中,F(xiàn)0H送入TL0中 2、求T1的方式控制字TMOD: M1M0=01,GATE=0,

41、C/T=0,可取方式控制字為01H;,95,行業(yè)重點,1、利用定時/計數(shù)器T0從P1.0輸出周期為1s的方波,讓發(fā)光二極管以1HZ閃爍,設(shè)晶振頻率為12MHz。 2、利用定時/計數(shù)器T1產(chǎn)生定時時鐘,由P1口控制8個發(fā)光二極管,使8個指示燈依次一個一個閃動,閃動頻率為10次/秒(8個燈依次亮一遍為一個周期),循環(huán)。 3、同時用兩個定時器控制蜂鳴器發(fā)聲,定時器0控制頻率,定時器1控制同個頻率持續(xù)的時間,間隔300ms依次輸出1,10,50,100,200,400,800, 1k(hz)的方波。 4、用定時器以間隔500MS在6位數(shù)碼管上依次顯示0、1、2、3.C、D、E、F,重復(fù)。,96,行業(yè)重

42、點,動態(tài)顯示,動態(tài)顯示的特點是將所有位數(shù)碼管的段選線并聯(lián)在一起,由位選線控制是哪一位數(shù)碼管有效。這樣一來,就沒有必要每一位數(shù)碼管配一個鎖存器,從而大大地簡化了硬件電路。選亮數(shù)碼管采用動態(tài)掃描顯示。所謂動態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和相應(yīng)的位選,利用發(fā)光管的余輝和人眼視覺暫留作用,使人的感覺好像各位數(shù)碼管同時都在顯示。動態(tài)顯示的亮度比靜態(tài)顯示要差一些,所以在選擇限流電阻時應(yīng)略小于靜態(tài)顯示電路中的。,97,行業(yè)重點,MCS-51單片機的中斷系統(tǒng)結(jié)構(gòu),執(zhí)行主程序,主程序,繼續(xù)執(zhí)行主程序,斷點,中斷請求,中斷響應(yīng),執(zhí)行中斷處理程序,中斷返回,98,行業(yè)重點,一、中斷允許控制 CPU對中斷系統(tǒng)

43、所有中斷以及某個中斷源的開放和屏蔽是由中斷允許寄存器IE控制的。,4.1 80C51中斷的控制,EX0(IE.0),外部中斷0允許位; ET0(IE.1),定時/計數(shù)器T0中斷允許位; EX1(IE.2),外部中斷0允許位; ET1(IE.3),定時/計數(shù)器T1中斷允許位; ES(IE.4),串行口中斷允許位; EA (IE.7), CPU中斷允許(總允許)位。,99,行業(yè)重點,同一優(yōu)先級中的中斷申請不止一個時,則有中斷優(yōu)先權(quán)排隊問題。同一優(yōu)先級的中斷優(yōu)先權(quán)排隊,由中斷系統(tǒng)硬件確定的自然優(yōu)先級形成,其排列如所示:,100,行業(yè)重點,4.2 80C51單片機中斷處理過程,中斷響應(yīng)條件 中斷源有中

44、斷請求; 此中斷源的中斷允許位為1; CPU開中斷(即EA=1)。 以上三條同時滿足時,CPU才有可能響應(yīng)中斷。,4.2.1 中斷響應(yīng)條件和時間,101,行業(yè)重點,定時/計數(shù)器的結(jié)構(gòu)和工作原理,一、定時/計數(shù)器的結(jié)構(gòu) 定時/計數(shù)器的實質(zhì)是加1計數(shù)器(16位),由高8位和低8位兩個寄存器組成。TMOD是定時/計數(shù)器的工作方式寄存器,確定工作方式和功能;TCON是控制寄存器,控制T0、T1的啟動和停止及設(shè)置溢出標志。,102,行業(yè)重點,4.2.2 定時/計數(shù)器的控制,80C51單片機定時/計數(shù)器的工作由兩個特殊功能寄存器控制。TMOD用于設(shè)置其工作方式;TCON用于控制其啟動和中斷申請。 一、工作

45、方式寄存器TMOD 工作方式寄存器TMOD用于設(shè)置定時/計數(shù)器的工作方式,低四位用于T0,高四位用于T1。其格式如下:,103,行業(yè)重點,GATE:門控位。GATE0時,只要用軟件使TCON中的TR0或TR1為1,就可以啟動定時/計數(shù)器工作;GATA1時,要用軟件使TR0或TR1為1,同時外部中斷引腳INT0/1也為高電平時,才能啟動定時/計數(shù)器工作。即此時定時器的啟動條件,加上了INT0/1引腳為高電平這一條件。 :定時/計數(shù)模式選擇位。 0為定時模式; =1為計數(shù)模式。 M1M0:工作方式設(shè)置位。定時/計數(shù)器有四種工作方式,由M1M0進行設(shè)置。,104,行業(yè)重點,二、控制寄存器TCON T

46、CON的低4位用于控制外部中斷,已在前面介紹。TCON的高4位用于控制定時/計數(shù)器的啟動和中斷申請。其格式如下:,TF1(TCON.7):T1溢出中斷請求標志位。T1計數(shù)溢出時由硬件自動置TF1為1。CPU響應(yīng)中斷后TF1由硬件自動清0。T1工作時,CPU可隨時查詢TF1的狀態(tài)。所以,TF1可用作查詢測試的標志。TF1也可以用軟件置1或清0,同硬件置1或清0的效果一樣。 TR1(TCON.6):T1運行控制位。TR1置1時,T1開始工作;TR1置0時,T1停止工作。TR1由軟件置1或清0。所以,用軟件可控制定時/計數(shù)器的啟動與停止。 TF0(TCON.5):T0溢出中斷請求標志位,其功能與TF

47、1類同。 TR0(TCON.4):T0運行控制位,其功能與TR1類同。,105,行業(yè)重點,定時/計數(shù)器的工作方式 一、方式0 方式0為13位計數(shù),由TL0的低5位(高3位未用)和TH0的8位組成。TL0的低5位溢出時向TH0進位,TH0溢出時,置位TCON中的TF0標志,向CPU發(fā)出中斷請求。,106,行業(yè)重點,二、方式1 方式1的計數(shù)位數(shù)是16位,由TL0作為低8位、TH0作為高8位,組成了16位加1計數(shù)器 。,計數(shù)個數(shù)與計數(shù)初值的關(guān)系為:,107,行業(yè)重點,第四課練習(xí),1.利用動態(tài)掃描方法在六位數(shù)碼管上顯示出穩(wěn)定的654321. 2.用動態(tài)掃描方法和定時器1在數(shù)碼管的前三位顯示出秒表,精確到1%秒,即后兩位顯示1%秒,一直循環(huán)下去。 3.利用動態(tài)掃描和定時器1在數(shù)碼管上顯示出從765432開始以1/10秒的速度往下遞減直至765398并保持顯示此數(shù),與此同時利用定時器0以500MS速度進行流水燈從上至下移動,當(dāng)數(shù)碼管上數(shù)減到停止時,實驗板上流水燈也停止然后全部開始閃爍,3秒后(用T0定時)流水燈全部關(guān)閉、數(shù)碼

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論