大學(xué)課件單片機綜述_第1頁
大學(xué)課件單片機綜述_第2頁
大學(xué)課件單片機綜述_第3頁
大學(xué)課件單片機綜述_第4頁
大學(xué)課件單片機綜述_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1,第一章 單片機綜述 (1.5),+ 外設(shè)(鍵盤、顯示、AD、DA),1、單片機的概念(單片微型計算機、微控制器) 將CPU、存儲器、定時器/計數(shù)器、多種I/O接口等電路集成在一塊芯片上所構(gòu)成的計算機。 2、單片機的內(nèi)部結(jié)構(gòu):,2,2.1 單片機的內(nèi)部結(jié)構(gòu),由運算器(ALU)、控制器和專用寄存器組構(gòu)成,程序計數(shù)器PC:存放下一條需要執(zhí)行的指令內(nèi)存地址,自動加1。,16位、決定了可以尋址的程序存儲器的空間64KB。 上電后初始值是0000H,所以從該地址開始執(zhí)行程序。,累加器A、B 程序狀態(tài)字PSW,堆棧指針SP,數(shù)據(jù)指針DPTR,3,存儲器結(jié)構(gòu)-ROM,8051的內(nèi)部ROM 4K B; 80

2、31沒有內(nèi)部ROM。 如果使用8051,/EA引腳如何連接?如果片內(nèi)ROM用完了怎么辦?也就是說當(dāng)PC值為多少的時候,會轉(zhuǎn)到片外ROM執(zhí)行? 內(nèi)部ROM和外部ROM的最大尋址空間多大?決定于哪個寄存器?,單片機的存儲器 有ROM、RAM之分;還有片內(nèi)、片外之分,4,存儲器部分片內(nèi)RAM,8051片內(nèi)RAM 128字節(jié)(地址00-7FH),片外RAM 可擴(kuò)展64KB(地址0000H-FFFFH)。共同占用部分訪問時用MOV和MOVX指令區(qū)別。 片內(nèi)RAM分為:(1)工作寄存器區(qū)(00H-1FH)4組R0-R7 (2)位尋址區(qū)(20H-2FH):兩種訪問方法。 (3)便箋區(qū)(30H-7FH),5,

3、6,上電后,默認(rèn)使用的是哪一組工作寄存器?地址是多少?如果要更改工作寄存器的地址,使用什么寄存器、什么指令?,7,7FH 便箋區(qū) 30H,2FH 位尋址區(qū) 20H,1FH 工作寄存器區(qū) 00H,1、位尋址區(qū)是指 20H2FH單元,共16個單元。 2、 位尋址區(qū)的 16個單元(共計128位)的每1位都有一個8位表示的位地址, 位地址范圍為00H1FH。 4、 同樣, 位尋址的RAM單元也可以按字節(jié)操作作為一般的數(shù)據(jù)緩沖 區(qū)。 兩種尋址方法:假如尋找0B位,可以用 SETB 0BH; SETB 21H.3;,8,7FH 真正RAM區(qū) 00H,FFH SFR區(qū) 80H,1、高128B的RAM單元中有

4、21個單元可用,這21個分散在高128B的地址空間內(nèi),分別是A,B,PSW,SP,DPH,DPL,P0,P1,P2,P3,IP,IE,TCON,TMOD,TH0,TL0,TH1,TL1,SCON,SBUF,PCON。 2、11個可以按位尋址。規(guī)律:地址可以被8整除。,3 特殊功能寄存器區(qū)(SFR):有特殊用途的寄存器的集合。參見P58表2-3、圖2-6,9,控制引腳的功能,單片機最小系統(tǒng)的組成,10,3、控制線,RST復(fù)位信號 需要讓8051復(fù)位時,給該引腳高電平,并保持24個時鐘周期。,地址鎖存允許/編程線 有外部存儲器:訪問外存時鎖存低8位地址 無外部存儲器時,ALE輸出為晶振6分頻的脈沖

