atm89s52單片機學習課件.ppt_第1頁
atm89s52單片機學習課件.ppt_第2頁
atm89s52單片機學習課件.ppt_第3頁
atm89s52單片機學習課件.ppt_第4頁
atm89s52單片機學習課件.ppt_第5頁
已閱讀5頁,還剩79頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、一、單片機概論,單片微型計算機簡稱單片機,它是把組成微型計算機的各個部件:中央處理器,儲存器,輸入輸出接口電路,定時器/計算器等,制作在一塊集成電路中,構成一個完整的微型計算機. 8位單片機占整個單片機市場的60%以上,8位單片機的舊的機種正在被淘汰,新的機型不斷涌現(xiàn).8位單片機以其功能強,品種多,正廣泛應用于各個領域,是單片機的主流機種.隨著集成電路工藝的不斷改進,8位單片機的價格也在不斷降低. 單片機的發(fā)展趨勢是: 增加存儲器容量,片內(nèi)EPROM轉(zhuǎn)變?yōu)镕LASH,存儲器編程可不同級別加密,片內(nèi)I/O管腳多功能化.,單片機的應用領域 工業(yè)方面: 電機控制,工業(yè)機器人,過程控制,數(shù)字控制 儀器

2、儀表方面: 智能儀器,醫(yī)療器械,色譜儀,示 波器 民用方面: 電子玩具,高級電視游戲機,錄像機,激光盤驅(qū)動 電訊方面: 調(diào)制解調(diào)器,智能線路運行控制. 導航與控制: 導彈控制,智能武器裝置 數(shù)據(jù)處理: 圖形終端,磁帶機,打印機 汽車方面: 點火控制,變速器控制,排氣控制,第一章 89S52單片機的結構,一、內(nèi)部結構和主要功能 二、引腳功能說明 三、時鐘、復位電路 四、I/O端口 五、存儲器配置 六、最小系統(tǒng) 七、CPU時序,89S52結構示意圖,主要性能:,片內(nèi)存儲器包含8KB的FLASH,可在線編程,檫寫次數(shù)不少于1000次 256字節(jié)片內(nèi)數(shù)據(jù)RAM 32根可編程I/0口線 8個中斷源、6個

3、中斷矢量、兩個優(yōu)先權的中斷結構 1個可編程全雙工串行接口 3個可編程定時/計數(shù)器 兩種低功耗模式分別是空閑模式和掉電模式 具有3級程序鎖定位 含有一個看門狗定時器 具有斷電標志POF 全靜態(tài)工作頻率033MHz 完全兼容MCS51產(chǎn)品,89S52引腳功能介紹,VCC +5V GND 地 ALE 地址鎖存允許 /PSEN 程序存儲器允許 EA/VPP為0訪問外部程序存儲器 為1訪問內(nèi)部程序存儲器 RST復位信號輸入 XTAL1、XTAL2 外部晶振 P0.0P0.7 I/O端口(P0口) P1.0P1.7 I/O端口(P1口) P2.0P2.7 I/O端口(P2口) P3.0P3.7 I/O端口

4、(P3口),89S52引腳圖,時鐘、復位電路,時鐘電路: 復位電路:,I/O端口P0口,1P0端口總線IO端口,雙向,開漏,數(shù)據(jù)地址分時復用,該端口除用于數(shù)據(jù)的輸入輸出外,在89S52單片機外接程序存儲器時,還分時地輸出輸入地址指令。由P0端口輸出的信號無鎖存,輸入的信息有讀端口引腳和讀端口鎖存器之分,P0端口結構,P1端口結構,P2端口結構,I/O端口P3口(雙功能口),P3.0 RXD 串行接口 P3.1 TXD P3.2 /INT0 外部中斷輸入 P3.3 /INT1 P3.4 T0 定時/計數(shù)器輸入 P3.5 T1 P3.6 /WR 外部數(shù)據(jù)讀、寫 P3.7 /RD,I/O端口P3口(

5、雙功能口),P3端口結構,SFR寄存器(1),特殊功能功能名稱地址復位后 寄存器的狀態(tài) B*通用寄存器F0H 00H A *累加器E0H 00H PSW *程序狀態(tài)寄存器 D0H 00H IP*中斷優(yōu)先寄存器 B8H00H P3*P3口數(shù)據(jù)寄存器 B0HFFH IE*中斷允許寄存器 A8H00H P2*P2口數(shù)據(jù)寄存器 A0H FFH SBUF 串行口發(fā)送/接收緩沖器 99H 不定 SCON*串行口控制寄存器 98H 00H P1*P1口數(shù)據(jù)寄存器 90H FFH,SFR寄存器(2),特殊功能 功能名稱 地址 復位后 寄存器 的狀態(tài) TH1T1計數(shù)器高8位 8DH 00H TH0 T0計數(shù)器高

