《單片機系統(tǒng)設(shè)計仿真與應(yīng)用》課件第1章_第1頁
《單片機系統(tǒng)設(shè)計仿真與應(yīng)用》課件第1章_第2頁
《單片機系統(tǒng)設(shè)計仿真與應(yīng)用》課件第1章_第3頁
《單片機系統(tǒng)設(shè)計仿真與應(yīng)用》課件第1章_第4頁
《單片機系統(tǒng)設(shè)計仿真與應(yīng)用》課件第1章_第5頁
已閱讀5頁,還剩65頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1.1MCS-51單片機內(nèi)部結(jié)構(gòu)1.2構(gòu)建單片機最小系統(tǒng)

1.3單片機指令系統(tǒng)

1.4單片機匯編程序設(shè)計應(yīng)用舉例1.5小結(jié)

習(xí)題

MCS-51單片機在一塊芯片中集成了CPU、RAM、ROM、定時器/計數(shù)器和多功能的I/O線等基本功能部件。8051單片機框圖如圖1-1所示。1.1MCS-51單片機內(nèi)部結(jié)構(gòu)圖1-18051單片機框圖1.1.1中央處理器CPU

CPU是單片機的核心部件,它由運算器和控制邏輯構(gòu)成,其中包括若干特殊功能寄存器。

1.運算器

2.控制邏輯

1)指令部件

2)時鐘電路

3)基本時序周期

4)指令時序圖1-2內(nèi)部方式時鐘電路圖1-3給出了8051單片機的取指和執(zhí)行指令的定時關(guān)系。

圖1-3是單周期和雙周期取指時序,圖中的ALE脈沖是用于鎖存地址的選通信號,顯然,每出現(xiàn)一次該信號,單片機即進(jìn)行一次讀指令操作。從時序圖中可看出,該信號是時鐘頻率6分頻后得到的,在一個機器周期中,ALE信號兩次有效,第一次在S1P2和S2P1期間,第二次在S4P2和S5P1期間。圖1-3MCS-51取指時序1.1.2存儲器組織

MCS-51存儲器結(jié)構(gòu)中程序存儲器和數(shù)據(jù)存儲器是相互獨立的,各有自己的尋址系統(tǒng)、控制信號和功能。

8051片內(nèi)有256B的數(shù)據(jù)存儲器RAM和4?KB的程序存儲器ROM。除此之外,還可以在片外擴展RAM和ROM,并且各有64?KB的尋址范圍。8051的存儲器組織結(jié)構(gòu)如圖1-4所示。圖1-48051存儲器組織結(jié)構(gòu)

1.程序存儲器

程序存儲器用來存放程序和表格常數(shù)。

2.外部數(shù)據(jù)存儲器

MCS-51單片機的數(shù)據(jù)存儲器無論在物理上或邏輯上都分為兩個地址空間,一個為內(nèi)部數(shù)據(jù)存儲器,訪問內(nèi)部數(shù)據(jù)存儲器用MOV指令;另一個為外部數(shù)據(jù)存儲器,訪問外部數(shù)據(jù)存儲器用MOVX指令。

3.內(nèi)部數(shù)據(jù)存儲器

MCS-51系列單片機各芯片內(nèi)部都有數(shù)據(jù)存儲器,是最靈活的地址空間,它分成物理上獨立的且性質(zhì)不同的幾個區(qū):00H~7FH單元組成的128字節(jié)地址空間的RAM區(qū);80H~FFH單元組成的高128字節(jié)地址空間,該區(qū)間又稱特殊功能寄存器(SFR)區(qū)。

1)內(nèi)部RAM區(qū)低128B

內(nèi)部RAM區(qū)低128B中不同的地址區(qū)域功能結(jié)構(gòu)如表1-1所示。

其中00H~1FH共32個單元是四個通用工作寄存器區(qū),每一個區(qū)有八個工作寄存器,編號為R0~R7,每一個區(qū)中R0~R7的地址見表1-2。