5、序列,可用作外部時鐘源;,片外ROM選通線。MOVC命令時自動在該腳產(chǎn)生負(fù)脈沖,選通外部ROM,-允許訪問片外存儲器/編程電源線) /EA=1 從內(nèi)部開始執(zhí)行程序; /EA=0 只訪問外程序存儲器;,11,7.上電自動復(fù)位和手動復(fù)位,上電復(fù)位,按鍵電平復(fù)位,復(fù)位在RST引腳上保持24個震蕩周期(即兩個機器周期)以上的高電平,習(xí)題,12,第六章 MCS-51的中斷系統(tǒng),(1)什么是中斷,中斷的作用是什么?,13,80C51中斷系統(tǒng)結(jié)構(gòu)示意圖,14,15,中斷相關(guān)的幾個重要SFR,3)中斷允許寄存器IE(A8H),16,4)中斷優(yōu)先級寄存器IP(B8H),5)定時器方式控制寄存器TMOD(89H

6、不能位尋址),同級中斷的優(yōu)先級順序 INT0 T0 INT1 T1 串行口。,17,外部中斷初始化步驟,3、開中斷,2、設(shè)立優(yōu)先級,1、設(shè)立觸發(fā)方式(電平or邊沿),例6.1 請寫出/INT1為低電平觸發(fā) 和高中斷優(yōu)先級的中斷系統(tǒng)初始化程序 CLRIT1 ;電平觸發(fā) IT1 = 0; SETBEX1 EX1 = 1; SETBPX1 PX1 = 1; SETBEA EA = 1;,18,、,TCON(模式控制寄存器):用來設(shè)置定時器/計數(shù)器的操作模式; TMOD(方式寄存器):用來控制定時器的啟動與停止。 TH0、TL0、TH1、TL1:兩個16位加法計數(shù)器 T0 和 T1 均可分成2個獨立的

7、8位計數(shù)器,用于存放定時或計數(shù)的初值,并用作加1的計數(shù)。 與定時器/計數(shù)器相關(guān)的輸入引腳有四個: T0、T1、 、,。,5.MCS-51定時器邏輯結(jié)構(gòu)與相關(guān)寄存器,19,20,控制寄存器TCON是一個8位寄存器,既可以字節(jié)尋址也可以位尋址,字節(jié)地址為88H,位尋址的地址為88H8FH。其格式為:,TF1和TF0:分別為T1和T0的溢出標(biāo)志。當(dāng)定時器/計數(shù)器計滿產(chǎn)生溢出時,由硬件自動置“1”,可申請中斷。 TR1和TR0:為定時器/計數(shù)器T1和T0的啟動、停止控制位。 IE1和IE0:外部中斷1( )和外部中斷0( )的中斷請求標(biāo)志位。當(dāng)外部中斷源有請求時其對應(yīng)的中斷標(biāo)志位置“1”。 IT1和I

8、T0:為外部中斷1和外部中斷0的觸發(fā)方式選擇位。ITi設(shè)置為“0”時為電平觸發(fā)方式;設(shè)置為“1”時為邊沿觸發(fā)方式。 系統(tǒng)復(fù)位時,TCON被清0。,控制寄存器TCON(P.109),21,方式控制寄存器TMOD是一個8位寄存器,字節(jié)地址為89H,只能用字節(jié)傳送指令來設(shè)置定時器的工作方式,系統(tǒng)復(fù)位時TMOD所有位均為0。其格式為,(1)GATE:門控位。 GATE=1時,定時器/計數(shù)器由外部中斷引腳 和 TRi共同來啟動。 當(dāng) 引腳為高電平時,TRi=1,啟動定時器/計數(shù)器Ti ; TRi=0,定時器/計數(shù)器 Ti 停止工作。 GATE=0時,僅由TRi來啟動定時器/計數(shù)器,又稱為軟件啟動。 TR