6、8位 8CH 00H TL1 T1計數(shù)器低8位 8BH 00H TL0 T0 計數(shù)器低8位 8AH 00H TMOD 定時/計數(shù)器方式字寄存器 89H 00H TCON*定時控制寄存器 88H 00H PCON 波特率選擇寄存器 87H 00H DPH地址寄存器高8位 83H 00H DPL地址寄存器低8位 82H 00H SP堆棧指示器 81H 07H P0*P0口數(shù)據(jù)寄存器 80H FFH,CPU時序外部程序存儲器讀,CPU時序外部數(shù)據(jù)存儲器讀寫,第二章 89S52單片機開發(fā)入門,一、開發(fā)流程 二、開發(fā)工具 三、集成開發(fā)環(huán)境 四、舉例,Keil C51開發(fā)流程,根據(jù)任務選擇MC型號 設置工

7、程參數(shù),如頻率,優(yōu)化級別等 加入適當?shù)陌募?include “reg51.h” 編寫源代碼 調(diào)試與仿真 生成HEX文件 燒寫,二、開發(fā)工具,89S52開發(fā)板 集成開發(fā)環(huán)境 下載線軟件 常用儀器(萬用表,示波器等),下載線軟件,編程軟件,三、集成開發(fā)環(huán)境,Keil Software Inc.的uVision2,集成開發(fā)環(huán)境或者WAVE編譯環(huán)境 集成C和匯編語言源代碼編寫. 編譯連接,模擬仿真,輸出hex文件. 支持連接仿真器進行在線仿真. 標準C語言支持. 支持多級優(yōu)化 支持數(shù)百種器件.,Keil C51 uVision2,第三章 指令系統(tǒng)及匯編語言,一、指令系統(tǒng)概述 二、51單片機指令系統(tǒng)

8、 三、匯編語言程序設計舉例 四、C51程序設計舉例,一、指令系統(tǒng)概述,MCS-51系列單片機共有111條指令 按功能可分成5類指令: 數(shù)據(jù)傳送指令(29條) 算術運算指令(24條) 邏輯運算指令(24條) 控制轉(zhuǎn)移指令(17條) 位操作類指令(17條),1. 指令執(zhí)行時間快 單周期指令65條 (1us, 12MHz晶振) 雙周期指令44條 (2us , 12MHz晶振) 四周期指令2條 (4us , 12MHz晶振) 2. 指令短 單字節(jié)指令49條 雙字節(jié)指令46條 三字節(jié)指令 16條 3. 單指令實現(xiàn)字節(jié)相乘或相除運算 4. 具有豐富的位操作類指令,1、AT89系列指令系統(tǒng)特點,2、尋址方式

9、,7種尋址方式: 立即尋址 直接尋址 寄存器尋址 寄存器間接尋址 相對尋址 變址尋址 位尋址,二、51單片機指令系統(tǒng),1、指令中常用符號說明 2、數(shù)據(jù)傳送指令 3、算術運算指令 4、邏輯運算指令 5、控制轉(zhuǎn)移指令 6、位操作類指令,1、指令中常用符號說明,Rn 當前寄存器區(qū)的RoR7(其中n07)Ri 當前寄存器區(qū)中的R0和R1(其中i0,1) direct 8位直接字節(jié)地址(片內(nèi)RAM和SFR空間) #data 8位立即數(shù)。#data1616位立即數(shù)。addr1616位地址值。Addr1111位地址值。rel8位帶符號地址偏移量(128127) bit片內(nèi)RAM和SFR中的可直接尋址位 間接

