msc-51單片機(jī)_第1頁
msc-51單片機(jī)_第2頁
msc-51單片機(jī)_第3頁
msc-51單片機(jī)_第4頁
msc-51單片機(jī)_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、單元二 MCS-51單片機(jī)內(nèi)部結(jié)構(gòu),2.1 任務(wù)一 單燈受控閃爍,2.1.1 硬件電路與工作原理 2.1.2 控制程序 2.1.3 源程序編輯、編譯、下載 2.1.4 相關(guān)知識,返回主目錄,2.1 單燈受控閃爍 學(xué)習(xí)目標(biāo):過學(xué)習(xí)任務(wù)一的完成方法,熟悉mcs-51單片機(jī)的內(nèi)部結(jié)構(gòu),掌握mcs-51單片機(jī)各組成部分的功能和特點(diǎn) 。 任務(wù)描述: 單片機(jī)上電工作時(shí),發(fā)光二極管按1HZ左右頻率閃爍,按鍵S1后在原狀態(tài)基礎(chǔ)上停止5秒,再按原頻率閃動 。,2.1.1 硬件電路與工作原理,1.硬件電路,2.工作原理 從圖上可以看出,當(dāng)P1.0P1.7中某個(gè)引腳輸出低電平時(shí),則發(fā)光二極管上有電流流過,發(fā)光二極管

2、發(fā)光,否則,當(dāng)對應(yīng)引腳為高電平時(shí),發(fā)光二極管上無電流流過,發(fā)光二極管熄滅。S1S4由于按鍵一端接地,當(dāng)按鍵按下時(shí),對應(yīng)的引腳被拉成低電平。單片機(jī)通過查詢這幾根口線的高低電平狀態(tài),就知道對應(yīng)的按鍵是否按下。,1.主程序流程圖,2.1.2 控制程序,2.控制程序,ORG 0000H LJMP MAIN ORG 0003H CLR 20H.0 RETI ORG 000BH LJMP DELAY MAIN: SETB 20H.0 MOV TMOD,#01H MOV TL0,#00H MOV TH0,#4CH MOV B,#20 SETB IT0 SETB EA SETB EX0,ORG、END等偽指令

3、將在核心模塊的單元三、四中詳細(xì)講解,SETB ET0 SETB PX0 MOV P1,#00H SETB TR0 BEGIN:JB 20H.0,SHOW MOV B,#250 CJNE B,#00,$ MOV A,P1 CPL A MOV P1,A ; SJMP BEGIN DELAY:MOV TL0,#00H MOVTH0,#4CH DJNZB,LOOP MOV B,#20 LOOP:RETI END,任務(wù)中假設(shè)單片機(jī)外接的石英晶體振蕩器的頻率為11.0592MHz,2.1.3 源程序的編輯、編譯、下載,1.打開“偉?!蹦M仿真軟件進(jìn)行程序的編輯、編譯。 1、正確選擇單片機(jī)類型8751或80

4、31 2、正確選擇編譯器偉福編譯器 3、選擇模擬仿真功能 4、打開或新建文件進(jìn)行編輯 5、編譯 2.打開“ISP下載軟件”將目標(biāo)文件下載到ISP-4實(shí)驗(yàn)開發(fā)板上的AT89S51單片機(jī)芯片,觀察程序運(yùn)行結(jié)果。 1、編譯成功后打開下載軟件 2、選擇好單片機(jī)89S51并測試 3、打開偉福6000編譯生成的.BIN或.HEX文件 4、選擇自動寫完成擦除、寫、讀、校驗(yàn)過程 5、觀看運(yùn)行結(jié)果,2.1.4 相關(guān)知識,1.單片機(jī)程序運(yùn)行的結(jié)果如何送給發(fā)光二極管?,從剛才的任務(wù)中,我們看到發(fā)光二極管隨著程序的運(yùn)行,有規(guī)律的閃動,那么,現(xiàn)在我們來看看單片機(jī)是怎樣將程序中運(yùn)行的結(jié)果送給發(fā)光二極管的。 原來,89S5

5、1單片機(jī)上有4組8位I/O口:P0、P1、P2和P3口,P1、P2和P3為準(zhǔn)雙向口,P0口則為雙向三態(tài)輸入輸出口,他們在單片機(jī)中,主要承擔(dān)了和單片機(jī)外部設(shè)備打交道的任務(wù),下面我們分別介紹這幾個(gè)I/O口:,(1)P0和P2口,P0口鎖存器和緩沖器結(jié)構(gòu),P0口除了作普通的I/O口,直接和外部設(shè)備打交道外;還用作片外總線的地址總線AB0-AB7的低八位、數(shù)據(jù)總線。,P2口鎖存器和緩沖器結(jié)構(gòu),P2口除了作普通的I/O口,直接和外部設(shè)備打交道外;還用作片外總線的地址總線的高八位地址線AB8-AB15,注意:P0口在作輸出入口使用時(shí),由于它無內(nèi)部上拉電阻,為了在口線上輸出高電平并具有一定的驅(qū)動能力,必須外