9、i=1,定時器/計數(shù)器Ti啟動開始工作; TRi=0,定時器/計數(shù)器Ti停止工作。,、,方式寄存器TMOD,(2) :功能選擇位。 當(dāng) =0時設(shè)置為定時器方式,計數(shù)脈沖由內(nèi)部提供,計數(shù)周期等于機器周期。 當(dāng) =1時設(shè)置為計數(shù)器方式,計數(shù)脈沖為外部引腳T0或T1引入的外部脈沖信號。,22,6.定時器/計數(shù)器有四種工作方式(P.109-),表 定時器/計數(shù)器T0、T1的四種工作方式,23,初值設(shè)定-關(guān)鍵,為什么要給定時器預(yù)設(shè)初值?如何確定預(yù)設(shè)初值是多少呢?,16位計數(shù)方式,0,65535,定時時間65536us,定時時間50000us,X,定時時間50000us,X=65536-50000=155

10、36=3CB0H,MOV TH0, #3CH MOV TL0, #0B0H,定時時間:開始計數(shù) 溢出,24,定時器初始化編程格式,初始化編程格式:,TMOD = x ;選擇工作方式 THx = 0 x#;裝入Tx時間常數(shù) TLx= 0 x# ETx = 1;開Tx中斷 EA = 1;開總中斷 TRx = 1;啟動Tx定時器,25,例:若單片機時鐘頻率為12MHz,請計算定時100us所需的定時器初值,并寫出初始化程序,各種方式定時時間比較: 方式0:213 *1us=8192us=8.192ms 方式1:216 *1us=65.536ms 方式2、方式3:28 *1us=0.256ms 方式0

11、時:(213 TC)*1us=100us TC=1F9CH;TH0=FCH、TL0=1CH 方式1:(216 TC)*1us=100us TC=FF9CH 方式2: (28-TC)*1us=100us TC=009CH,定時器/計數(shù)器例程,1 根據(jù)時鐘頻率計算機器周期 2將定時時間與各種方式最大時間比較 3、選擇合適的方式,求出初值 4、寫出初始化程序,26,中斷程序格式,Sbit LED = P10; Void main() IT0 = 0; EX0 = 1; EA = 1; while(1); Void Int0_Int() interrupt 0 LED = !LED; ,27,定時器例

12、程,例7.11 設(shè)8051時鐘頻率12MHz,編寫程序令P1.0引腳輸出2S的方波程序,sbit Pulse = P10; unsigned char Cnt_50ms; Void T1_Init(void) TMOD = 0 x10; TH1 = 0 x3c; TL1 = 0 xb0; ET1 = 1; EA = 1; TR1 = 1; ,Void T1_Int() interrupt 3 TH1 = 0 x3c; TL1 = 0 xb0; if(Cnt_50ms = 20) Cnt_50ms = 0; Pulse = Pulse; ,Void main() T1_Init(); while

13、(1); ,28,計數(shù)器例程,分析:T1工作在方式2,200個脈沖產(chǎn)生一次溢出,所以,256-200=56 ;C=38H。那么TH0=TL0=38H。,利用T1的方式2對外部信號計數(shù),要求每計滿200個數(shù),將P1.0引腳取反。,Sbit Pin = P10; Void main() TMOD = 0 x60; TH1 = 0 x38; TL1 = 0 x38; ET1 = 1; EA = 1; TR1 = 1; Void T1_Int() interrupt 3 Pin = Pin; ,29,第八章 MCS-51對AD和DA的接口,ADC0809、DAC0832的作用是什么?什么是分辨率、什么

14、是轉(zhuǎn)換精度?這兩款芯片的分辨率、轉(zhuǎn)換精度分別是多少?,DAC0832和MCS51單片機的連接方法有:直通方式、單緩沖方式、和雙緩沖方式。 (兩個鎖存器處于不同的導(dǎo)通關(guān)閉狀態(tài)),30,其內(nèi)部結(jié)構(gòu)和引腳功能如下圖所示:,數(shù)模轉(zhuǎn)換器-DAC0832,DAC0832結(jié)構(gòu)引腳圖,緩沖器,31,如圖所示連接是那種接口方式? DAC0832的地址應(yīng)該是多少? 使用什么樣的指令啟動DAC轉(zhuǎn)換? 如果要用該圖原理產(chǎn)生三角波、鋸齒波分別該如何寫程序?,32,ADC0809芯片內(nèi)部結(jié)構(gòu) 以及引腳功能,START CLOCK,33,MCS-51對ADC0809的接口,從該圖上可以獲得的信息: 1、要啟動IN0的AD轉(zhuǎn)