10、尋址寄存器或基址寄存器的前綴 ( ) 表示括號中的內(nèi)容( ) 表示間址尋址的內(nèi)容,2、數(shù)據(jù)傳送指令(1),MOVA, Rn MOVA, direct MOVA, Ri MOVA, #data MOVRn, A MOVRn, direct MOVRn, #data MOV direct, A MOVdirect, Rn MOVdirect, direct MOVdirect, Ri MOV direct, #data MOV Ri, A MOVRi, direct,數(shù)據(jù)傳送指令(2),MOVDPTR, #data16 MOVCA, A+DPTR MOVCA, A+PC MOVXA, Ri MOV

11、XA, DPTR MOVXRi, A MOVX DPTR, A PUSHdirect POPdirect XCHA, Rn XCHA, direct XCHA, Ri XCHDA, Ri SWAPA,3、算術運算指令(1),ADDA, Rn ADDA, direct ADDA, Ri ADDA, #data ADDCA, Rn ADDCA, direct ADDCA, Ri ADDCA, #data SUBBA, Rn SUBBA, direct SUBBA, Ri SUBBA, #data,算術運算指令(2),INCA INCRn INCRi DECA DECRn DECdirect DEC

12、Ri INCDPTR MULAB DIVAB DAA,4、邏輯運算指令(1),ANLA, Rn ANLA, direct ANLA, Ri ANLA, #data ANLdirect, A ANLdirect, #data ORLA, Rn ORLA, direct ORLA, Ri ORLA, #data ORLdirect, A ORLdirect, #data,邏輯運算指令(2),XRLA, Rn XRLA, Ri XRLA, #data XRLdirect, A XRLdirect, #data CLRA CPLA RLA RLCA RRA RRCA,5、控制轉(zhuǎn)移指令,ACALLadd

13、r11 LCALL addr16 RET RETI AJMPaddr11 LJMPaddr16 SJMPrel JMPA+DPTR JZrel JNZrel CJNEA, direct, rel CJNEA, #data, rel CJNERi, #data, rel DJNZRn, rel DJNZdirect, rel NOP,6、位操作類指令,CLRC CLRbit SETBC SETBbit CPLC CPLbit ANLC, bit ANLC, /bit ORLC, bit ORLC, /bit MOVC, bit MOVbit, C JCrel JNCrel JBbit, rel

14、JNBbit, rel JBCbit, rel,三、匯編語言程序設計應用舉例,舉例: 設計一個指示器,要求當指示按鍵按下后,指示燈發(fā)光。 設P1.0口驅(qū)動指示燈,P1.1口作為指示按鍵輸入。 電路設計見圖,ORG00 LJMPSTART ORG0100H START:JBP1.1, $ JNBP1.1, $ SETB P1.0 SJMPLOOP1 SOUND: MOVR7, #5 SETBP1.0 MOVR0, #10 LCALL DELAY CLRP1.0 MOVR0, #20 LCALL DELAY DJNZR7, SOUND1 RET,DELAY:MOV R1,#100 ;100ms D

15、ELAY1:MOV R2,#200 ;1ms DELAY2:NOP NOP NOP DJNZR2, DELAY2 DJNZR1, DELAY1 DJNZR0, DELAY RET,#include “reg51.h” #define uchar unsigned char sbit pinSW=P12; sbit pinBell=P10; sbit pinLed=P11; void Delay_1ms(uint S_DelayTime) uchar S_j; while (S_DelayTime!=0) S_DelayTime-; for(S_j=0;S_j115;S_j+) void mai

16、n(void) int Delay=0; pinLed=1; pinBell=1; while(1) if(!pinSW) Delay_1ms(2);,第四章 51單片機的功能單元介紹,一、定時/計數(shù)器 二、串行接口 三、中斷系統(tǒng),一、定時/計數(shù)器,定時器計數(shù)器簡稱定時器,其作用主要包括產(chǎn)生各種時標間隔、記錄外部事件的數(shù)量等,是微機中最常用、最基本的部件之一。 803l單片機有2個16位的定時器計數(shù)器: 定時器0(T0)和定時器1(T1)。T0由2個定時寄存器TH0和TL0構成,T1則由TH1和TL1構成,它們都分別映射在特殊功能寄存器中,從而可以通過對特殊功能寄存器中這些寄存器的讀寫來實現(xiàn)對