6、接上拉電阻。作輸入口使用時(shí),為了防止口鎖存器對輸入口線的輸入信號造成影響,必須先往口鎖存器寫1。同理,P2口作輸入時(shí),也必須先往口鎖存器寫1。,(2)P1口,P1口鎖存器和緩沖器結(jié)構(gòu),P1口只用作普通輸入輸出口,注意:和P0、P2口一樣,為防止口鎖存器對輸入口線造成影響,P1口作輸入時(shí),也必須先往口鎖存器寫1。,(3)P3口,P3口鎖存器和緩沖器結(jié)構(gòu),P3口除了作普通的I/O口(功能和P1口一樣)直接和外部設(shè)備打交道外;還具有第二功能。,P3.0串行輸入口(RXD) P3.1串行輸出口(TXD) P3.2外中斷0(INT0) P3.3外中斷1(INT1) P3.5定時(shí)/計(jì)數(shù)器1的外部輸入口(T

7、1) P3.6外部數(shù)據(jù)存儲器寫選通(WR) P3.4定時(shí)/計(jì)數(shù)器0的外部輸入口(T0) P3.7外部數(shù)據(jù)存儲器讀選通(RD),2.單片機(jī)的軟件及數(shù)據(jù)如何存放?,從前面的任務(wù)中,我們還看到要控制燈閃爍,必須編制程序,還必須將控制燈的相關(guān)數(shù)據(jù)預(yù)先存儲,那么,在單片機(jī)中的程序和數(shù)據(jù)是怎樣保存的?原來,在單片機(jī)內(nèi)部有程序存儲器和數(shù)據(jù)存儲器,如果內(nèi)部程序存儲器和數(shù)據(jù)存儲器的容量不夠的話,還可以在單片機(jī)外部為它擴(kuò)展,最大我們可以將程序存儲器空間總?cè)萘繑U(kuò)大到64K,將數(shù)據(jù)存儲器在片外再單獨(dú)擴(kuò)展64K,這樣,以89S51為例,數(shù)據(jù)存儲器的總?cè)萘靠蛇_(dá)64K(片外)128字節(jié)(片內(nèi))。,MCS-51單片機(jī)的存儲器

8、組織結(jié)構(gòu),采用典型的哈佛結(jié)構(gòu),即程序存儲器和數(shù)據(jù)存儲器完全獨(dú)立,擁有各自的尋址系統(tǒng),包括片內(nèi)數(shù)據(jù)存儲器與片外數(shù)據(jù)存儲器都擁有自己獨(dú)立的尋址系統(tǒng)。,MCS-51單片機(jī)存儲器組織結(jié)構(gòu),(1)程序存儲器,用途: 存放程序及程序運(yùn)行時(shí)所需的常數(shù)。,尋址范圍:0000H FFFFH 容量64KB,即地址長度:16位,,尋址內(nèi)部ROM;,說明:當(dāng)PC值超過片內(nèi)ROM容量時(shí)會自動轉(zhuǎn)向 外部存儲器 空間。,,尋址外部ROM。,程序存儲器中6個(gè)具有特殊含義的單元,0000H 系統(tǒng)復(fù)位,PC指向此處; 0003H 外部中斷0入口 000BH T0溢出中斷入口 0013H 外中斷1入口 001BH T1溢出中斷入口

9、 0023H 串口中斷入口,(2)數(shù)據(jù)存儲器,用途:存放程序執(zhí)行的中間結(jié)果和過程數(shù)據(jù)的 。,物理上分為兩大區(qū)域: 00H 7FH即128B用戶RAM區(qū)。 80H FFH即特殊功能寄存器區(qū)。,位尋址區(qū),位尋址區(qū)(20H2FH)16個(gè)字節(jié)。 16*8=128位,每一位都有一個(gè)位地址,范圍為:00H7FH,位地址區(qū)也可作為一般的用戶RAM使用。,(3)特殊功能寄存器,1)程序計(jì)數(shù)器PC(program Counter),程序計(jì)數(shù)器在物理上是獨(dú)立的,它不屬于特殊內(nèi)部數(shù)據(jù)存儲器塊中。 PC是一個(gè)16位的計(jì)數(shù)器,由兩個(gè)八位寄存器PCH和PCL組成,用于存放一條要執(zhí)行的指令地址,尋址范圍為64kB,PC有自