15、化,需要用命令 MOV DPTR,#FEF8H MOVX DPTR,A 2、要讀出轉(zhuǎn)化后的數(shù)據(jù) 需要使用命令 MOV DPTR,#FEF8H MOVX A,DPTR 3、8個通道的選通地址分別是FEF8 FEFF,34,第9章 MCS-51 的串行通信,MCS-51含有一個可編程全雙工串行通訊接口,能同時進(jìn)行數(shù)據(jù)的發(fā)送和接收,也可以作為一個同步移位寄存器使用。,MOV A , SBUF ;接收數(shù)據(jù) MOV SBUF , A ;發(fā)送數(shù)據(jù),35,單片機串口相關(guān)知識回顧,(1) MCS-51串行口的原理結(jié)構(gòu)圖,36,單片機串口相關(guān)知識回顧,(2) 串行口控制寄存器SCON,D7 D6 D5 D4 D

16、3 D2 D1 D0,D7 D6 D5 D4 D3 D2 D1 D0,(3) 特殊功能寄存器PCON,37,單片機串口相關(guān)知識回顧,(4) 串口通信的波特率,對于方式0,波特率是固定的,為單片機時鐘的1/12,即fosc/12。 對于方式2,波特率有兩種可供選擇,即fosc/32和fosc/64。對應(yīng)于以下公式: 波特率=fosc(2SMOD)/64 對于方式1和方式3,波特率都由定時器T1的溢出率來決定,對應(yīng)于以下公式: 波特率=(2SMOD/32)(定時器T1的溢出率) 而定時器T1的溢出率則和所采用的定時器工作方式有關(guān),并可用以下公式表示: 定時器T1的溢出率=fosc/12(2n-X)

17、,38,對于方式1和方式3,波特率由定時器/計數(shù)器T1的溢出率和SMOD決定,即由下式確定: 波特率=(2SMOD /32 )定時器/計數(shù)器T1溢出率 計算溢出率:溢出率即定時時間的倒數(shù)。 機器周期T=1/(fosc/12) 定時時間=(2K - 初值)*T,實際使用串行通信時,要首先確定波特率才能進(jìn)行雙方的通信。 根據(jù)波特率計算定時器T1的計數(shù)初值。 波特率=(2SMOD /32 )定時器/計數(shù)器T1溢出率 進(jìn)行定時器的初始化。通常使用T1的方式2作為波特率發(fā)生器 TMOD、TCON、TH1=TL1=?、關(guān)T1中斷、啟動定時 進(jìn)行串行口初始化。SCON、PCON(SMOD),39,其格式如下

18、: 各位的意義如下: SM0(SCON.7),SM1(SCON.6)串行口工作方式選擇位 。其功能見表。 SM2(SCON.5)允許方式2、3中的多處理機通信位。 方式0時,SM20。 方式1時,若SM2l,只有接收到有效的停止位,接收中斷RI才置1。而當(dāng)SM20時,則不論接收到的笫九位數(shù)據(jù)是”0” 或”1” ,都將前八位數(shù)據(jù)裝入SBUF中,并申請中斷。,2. 串行口狀態(tài)控制寄存器 SCON(P122) 串行口狀態(tài)控制寄存器SCON用來控制串行通信的方式選擇、接收,指示串行口的中斷狀態(tài)。寄存器SCON既可字節(jié)尋址也可位尋址,字節(jié)地址為98H,位地址為98H9FH。,40,串行口工作方式選擇 (

19、P.122),41, 電源控制寄存器 PCON(P.123) 電源控制寄存器PCON僅有幾位有定義,其中最高位SMOD與串行口控制有關(guān),其它位與掉電方式有關(guān)。寄存器PCON的地址為87H,只能字節(jié)尋址。其格式如下: SMOD(PCON.7)串行通信波特率系數(shù)控制位。 當(dāng)SMOD1時,使波特率加倍。復(fù)位后,SMOD0。,42,讀SBUF(MOVA,SBUF),訪問接收數(shù)據(jù)寄存器;寫SBUF(MOV SBUF,A),訪問發(fā)送數(shù)據(jù)寄存器。, 串行數(shù)據(jù)寄存器SBUF 串行數(shù)據(jù)寄存器SBUF包含在物理上是隔離的兩個8位寄存器:發(fā)送數(shù)據(jù)寄存器和接收數(shù)據(jù)寄存器,但是它們共用一個地址99H。其格式如下:,43