當(dāng)前程序使用的工作寄存器區(qū)是由程序狀態(tài)字PSW(特殊功能寄存器,字節(jié)地址為0D0H)中的D4、D3位(RS1和RS0)來指示的,PSW的狀態(tài)和工作寄存器區(qū)對應(yīng)關(guān)系見表1-3。表1-1MCS-51內(nèi)部RAM存儲器結(jié)構(gòu)表1-2寄存器和RAM地址對照表表1-3工作寄存器區(qū)選擇

CPU通過對PSW中D4、D3位內(nèi)容的修改,就能任選一個工作寄存器區(qū),若不設(shè)定為則默認(rèn)為第0區(qū),這個特點使MCS-51具有快速現(xiàn)場保護(hù)的功能。

如果用戶程序不需要四個工作寄存器區(qū),則不用的工作寄存器單元可以作為一般的RAM來使用。

內(nèi)部RAM的20H~2FH為位尋址區(qū)(見表1-4)。

表1-5列出了這些特殊功能存儲器的助記標(biāo)識符、名稱及地址,對于可位尋址的特殊功能寄存器,也給出了相應(yīng)的位地址。表1-4RAM尋址區(qū)位地址映像表1-5特殊功能寄存器地址表

(1)程序狀態(tài)字PSW。程序狀態(tài)字是一個8位寄存器,它包含了程序狀態(tài)信息。此寄存器各位的含義如下所示,其中PSW.1未用,其他各位說明如下:

CY(PSW.7):進(jìn)位標(biāo)志。

AC(PSW.6):輔助進(jìn)位標(biāo)志。

F0(PSW.5):用戶標(biāo)志位,F(xiàn)0是用戶定義的一個狀態(tài)標(biāo)記,用軟件來使它置位或清零。

OV(PSW.2):溢出標(biāo)志。

除法指令DIV也會影響溢出標(biāo)志。當(dāng)除數(shù)為0時,OV=1,否則OV=0。

P(PSW.0):奇偶標(biāo)志,每個指令周期都由硬件來置位或清“0”,以表示累加器A中1的位數(shù)的奇偶數(shù)。

(2)棧指針。

(3)數(shù)據(jù)指針DPTR。

(4)程序計數(shù)器PC。

PC沒有地址,用戶無法對其進(jìn)行讀/寫,但可以通過轉(zhuǎn)移、調(diào)用、返回等指令改變其內(nèi)容,以實現(xiàn)程序的轉(zhuǎn)換。1.1.3并行I/O端口

I/O端口又稱為I/O接口,I/O端口是MCS-51單片機對外部實現(xiàn)控制和信息交換的必經(jīng)之路,I/O端口有串行和并行之分,串行I/O端口一次只能傳送一位二進(jìn)制信息,并行I/O端口一次只能傳送一組二進(jìn)制信息。

并行I/O端口內(nèi)部結(jié)構(gòu)圖如圖1-5所示。圖1-5并行I/O端口內(nèi)部結(jié)構(gòu)圖

1.P0端口功能(P0.0~P0.7、32~39腳)

1)?P0端口作地址/數(shù)據(jù)復(fù)用總線使用

2)?P0端口作通用I/O端口使用

3)?P0端口線上的“讀—修改—寫”功能

2.P1端口(P1.0~P1.7、1~8腳)準(zhǔn)雙向口

3.P2端口(P2.0~P2.7,21~28腳)準(zhǔn)雙向口

1)?P2端口作通用I/O端口使用

2)?P2端口作地址總線口使用

4.P3端口(P3.0~P3.7、10~17腳)雙功能口

當(dāng)作第二功能使用時,每一位功能定義如表1-6所示。P3端口的第二功能實際上就是系統(tǒng)具有控制功能的控制線。此時相應(yīng)的口線鎖存器必須為“1”狀態(tài),與非門的輸出由第二功能輸出線的狀態(tài)確定,從而P3端口線的狀態(tài)取決于第二功能輸出線的電平。表1-6P3端口的第二功能1.1.4內(nèi)部資源

1.串行I/O端口

8051有一個全雙工的可編程串行I/O端口。

2.定時器/計數(shù)器

8051單片機內(nèi)部有兩個16位可編程定時器/計數(shù)器,即定時器T0和定時器T1。

3.中斷系統(tǒng)

8051單片機中有五個中斷源,分別為兩個外部中斷、兩個定時器/計數(shù)器中斷以及一個串行口中斷。1.1.5引腳定義及功能