10、動加1功能,即完成了一條指令的執(zhí)行后,其內(nèi)容自動加1。 PC本身并沒有地址,因而不可尋址,用戶無法對它進(jìn)行讀寫,但是可以通過轉(zhuǎn)移、調(diào)用、返回等指令改變其內(nèi)容,以控制程序的執(zhí)行順序。,2)累加器ACC(Accumulator),累加器A是一個(gè)最常用的專用寄存器,大部分單操作指令的一個(gè)操作數(shù)取自累加器,很多雙操作數(shù)指令中的一個(gè)操作數(shù)也取自累加器。 加、減、乘、除法運(yùn)算的指令,運(yùn)算結(jié)果都存放于累加器A或寄存器B中。 大部分的數(shù)據(jù)操作都會通過累加器A進(jìn)行,它形象于一個(gè)數(shù)據(jù)運(yùn)輸中轉(zhuǎn)站,在數(shù)據(jù)傳送過程中,任何兩個(gè)不能直接實(shí)現(xiàn)數(shù)據(jù)的傳送單元之間,通過累加器A中轉(zhuǎn),都能送達(dá)目的。,3)寄存器B,在乘除法指令中

11、,乘法指令中的兩個(gè)操作數(shù)分別取自累加器A和寄存器B,其結(jié)果存放于AB寄存器對中。除法指令中,被除數(shù)取自累加器A,除數(shù)取自寄存器B,結(jié)果商存放于累加器A,余數(shù)存放于寄存器B中。,4)程序狀態(tài)字(Program Status Word),CY 進(jìn)位/借位標(biāo)志;位累加器。 AC 輔助進(jìn)/借位標(biāo)志;用于十進(jìn)制調(diào)整。 F0 用戶定義標(biāo)志位;軟件置位/清零。 OV 溢出標(biāo)志; 硬件置位/清零。 P 奇偶標(biāo)志;A中1的個(gè)數(shù)為奇數(shù) P = 1;否則 P = 0。,5)數(shù)據(jù)指針(DPTR),數(shù)據(jù)指針為16位寄存器,編程時(shí),既可以按16位寄存器來使用,也可以按兩個(gè)8位寄存器來使用,即高位字節(jié)寄存器DPH和低位字節(jié)

12、DPL。,DPTR主要是用來保存16位地址,當(dāng)對64kB外部數(shù)據(jù)存儲器尋址時(shí),可作為間址寄存器使用,此時(shí),使用如下兩條指令: MOVXA,DPTR MOVXDPTR,A,在訪問程序存儲器時(shí),DPTR可用來作基址寄存器,采用基址+變址尋址方式訪問程序存儲器,這條指令常用于讀取程序存儲器內(nèi)的表格數(shù)據(jù)。 MOVCA,A+DPTR,6)堆棧指針SP(Stack Pointer),指明棧頂元素的地址,8位,可軟件設(shè)置初值,復(fù)位時(shí)SP = 07H。,7)I/O口專用寄存器(P0、P1、P2、P3),I/O口寄存器P0、P1、P2和P3分別是MCS-51單片機(jī)的四組I/O口鎖存器。,8)定時(shí)/計(jì)數(shù)器(TL0

13、、TH0、TL1和TH1),MCS-51單片機(jī)中有兩個(gè)16位的定時(shí)/計(jì)數(shù)器T0和T1,它們由四個(gè)8位寄存器組成的,兩個(gè)16位定時(shí)/計(jì)數(shù)器卻是完全獨(dú)立的。我們可以單獨(dú)對這四個(gè)寄存器進(jìn)行尋址,但不能把T0和T1當(dāng)作16位寄存來使用。,9)定時(shí)/計(jì)數(shù)器方式選擇寄存器(TMOD),TMOD寄存器是一個(gè)專用寄存器,用于控制兩個(gè)定時(shí)計(jì)數(shù)器的工作方式,TMOD可以用字節(jié)傳送指令設(shè)置其內(nèi)容,但不能位尋址 。,3.單片機(jī)如何運(yùn)行程序?,知道了單片機(jī)通過I/O口與外設(shè)打交道,也知道了單片機(jī)的程序與數(shù)據(jù)如何保存,到底單片機(jī)是如何運(yùn)行程序的?原來單片機(jī)和其他微機(jī)一樣,也擁有一個(gè)中央處理器(CPU)。,它通過單片機(jī)的內(nèi)