17、這兩個定時器的操作。 用于定時器工作時,每一個機器周期定時寄存器自動加l,所以定時器也可看作是計量機器周期的計數(shù)器。由于每個機器周期為12個時鐘振蕩周期,所以定時的分辨率是時鐘振蕩頻率的112。 用于計數(shù)器工作時,只要在單片機外部引腳T0(或T1)有從1到0電平的負跳變,計數(shù)器就自動加1。計數(shù)的最高頻率一般為振蕩頻率的l24,1、控制字,TF 中斷請求標志(T0、T1),高電平有效,TMOD控制字,2、方式0,13位方式,由TL1的低5位和TH1的8位構成13位計數(shù)器(TL1的高3位無效),3、方式1,16位方式,由TL1的8位和TH1的8位構成16位計數(shù)器,4、方式2,8位自動裝入時間常數(shù)方

18、式。由TL1構成8位計數(shù)器,THl僅用來存放時間常數(shù)。啟動T1前,TL1和TH1裝入相同的時間常數(shù),當TL1計滿后,除定時器回零標志TF1置位,具有向CPU請求中斷的條件外,TH1中的時間常數(shù)還會自動地裝入TL1,并重新開始定時或計數(shù),5、方式3,2個8位方式。工作方式3只適用于定時器0。如果使定時器1為工作方式3,則定時器1將處于關閉狀態(tài)。,6、匯編編程舉例,利用定時器/計數(shù)器每隔1ms控制產(chǎn)生寬度為2個機器周期的負脈沖,由P1.0送出,設時鐘頻率為12MHz ORG 0000H AJMPMAIN ORG000BH AJMPT0INT ORG100H MAIN:MOV TH0,#0DDH M

19、OV TL0,#18H SETBTRO LOOP:SJMPLOOP ORG200H T0INT:CLRP1.0 SETBP1.0 MOVTH0,#0DDH MOVTL0,#18H RETI,7、C51編程舉例,#include sbit pinPulse=P10; void T0Int(void); void T0Int(void) interrupt 1 pinPulse=0; pinPulse=1; TH0=0 xdd; TL0=0 x18; void main(void) TH0=0 xdd; TL0=0 x18; ET0=1; EA=1; TR0=1; while(1); ,二、串行接

20、口,MCS51單片機具有一個采用通用異步接收器發(fā)送器(UART)工作方式的全雙工串行通信接口,可以同時發(fā)送、接收數(shù)據(jù)。它具有兩個相互獨立的接收、發(fā)送緩沖器,兩個緩沖器共用一個地址(99H),發(fā)送緩沖器只能寫入,不能讀出,接收緩沖器只能讀出,不能寫入。同時,該串行接口也可作為同步移位寄存器使用,其中幀格式可有8位、10位和11位,并能置成多種波特率。,1、異步通信格式,波特率(Baud Rate)波特率,即數(shù)據(jù)傳送速率,表示每秒鐘傳送二進制代碼的位數(shù),它的單位是位秒。舉例:數(shù)據(jù)傳送的速率每秒為120個字符,每個字符包含10個代碼位(一個起始位、一個停止位、8個數(shù)據(jù)位),這時,傳送的波特率為:10

21、120位秒1200波特(bps),SM0 SM1 工作方式 說明 波特率 0 0 0 同步移位寄存器 fosc/12 0 1 1 10位異步收發(fā) 可變 1 0 2 11位異步收發(fā) fosc/32 或fosc/64 1 1 3 10位異步收發(fā) 可變,.REN:允許接收控制位,用軟件置1或清0 TI: 發(fā)送中斷標志位,軟件清0 RI: 接收中斷標志位,軟件清0 TB8: 準備發(fā)送的第9位數(shù)據(jù)位,軟件置1或0 RB8: 接收到的第9位數(shù)據(jù) SM2: 用于主從式多機通信的控制位。若SM21,則允許多機通信,2、串行口控制寄存器SCON (98H),4、關于多機通信,SM2:在工作方式2和工作方式3中,