MCS-51單片機采用40引腳的雙列直插封裝,如圖1-6所示。

40條引腳說明如下:

1.主電源引腳VSS和VCC(2個)

2.外接晶振引腳XTAL1和XTAL2(2個)

3.控制引腳(4個)

4.輸入/輸出引腳(32個)

圖1-68051引腳排列圖圖1-7MCS-51片外總線結(jié)構(gòu)示意圖1.2.1復(fù)位和復(fù)位電路

復(fù)位是單片機的初始化操作,其目的是使CPU及各專用寄存器處于一個確定的初始狀態(tài)。1.2構(gòu)建單片機最小系統(tǒng)圖1-8復(fù)位電路單片機的復(fù)位操作使單片機進(jìn)入初始化狀態(tài),其中包括使程序計數(shù)器PC?=?0000H,這表明程序從0000H地址單元開始執(zhí)行。單片機冷啟動后,片內(nèi)RAM為隨機值,運行中的復(fù)位操作不改變片內(nèi)RAM區(qū)中的內(nèi)容,21個特殊功能寄存器復(fù)位后的狀態(tài)為確定值,表1-7列出了部分特殊功能寄存器在復(fù)位后的值。值得指出的是,記住一些特殊功能寄存器復(fù)位后的主要狀態(tài),對于了解單片機的初態(tài),減少應(yīng)用程序中的初始化部分是十分必要的。表1-7復(fù)位后特殊寄存器的狀態(tài)注:表中*為隨機狀態(tài)。1.2.2構(gòu)建單片機最小系統(tǒng)

MCS-51單片機是一種功能較強的微型計算機,它集CPU、EPROM、RAM、I/O接口及中斷系統(tǒng)于一體,利用單片機本身的資源,外加電源和晶振就可構(gòu)建一個簡單的控制系統(tǒng),實現(xiàn)對數(shù)字信號的處理和控制。圖1-9AT89C51最小系統(tǒng)1.3.1指令系統(tǒng)

按指令功能,MCS-51指令系統(tǒng)分為數(shù)據(jù)傳送與交換、算術(shù)運算、邏輯運算、程序轉(zhuǎn)移、布爾操作(又稱位操作)、堆棧操作等6類,共111條指令,各指令助記符及功能見表1-8

所示。1.3單片機指令系統(tǒng)表1-8MCS-51指令集(111條指令)續(xù)表(一)續(xù)表(二)續(xù)表(三)

(3)數(shù)據(jù)傳送類指令共29條,是將源操作數(shù)送到目的操作數(shù)。指令執(zhí)行后,源操作數(shù)不變,目的操作數(shù)被源操作數(shù)取代。源操作數(shù)可采用寄存器、寄存器間接、直接、立即、變址5種尋址方式尋址,目的操作數(shù)可以采用寄存器、寄存器間接、直接尋址3種尋址方式。MCS-51單片機片內(nèi)數(shù)據(jù)傳送途徑如圖1-10所示。圖1-10MCS-51單片機片內(nèi)數(shù)據(jù)傳送圖

(4)堆棧操作相對來說比較特殊。所謂堆棧是在片內(nèi)RAM中按“先進(jìn)后出,后進(jìn)先出”原則設(shè)置的專用存儲區(qū)。數(shù)據(jù)的進(jìn)棧出棧由指針SP統(tǒng)一管理。堆棧的操作有如下兩條專用指令:

PUSHdirect ;SP←(SP+1),(SP)←(direct)

POPdirect ;(direct)←(SP),SP←SP-1

PUSH是進(jìn)棧(或稱為壓入操作)指令。指令執(zhí)行過程如圖1-11所示。圖1-11指令PUSH40H和指令POP30H操作示意圖1.3.2尋址方式

尋址方式就是根據(jù)指令中給出的地址碼尋找真實操作數(shù)地址的方式。

1.立即尋址

2.直接尋址

3.寄存器尋址

4.寄存器間接尋址

(1)訪問片內(nèi)RAM:用R0、R1作為間接寄存器,堆棧用SP作為間接寄存器。例如:

MOV @Ri,A(i=0或1)