14、部總線,將單片機(jī)內(nèi)部的各個(gè)部分:程序存儲器(ROM)、數(shù)據(jù)存儲器(RAM)、定時(shí)/計(jì)數(shù)器、并行接口、串行接口和中斷系統(tǒng)等聯(lián)系在一起 。,內(nèi)部總線有三種,數(shù)據(jù)總線:專門用來傳送數(shù)據(jù)信息 。,地址總線:專門用來傳送地址信息,選中各操作單元。,控制總線:專門用來傳送CPU各種控制命令,以便CPU統(tǒng)一指揮協(xié)調(diào)工作。完成程序所要執(zhí)行的各種功能。,CPU執(zhí)行程序一般包括兩個(gè)主要過程,第一,就是從程序存儲器中取出指令,指令的地址由PC指針提供。,第二,就是執(zhí)指過程,取出的指令代碼首先被送到CPU中控制器中的指令寄存器,再通過指令譯碼器譯碼變成各種電信號,從而實(shí)現(xiàn)指令的各種功能。,執(zhí)行,取指令,分析,4.怎樣

15、保證CPU工作 ?,現(xiàn)在我們知道了單片機(jī)怎樣取指、執(zhí)指,即怎樣運(yùn)行程序了。那么怎樣才能保證CPU有序的工作?這就必須提到單片機(jī)的兩個(gè)非常重要的外圍電路:單片機(jī)的時(shí)鐘電路和復(fù)位電路。,Pin19: 時(shí)鐘XTAL1腳,片內(nèi)振蕩電路的輸入端。 Pin18: 時(shí)鐘XTAL2腳,片內(nèi)振蕩電路的輸出端。,時(shí)鐘電路如下,【振蕩周期】:單片機(jī)外接石英晶體振蕩器的周期。如外接石英晶體的頻率若為12MHz,這其振蕩周期就是1/12微秒。 【狀態(tài)周期】:單片機(jī)完成一個(gè)最基本的動作所需的時(shí)間周期。如掃描一次定時(shí)器T0引腳狀態(tài)所需要的時(shí)間。一個(gè)狀態(tài)周期2個(gè)振蕩周期。 【機(jī)器周期】:單片機(jī)完成一次完整的具有一定功能的動作

16、所需的時(shí)間周期。如一次完整的讀操作或?qū)懖僮鲗?yīng)的時(shí)間。一個(gè)機(jī)器周期6個(gè)狀態(tài)周期。 【指令周期】: 執(zhí)行完某條指令所需要的時(shí)間周期,一般需要14個(gè)機(jī)器周期,如MUL AB指令是四機(jī)器周期指令。一個(gè)指令周期14個(gè)機(jī)器周期。,單周期單字節(jié)指令時(shí)序,復(fù)位電路如下,單片機(jī)工作時(shí),除了需要時(shí)鐘支持外,還必須有一個(gè)初始狀態(tài),即單片機(jī)的復(fù)位狀態(tài)。復(fù)位不改變RAM(包括工作寄存器R0-R7)的狀態(tài),89S51的初始態(tài)如下表:,Pin9: RESET復(fù)位信號腳,當(dāng)89S51通電,時(shí)鐘電路開始工作,在RESET引腳上出現(xiàn)24個(gè)時(shí)鐘周期以上的高電平,系統(tǒng)即初始復(fù)位。,5.按鍵為何能打斷原來的工作?,在前面的任務(wù)中,我

17、們還看到一個(gè)現(xiàn)象,只要按一下S1鍵,發(fā)光管的閃動就停止5秒,這就相當(dāng)于打斷了原來既定的工作,等到5秒延時(shí)一到,又恢復(fù)原來的工作。這就象我們平時(shí)通常所說的“中斷”。單片機(jī)中也有中斷系統(tǒng),它有5個(gè)中斷源,它們能打斷單片機(jī)原來的工作,直到中斷結(jié)束才能繼續(xù)原來的工作。我們將在單元五中詳細(xì)闡述。,6.發(fā)光二極管為何按一定頻率閃爍?,在前面的任務(wù)中,燈有規(guī)律的閃動和按鍵停5秒,都離不開時(shí)間。那么,這個(gè)時(shí)間我們在前面的程序中是怎樣得到的?原來,在89S51單片機(jī)中有兩個(gè)定時(shí)器T0、T1,我們在前面也已經(jīng)提到了,它在單片機(jī)中能夠?qū)崿F(xiàn)定時(shí)或計(jì)數(shù)功能。詳細(xì)的用法,在單元五進(jìn)行講解。,7.單片機(jī)的其他資源,通過本次任務(wù)的分析,我們基本上知道MCS-51單片機(jī)的結(jié)構(gòu),它由CPU、程序存儲器、數(shù)據(jù)存儲器、并行輸入輸出口、

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論