22、用于主從式多機通信的控制位。若SM21,則允許多機通信。多機通信規(guī)定,第9位數(shù)據(jù)(D8)為l,說明本幀為地址;若第9位數(shù)據(jù)為0,則本幀為數(shù)據(jù),當一個MCS51(主機)與多個MCS51(從機)通信時,所有從機的SM2都置為1。主機首先發(fā)送一幀地址,即某從機地址編號,其中第9位為1,被尋址的某個從機收到地址信息后,將其中的第9位裝入RB8。從機依據(jù)RB8的值來決定從機是否再接收主機的信息。若RB80,說明是數(shù)據(jù)幀,則使接收中斷標志位RI0,信息丟失;若RB81,說明是地址幀,數(shù)據(jù)裝入接收發(fā)送緩沖器,并置中斷標志RI1,中斷所有從機,被尋址的目標從機使SM20,以接收主機發(fā)來的一幀數(shù)據(jù),其它從機仍然

23、保持SM21。若SM20,則不屬于多機通信情況,接收到一幀數(shù)據(jù)后,無論第9位是0還是1,都置中斷標志RI1,接收到的數(shù)據(jù)裝入接收發(fā)送緩沖器中。工作方式1時,若SM21,則只有接收到有效停止位時,中斷標志RI才置1,以便接收下一幀數(shù)據(jù)。在工作方式0時,SM2應為0。,三、中斷系統(tǒng),1、中斷結構圖 2、中斷控制寄存器 3、中斷響應條件 4、中斷響應過程 5、中斷響應示意圖 6、匯編編程舉例 7、C51編程舉例,1、中斷結構圖,2、中斷控制寄存器,同級內(nèi)部優(yōu)先級 外部中斷0 最高 定時器0 外部中斷1 定時器1 串行口 最低,3、中斷的響應條件,中斷源有請求,CPU允許所有中斷源請求(EA1),中斷

24、允許寄存器IE相應位置1。這樣,在每個機器周期內(nèi),單片機對所有中斷源都進行順序檢測,并可在任一個周期的S6期間,找到所有有效的中斷請求,并對其優(yōu)先級排隊,只要滿足下列條件: 1.無同級或高級中斷正在服務;2.現(xiàn)行指令執(zhí)行到最后一個機器周期且已結束;3.若現(xiàn)行指令為RETI或需訪問特殊功能寄存器IE或IP的指令時,執(zhí)行完該指令且緊隨其后的另一條指令也已執(zhí)行完。 單片機便在緊接著的下一個機器周期S1期間響應中斷,否則將丟棄中斷查詢的結果。,4、中斷響應過程,單片機一旦響應中斷,首先置位響應的優(yōu)先級有效觸發(fā)器,然后執(zhí)行一個硬件子程序調(diào)用,把斷點地址壓入堆棧保護,然后將對應的中斷入口地址值裝入程序計數(shù)

25、器PC,使程序轉(zhuǎn)向該中斷人口地址,以執(zhí)行中斷服務程序。單片機響應中斷后,只保護斷點而不保護現(xiàn)場(如累加器A、程序狀態(tài)字寄存器PSW的內(nèi)容),且不能清除串行口中斷標志TI和RI,也無法清除外部中斷請求信號INT0和INT1。故用戶在編制程序時應予以考慮。,5、中斷響應示意圖,特定程序入口地址: 0000H 復位 中斷向量地址 中斷源0003H 外部中斷0 000BH 定時器0 0013H 外部中斷1 001BH 定時器1 0023H 串行口,6、匯編編程舉例,利用定時器T0定時,在P1.0端口輸出周期性的方波信號,方波周期為2ms,已知晶振頻率為6MHz 。 ORG0000H LJMPSTART ORG000BH LJMPCTC0 ORG0100H START:MOVTMOD,#01H MOVTL0,#18H MOVTH0,#0FCH SETBEA SETBET0 HERE:SJMPHERE CTC0:MOVTL0,#18H MOVTH0,#0FCH CPLP1.0 RETI,7、C51編程舉例,#include sbit pinPulse=P10 void T0Int(void) interrupt 1 TL0=0 x18; TH0

溫馨提示

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

評論

0/150

提交評論