指令執(zhí)行示意圖如圖1-12所示。圖1-12MOV@Ri,A指令執(zhí)行示意圖

(2)訪問片外RAM:訪問片外RAM只能用MOVX指令,下面分3種情況說明。

訪問低256字節(jié),可用R0或R1作為間址寄存器。

訪問整個64?KB空間,可用R0或R1作為間接寄存器,用P2指出高8位地址。

訪問整個64?KB空間,可用DPTR作為間接寄存器。

寄存器間接尋址是唯一能訪問片外RAM的尋址方式,如圖1-13所示。圖1-13訪問片外RAM示意圖

5.變址尋址

變址尋址只能對程序存儲器中的數(shù)據(jù)進(jìn)行讀取訪問。在指令符號上采用MOVC的形式,用基址寄存器DPTR或PC的內(nèi)容與變址寄存器A中的內(nèi)容相加形成要訪問數(shù)據(jù)的地址如圖1-14所示。圖1-14變址尋址示意圖

6.相對尋址

相對尋址是為實現(xiàn)程序的相對轉(zhuǎn)移而設(shè)計的。在相對轉(zhuǎn)移指令中,給出地址偏移量rel,它是8位帶符號數(shù)的補碼,通常在08H~7FH范圍內(nèi)選取。以PC的當(dāng)前值加上指令中給出的偏移量就形成新的PC值,即程序轉(zhuǎn)移地址,其尋址示意圖如圖1-15所示。圖1-15相對尋址示意圖

7.位尋址

位尋址只能對有位地址的單元作位尋址操作。位尋址其實是一種直接尋址方式,不過其地址是位地址。1.3.3偽指令

所謂偽指令,就是通知匯編程序如何完成匯編操作的指示性命令。偽指令只用于匯編語言源程序中,對匯編過程起控制和指導(dǎo)的作用,不生成目標(biāo)代碼。因此偽指令只存在于源程序中,匯編完成后,在目標(biāo)程序中就看不到偽指令了。

MCS-51單片機主要有8條偽指令,如表1-9所示。表1-9常用的偽指令及其功能1.4.1彩燈控制器硬件設(shè)計

對于彩燈控制器來說,只需要在單片機最小系統(tǒng)的基礎(chǔ)上再在P1端口上增加8個LED燈即可實現(xiàn)設(shè)計目標(biāo)。

硬件電路圖如圖1-16所示。1.4單片機匯編程序設(shè)計應(yīng)用舉例圖1-16AT89C51彩燈控制器電路圖1.4.2彩燈控制器軟件設(shè)計

1.延時程序

設(shè)計軟件之前要考慮數(shù)據(jù)的編碼和硬件的反應(yīng)時間與人眼的視覺暫留時間。

編程時,先后點亮LED之間要有延時,延時程序一般用循環(huán)程序編寫(也可用定時器)。延時程序如例1-1所示?!纠?-1】

延時程序DELAY,延時約1?s。

DELAY:MOV R7,#08H ;單周期指令

DEL1: MOV R6,#0FAH ;單周期指令

DEL2: MOV R5,#0F8H

DEL3: DJNZ R5,DEL3 ;雙周期指令

DJNZ R6,DEL2

DJNZ R7,DEL1

RET

END2.?dāng)?shù)據(jù)編碼

3.編程實現(xiàn)

【例1-2】彩燈控制器匯編源碼。

ORG0000H ;程序入口

AJMPSTART

ORG0100H

START:MOVA,#0FEH ;程序開始運行

SETBC

;進(jìn)位位置位,為帶進(jìn)位循環(huán)左移做準(zhǔn)備

LOP: MOVP1,A ;依次點亮指示燈

ACALLDELAY;調(diào)用延時子程序,延時約130?ms

RLCA ;循環(huán)左移

AJMPLOP將此程序匯編后生成二進(jìn)制可下載文件,并固化到AT89C51中。彩燈的運行效果如圖1-17所示。圖1-17AT89C51彩燈控制器仿真結(jié)果在本章中,我們詳細(xì)討論了以下幾個知識點:

MCS-51單片機內(nèi)部結(jié)構(gòu)。MC

溫馨提示

  • 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

提交評論