20、,3.串行口的通信波特率(P.125),方式0:波特率固定,fosc/12 方式1:波特率可變,由定時器控制 方式2:波特率為fosc/64或fosc/32 波特率2SMOD/64 SMOD=1或0 方式3:波特率可變,由定時器控制,44,可變波特率的計算(方式1,3),波特率,SMOD為PCON寄存器的最高位,定時器的溢出率:單位時間定時器溢出的次數(shù);,溢出率為溢出周期的倒數(shù),溢出周期:定時器溢出一次所需的時間,45,當(dāng)定時器1作波特率發(fā)生器時,通常選用定時工作方式2(8位自動加載)。 設(shè)X為計數(shù)初值,則 溢出周期(定時時間),XM計數(shù)值Mt/TM(fosct)/12,定時器T1溢出率,46

21、,通常是知道波特率,求計數(shù)初值X,實際使用: 1)首先確定波特率 2)然后計算定時器1的計數(shù)初值 3)然后進(jìn)行定時器的初始化,SMOD值可以通過: MOV PCON #00H 或 MOV PCON #80H 設(shè)定,47,串行口工作之前,應(yīng)對其進(jìn)行初始化,主要是設(shè)置產(chǎn)生波特率的定時器1、串行口控制和中斷控制。具體步驟如下: 確定串行口控制(編程SCON寄存器); 確定T1的工作方式(編程TMOD寄存器); 計算T1的初值,裝載TH1、TL1; 啟動T1(編程TCON中的TR1位); 串行口在中斷方式工作時,要進(jìn)行中斷設(shè)置(編程IE、IP寄存器)。 初始化后,設(shè)置串口工作。 發(fā)送:直接寫SBUF,

22、查詢TI/中斷 接收:REN置1,查詢RI/中斷,(五)串行口使用步驟,48,例7-1 設(shè)時鐘fosc=11.0592MHZ,要設(shè)置串行通信的波特率為4800bps,波特率不倍增,串行口方式1,則初始化程序為:,Void Uart_Init(void) TH1 = 0 xfa; TL1 = 0 xfa; TMOD = 0 x20; TR1 = 1; SM0 = 0; SM1 = 1; REN = 1; ,49,要求:單片機串口通信的應(yīng)用,通過串口,電腦和單片機系統(tǒng)進(jìn)行通信。電腦作為上位機,向下位機單片機系統(tǒng)發(fā)送十六進(jìn)制或者ASCLL碼,單片機系統(tǒng)接收后,用LED 顯示接收到的數(shù)據(jù)和向上位機發(fā)回

23、原樣數(shù)據(jù)。,50,程序: #include unsigned char dat; /用于存儲單片機接收發(fā)送緩沖寄存器SBUF 里面的內(nèi)容 sbit gewei=P13; /個位選通定義 sbit shiwei=P12; /十位選通定義 unsigned char code table=0 x3f,0 x06,0 x5b,0 x4f,0 x66, 0 x6d,0 x7d,0 x07, 0 x7f,0 x6f; void Delay(unsigned int tc) /延時程序 while( tc != 0 ) unsigned int i; for(i=0; i100; i+); tc-; void LED( ) /LED 顯示接收到的數(shù)據(jù)(十進(jìn)制) shiwei=0; P0=tabledat/10; Delay(5);,51,續(xù)前頁: shiwei=1; gewei=0; P0=tabledat%10; Delay(5); gewei=1; void Init_Com(void) /功能:串口初始化,波特率9600,方式1 TMOD = 0 x20; PCON = 0 x00; SCON = 0 x50; TH1 = 0 xFd; TL1 = 0 xFd; TR1 = 1;

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論