實(shí)驗(yàn)1、實(shí)驗(yàn)2熟悉軟件開(kāi)發(fā)環(huán)境及51單片機(jī)編程(學(xué)生版)_第1頁(yè)
實(shí)驗(yàn)1、實(shí)驗(yàn)2熟悉軟件開(kāi)發(fā)環(huán)境及51單片機(jī)編程(學(xué)生版)_第2頁(yè)
實(shí)驗(yàn)1、實(shí)驗(yàn)2熟悉軟件開(kāi)發(fā)環(huán)境及51單片機(jī)編程(學(xué)生版)_第3頁(yè)
實(shí)驗(yàn)1、實(shí)驗(yàn)2熟悉軟件開(kāi)發(fā)環(huán)境及51單片機(jī)編程(學(xué)生版)_第4頁(yè)
實(shí)驗(yàn)1、實(shí)驗(yàn)2熟悉軟件開(kāi)發(fā)環(huán)境及51單片機(jī)編程(學(xué)生版)_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、實(shí)驗(yàn)一、熟悉軟件開(kāi)發(fā)環(huán)境及51單片機(jī)資源認(rèn)識(shí)I/O口的應(yīng)用與編程 計(jì)算機(jī)的應(yīng)用是一個(gè)系統(tǒng),這個(gè)系統(tǒng)應(yīng)由兩部分組成硬件和軟件。硬件是指具體的元器件、電路等,軟件則是指程序和數(shù)據(jù)。如果説硬件是計(jì)算機(jī)應(yīng)用系統(tǒng)的基礎(chǔ)的話,那么軟件則是計(jì)算機(jī)應(yīng)用系統(tǒng)的靈魂。計(jì)算機(jī)原理告訴我們程序和數(shù)據(jù)是被“裝載”在計(jì)算機(jī)存儲(chǔ)器中的,從某種意義上講,認(rèn)識(shí)一個(gè)計(jì)算機(jī)的存儲(chǔ)器系統(tǒng)是開(kāi)發(fā)軟件所必須的。為了全面認(rèn)識(shí)51系列單片機(jī)的存儲(chǔ)空間,實(shí)驗(yàn)一與實(shí)驗(yàn)二列出四個(gè)實(shí)訓(xùn)單元。在進(jìn)行完四個(gè)實(shí)訓(xùn)單元后,要求學(xué)生應(yīng)全面了解51系列單片機(jī)的程序存儲(chǔ)器(ROM)、片內(nèi)隨機(jī)存儲(chǔ)器(片內(nèi)RAM)和片外隨機(jī)存儲(chǔ)器(片外RAM)空間的范圍、用途和使用

2、方法等。1.1 認(rèn)識(shí)51系列單片機(jī)的程序存儲(chǔ)器(ROM)第一部分 教學(xué)要求一、實(shí)驗(yàn)?zāi)康模?. 認(rèn)識(shí)51系列單片機(jī)的程序存儲(chǔ)器(ROM)的空間范圍;2. 認(rèn)識(shí)匯編指令編碼在ROM中存儲(chǔ)形式;3. 掌握指令編碼和指令編碼所在地址的概念;4. 了解51系列單片機(jī)的程序存儲(chǔ)器(ROM)固定地址的用途。二、實(shí)訓(xùn)平臺(tái)1. PC機(jī),臺(tái)/人;2. 偉福V3.2版仿真軟件或其它51系列單片機(jī)仿真軟件三、實(shí)驗(yàn)報(bào)告內(nèi)容:項(xiàng)目形式成績(jī)?cè)u(píng)定151系列單片機(jī)ROM存儲(chǔ)空間描述書面251系列單片機(jī)ROM空間使用情況觀察填表3總成績(jī)教師簽名(注:成績(jī)?cè)u(píng)定等級(jí):優(yōu)、良、中、及格、不及格)第二部分教學(xué)內(nèi)容一、預(yù)備知識(shí)1. ROM

3、存儲(chǔ)器ROM(Read Only Memory)即只讀存儲(chǔ)器之意,其特點(diǎn)是在計(jì)算機(jī)正常運(yùn)行的情況下CPU對(duì)ROM存儲(chǔ)器只能進(jìn)行讀操作且斷電后信息不會(huì)丟失,通常用來(lái)存儲(chǔ)固定不變的程序和數(shù)據(jù),如引導(dǎo)程序、基本輸入輸出系統(tǒng)程序等。ROM按其性能可分為以下幾類:(1)掩模工藝ROM它是由芯片制造廠根據(jù)ROM要求存儲(chǔ)的信息,制造成固定的半導(dǎo)體掩模版生產(chǎn)的。一旦制出成品后,其存儲(chǔ)的信息只能讀出,不能改變。這種ROM適用于存儲(chǔ)固定不變的程序和數(shù)據(jù),批量生產(chǎn)時(shí),成本較低。(2)可一次編程PROM允許用戶對(duì)ROM進(jìn)行一次編程。(3)可擦除的EPROM允許用戶對(duì)ROM進(jìn)行多次編程,即可擦除。按擦除的方法不同,可分

4、為紫外線擦除的可擦除可編程序只讀存儲(chǔ)器EPROM(Erasable Programmable Read Only Memory)和電擦除的電可擦除編程序只讀存儲(chǔ)器EEPROM(Electrically Erasable Programmable Read Only Memory)。(4)Flash存儲(chǔ)器Flash存儲(chǔ)器是在20世紀(jì)80年代末逐漸發(fā)展起來(lái)的一種新型不揮發(fā)性半導(dǎo)體存儲(chǔ)器,它結(jié)合了以往EPROM結(jié)構(gòu)簡(jiǎn)單、密度高和EEPROM在系統(tǒng)的電可擦除性的一些優(yōu)點(diǎn),實(shí)現(xiàn)了高密度、低成本和高可靠性。Flash存儲(chǔ)器和傳統(tǒng)存儲(chǔ)器的最大區(qū)別在于它是按塊(Sector)擦除,按位編程,從而實(shí)現(xiàn)了快閃擦除

5、的高速度。目前它廣泛應(yīng)用于PCBIOS、數(shù)字蜂窩電話、汽車領(lǐng)域和微控制器等許多領(lǐng)域。EPROM、EEPROM、Flash存儲(chǔ)器需通過(guò)專用的編程器將程序和數(shù)據(jù)寫入其中。2. 51系列單片機(jī)ROM空間由于5l系列單片機(jī)的程序計(jì)數(shù)器PC是16位的,所以能尋址64KB的程序存儲(chǔ)器地址范圍。允許用戶程序調(diào)用或轉(zhuǎn)向64KB的任何存儲(chǔ)單元。在5l系列單片機(jī)中根據(jù)不同的型號(hào),其程序存儲(chǔ)器的形式也有所不同。例如:8051單片機(jī)在芯片內(nèi)部設(shè)置了4 KB掩模版的ROM, 8751單片機(jī)在芯片內(nèi)部設(shè)置了4 KB的EPROM,89C52單片機(jī)在芯片內(nèi)部設(shè)置了8 KB的Flash存儲(chǔ)器,而8031單片機(jī)在芯片內(nèi)部沒(méi)有設(shè)置

6、程序存儲(chǔ)器,需要在單片機(jī)外部配置EPROM。51系列單片機(jī)的EA引腳為訪問(wèn)內(nèi)部或外部程序存儲(chǔ)器的選擇端。當(dāng)EA引腳接高電平時(shí),CPU將首先訪問(wèn)內(nèi)部存儲(chǔ)器,當(dāng)指令地址超過(guò)內(nèi)部存儲(chǔ)器的最大地址時(shí),自動(dòng)轉(zhuǎn)向片外ROM去取指令。當(dāng)EA引腳接低電平時(shí)(接地),CPU只能訪問(wèn)外部程序存儲(chǔ)器。對(duì)于8031單片機(jī),由于其內(nèi)部無(wú)程序存儲(chǔ)器,故只能采用這種接法。51系列單片機(jī)程序存儲(chǔ)器的地址從0000H開(kāi)始編址。程序存儲(chǔ)器低端的一些地址被固定地用作特定程序的入口地址: 0000H0000H:?jiǎn)纹瑱C(jī)復(fù)位后的程序入口地址; 0001H0003H:外部中斷0的中斷服務(wù)程序入口地址;000BH:定時(shí)器0的中斷服務(wù)程序入口

7、地址; : :0013H:外部中斷l(xiāng)的中斷服務(wù)程序入口地址; : :001BH:定時(shí)器1的中斷服務(wù)程序入口地址;0023H:串行端口的中斷服務(wù)程序入口地址;002BH:定時(shí)器2的中斷服務(wù)程序入口地址。 FFFFH 圖 1.1.1 ROM空間示意編程時(shí),通常在這些入口地址開(kāi)始的二三個(gè)單元中,放人一條轉(zhuǎn)移指令,以使相應(yīng)的服務(wù)與實(shí)際分配的程序存儲(chǔ)器區(qū)域中的程序段相對(duì)應(yīng)(僅在中斷服務(wù)程序較短時(shí),才可以將中斷服務(wù)程序直接放在相應(yīng)的人口地址開(kāi)始的幾個(gè)單元中)。3. 源程序匯編與程序定位偽指令將匯編語(yǔ)言源程序轉(zhuǎn)換為計(jì)算機(jī)能執(zhí)行的機(jī)器碼形式的目標(biāo)程序的過(guò)程叫匯編。匯編常用的方法有兩種:一是手工匯編,二是利用計(jì)

8、算機(jī)匯編。手工匯編時(shí),把程序用助記符指令寫出后,通過(guò)手工方式查指令編碼表,逐個(gè)把助記符指令翻譯成機(jī)器碼,然后把得到的機(jī)器碼程序(以十六進(jìn)制形式)鍵入到單片機(jī)開(kāi)發(fā)機(jī)中,并進(jìn)行調(diào)試。由于手工匯編是按絕對(duì)地址進(jìn)行定位的,所以,對(duì)于偏移量的計(jì)算和程序的修改有諸多不便。通常只有程序較小或條件所限時(shí)才使用。機(jī)器匯編是在常用的個(gè)人計(jì)算機(jī)上,使用交叉匯編程序?qū)R編語(yǔ)言源程序轉(zhuǎn)換為計(jì)算機(jī)能執(zhí)行的機(jī)器碼形式的目標(biāo)程序。匯編工作由計(jì)算機(jī)自動(dòng)完成。生成的目標(biāo)程序由PC機(jī)傳到開(kāi)發(fā)機(jī)上,經(jīng)調(diào)試無(wú)誤后,再固化到程序存儲(chǔ)器ROM中。機(jī)器匯編與手工匯編相比具有極大的優(yōu)勢(shì),是匯編工作的首選。本教材選用的偉福仿真軟件就可進(jìn)行機(jī)器匯

9、編。偽指令不是單片機(jī)執(zhí)行的指令,沒(méi)有對(duì)應(yīng)的機(jī)器碼,僅是用來(lái)對(duì)匯編過(guò)程進(jìn)行某種控制。常用的偽指令有:(1) 定位偽指令ORG格式:標(biāo)號(hào): ORG l6位地址功能:規(guī)定程序塊或數(shù)據(jù)塊存放的起始地址。如:ORG 8000HSTART:MOV A,#30H該語(yǔ)句規(guī)定第一條指令從地址8000H單元開(kāi)始存放。標(biāo)號(hào)START的值為8000H。通常,在一段匯編語(yǔ)言源程序的開(kāi)始,都要設(shè)置一條ORG偽指令來(lái)指定該程序在存儲(chǔ)器中存放的起始位置。若省略O(shè)RG偽指令,則該程序段從0000H單元開(kāi)始存放。在一個(gè)源程序中,可以多次使用ORG偽指令,以規(guī)定不同程序段或數(shù)據(jù)段存放的起始地址,但要求16位地址值由小到大依序排列,

10、不允許空間重疊。(2) 匯編結(jié)束偽指令 END格式:標(biāo)號(hào): END 表達(dá)式功能:結(jié)束匯編。匯編程序遇到END偽指令后即結(jié)束匯編。處于END之后的程序,匯編程序不予處理。 (3) 字節(jié)數(shù)據(jù)定義偽指令 DB格式:標(biāo)號(hào): DB 8位字節(jié)數(shù)據(jù)表功能:從標(biāo)號(hào)指定的地址單元開(kāi)始,在程序存儲(chǔ)器中定義字節(jié)數(shù)據(jù)。字節(jié)數(shù)據(jù)表可以是一個(gè)或多個(gè)字節(jié)數(shù)據(jù)、字符串或表達(dá)式。該偽指令將字節(jié)數(shù)據(jù)表中的數(shù)據(jù)按從左到右的順序依次存放在指定的存儲(chǔ)單元中。一個(gè)數(shù)據(jù)占一個(gè)存儲(chǔ)單元。4. 偉福V3.2版仿真軟件使用見(jiàn)后續(xù)實(shí)驗(yàn)講義。二、實(shí)訓(xùn)程序ORG 0000H* AJMP BEGIN ;轉(zhuǎn)初始化程序段 ORG 0003HLJMP PIN

11、T0;轉(zhuǎn)外部中斷0的中斷服務(wù)程序ORG 0100HBEGIN: SETB EA ;初始化程序段SETB EX0SETB PX0SETB IT0MOV R0, #03HMOV A, #0A8HMOV R0, AMOV R1, #20HMOV R2, #31HMOV R0, #00HMOV A, R1MOVX R0, AMOV R0, #03HMOV A, #01HMOVX R0, ACLR AMOVX R0, A*LOOP: SJMP $ORG 2000HPINT0: MOV R0, #00H ;外部中斷0的中斷服務(wù)程序INC R1MOV A, R1MOVX R0, AMOV R0, #02HM

12、OV A, #01HMOVX R0, ACLR AMOVX R0, A* DJNZ R2, NEXTCLR EX0SJMP DONENEXT: SETB EX0DONE: RETIEND三、實(shí)訓(xùn)將以上實(shí)訓(xùn)程序通過(guò)偉福V3.2版仿真軟件(或其它51系列單片機(jī)仿真軟件)輸入到計(jì)算機(jī)中,并以*.ASM 文件名保存,然后進(jìn)行匯編。匯編成功后,通過(guò)偉福V3.2版仿真軟件的“窗口(W)數(shù)據(jù)窗口(D)CODE”菜單觀察程序存儲(chǔ)器(ROM)中的內(nèi)容,理解“地址”、“指令代碼”的概念,并了解51系列單片機(jī)程序存儲(chǔ)器(ROM)空間的分布特點(diǎn)。注:本節(jié)實(shí)訓(xùn)不要求學(xué)生具體讀懂上述程序的具體功能。具體步驟如下:(1)

13、打開(kāi)偉福V3.2版仿真軟件,選擇偉福軟件模擬器。如圖1.1.2所示 圖1.1.2 (2) 選擇“文件(F)新建文件(N)”,輸入實(shí)訓(xùn)程序。如圖1.1.3所示 圖1.1.3(3) 程序輸完后,選擇“文件(F)另存為(A)”,在彈出的對(duì)話框中輸入帶有.ASM后綴新文件名。按“保存”按鈕后,程序就會(huì)以帶有.ASM后綴的文件形式存儲(chǔ)D或E磁盤上。(注意此時(shí)程序中字符會(huì)根據(jù)偉福仿真軟件的設(shè)置變色。)如圖1.1.4所示 圖1.1.4(4) 選擇“項(xiàng)目(P)編譯(M)”對(duì)源程序進(jìn)行匯編,如圖1.1.5所示。若無(wú)錯(cuò),則會(huì)在模擬的程序存儲(chǔ)器中形成機(jī)器指令代碼。 圖1.1.5(5) 選擇“窗口(W)數(shù)據(jù)窗口(D)

14、CODE”,觀察程序存儲(chǔ)器(ROM)中的內(nèi)容。如圖1.1.6所示 圖1.1.6圖1.1.7是在模擬的程序存儲(chǔ)器中形成的機(jī)器指令代碼。藍(lán)字部分為地址,黑字部分為指令代碼。拖動(dòng)右側(cè)的滾動(dòng)條可觀察整個(gè)程序存儲(chǔ)器空間的內(nèi)容。頁(yè):7頁(yè):7指令所在的地址指令代碼 圖1.1.7(6) 根據(jù)圖1.1.7窗口數(shù)據(jù),填寫下列表格。(在實(shí)驗(yàn)過(guò)程中注意*號(hào)指令的指令編碼形成)指令編碼起始地址指令編碼指令助記符0000H21H,00HAJMP 0100H0003H02H,20H,00HLJPM 2000H1.2 認(rèn)識(shí)51系列單片機(jī)的片內(nèi)隨機(jī)存儲(chǔ)器(片內(nèi)RAM)第一部分 教學(xué)要求一、實(shí)驗(yàn)?zāi)康?、認(rèn)識(shí)51系列單片機(jī)片內(nèi)隨機(jī)

15、存儲(chǔ)器(片內(nèi)RAM)的空間范圍;2、認(rèn)識(shí)51系列單片機(jī)片內(nèi)隨機(jī)存儲(chǔ)器的區(qū)域劃分;3、掌握字節(jié)地址和位地址的概念;4、了解R0R7寄存器與字節(jié)地址的關(guān)系。二、實(shí)訓(xùn)平臺(tái)1、PC機(jī),臺(tái)/人;2、偉福V3.2版仿真軟件或其它51系列單片機(jī)仿真軟件三、實(shí)驗(yàn)報(bào)告內(nèi)容項(xiàng)目形式成績(jī)?cè)u(píng)定1字節(jié)地址和位地址的概念描述書面2單片機(jī)片內(nèi)隨機(jī)存儲(chǔ)器的空間使用情況觀察填表3總成績(jī)教師簽名(注:成績(jī)?cè)u(píng)定等級(jí):優(yōu)、良、中、及格、不及格)第二部分教學(xué)內(nèi)容一、預(yù)備知識(shí)1. RAM存儲(chǔ)器RAM (Random Access Memory)即隨機(jī)訪問(wèn)存儲(chǔ)器之意,RAM存儲(chǔ)器是一種既可讀又可寫的易失性存儲(chǔ)器,其特點(diǎn)是斷電后所存儲(chǔ)的信息

16、將全部丟失,通常用來(lái)暫存運(yùn)行的程序和數(shù)據(jù)。但在單片機(jī)應(yīng)用系統(tǒng)中RAM存儲(chǔ)器僅被用來(lái)暫存運(yùn)行的數(shù)據(jù)。2. 51系列單片機(jī)片內(nèi)隨機(jī)存儲(chǔ)器的區(qū)域劃分51系列單片機(jī)片內(nèi)隨機(jī)存儲(chǔ)器根據(jù)型號(hào)的不同,其存儲(chǔ)容量為128B或256B。典型芯片的容量為128B,被劃分為工作寄存器區(qū)、位尋址區(qū)和通用RAM區(qū)等三個(gè)區(qū)域。如圖1.2.1所示。其中單片機(jī)片內(nèi)RAM中,最低的32個(gè)字節(jié)又被分成4個(gè)工作寄存器組,每組占8個(gè)字節(jié)。即: 寄存器0組:地址00H 一07H; 寄存器1組:地址08H 一0FH; 寄存器2組:地址10H 一17H; 寄存器3組:地址18H 1FH。每個(gè)工作寄存器組都有8個(gè)寄存器,分別稱為:R0,R1

17、,R7。程序運(yùn)行時(shí),只能有一個(gè)工作寄存器組作為當(dāng)前工作寄存器組。當(dāng)前工作寄存器組的選擇是由特殊功能寄存器中的程序狀態(tài)字寄存器PSW的RSl、RS0兩位決定的??梢詫?duì)這兩位進(jìn)行編程,以選擇不同的工作寄存器組。工作寄存器組與RSl、RS0的關(guān)系及地址如表2l所示。 圖1.2.1 51系列單片機(jī)片內(nèi)RAM區(qū)域劃分表21 8051單片機(jī)工作寄存器地址表組號(hào)RS1 RS0R0R1R2R3R4R5R6R70 0 000H01H02H03H04H05H06H07H1 0 108H09H0AH0BH0CH0DH0EH0FH2 1 010H11H12H13H14H15H16H17H3 1 118H19H1AH1

18、BH1CH1DH1EH1FH在工作寄存器區(qū)之后的20H2FH的16個(gè)字節(jié)為位尋址區(qū),共有128位。每位都有相應(yīng)的位地址,范圍是00H7FH。利用位尋址,可以對(duì)被尋址的位進(jìn)行位操作。在實(shí)際應(yīng)用中常把各種程序狀態(tài)標(biāo)志、位控制變量設(shè)在位尋址區(qū)內(nèi)。對(duì)于該區(qū)未用到的單元也可以作為通用RAM使用。位尋址區(qū)之后的30H7FH共80個(gè)字節(jié)為通用RAM區(qū)。這些單元有兩種用途:其一可以作為數(shù)據(jù)緩沖器使用;其二設(shè)置堆棧區(qū)。51系列單片機(jī)的堆棧一般設(shè)在30H7FH的范圍內(nèi)。棧頂?shù)奈恢糜蒘P寄存器指示。系統(tǒng)復(fù)位時(shí)SP的初值為07H,在系統(tǒng)初始化時(shí)可以重新設(shè)置。3. 尋址方式與匯編指令立即數(shù)尋址:例 MOV 30H, #

19、20H ;將數(shù)據(jù)20H送入30H單元中;直接尋址: 例 MOV 30H, 20H ;將20H單元中的數(shù)據(jù)送入30H單元中;間接尋址: 例 MOV R0, 30H ;將30H單元中的數(shù)據(jù)送入以 R0寄存器中的內(nèi)容為地址的存儲(chǔ)單元中;寄存器尋址:例 MOV R0, #20H ;將數(shù)據(jù)20H送入R0寄存器中;位尋址: 例 SETB 00H ;將位地址為00H的位置1。二、實(shí)訓(xùn)程序ORG 0000HAJMP BEGIN ORG 0030H BEGIN: MOV R0, #00H ; 0=>R0 MOV R1, #11H ; 11H=>R1 MOV R6, #66H ; 66H=>R6

20、 MOV R7, #77H ; 77H=>R7 MOV R0, 01H ; 將01單元中的數(shù)據(jù)=>R0 MOV R6, 07H ; 將07單元中的數(shù)據(jù)=>R6 SETB RS0 ; 設(shè)置寄存器組為一組,RS1,RS0=01 MOV R0, 00H ; 將00單元中的數(shù)據(jù)=>寄存器一組中的R0MOV R1, 01H ; 將01單元中的數(shù)據(jù)=>寄存器一組中的R1MOV R7, 07H ; 將07單元中的數(shù)據(jù)=>寄存器一組中的R7 SETB RS1 ; 設(shè)置寄存器組為三組,RS1,RS0=11 MOV R6, 00H ; 將00單元中的數(shù)據(jù)=>寄存器三組中的

21、R6MOV R7, 17H ; 將17單元中的數(shù)據(jù)=>寄存器三組中的R7 MOV 20H , #00H ; 0=>20H單元 MOV 2FH, #0FFH ; FFH=>2FH單元 SETB 00H ; 位地址00H置“1” SETB 07H ; 位地址07H置“1”CLR 78H ; 位地址78H清“0”CLR 7FH ; 位地址7FH清“0” MOV 31H , #31H ;31H=>31H單元 MOV 32H , #32H ;32H=>32H單元 CLR RS0 ; CLR RS1 ; 設(shè)置寄存器組為0組,RS1,RS0=00PUSH 00H ; 將00單元

22、中的數(shù)據(jù)入棧 MOV SP , #30H ; 重新設(shè)置棧地址為30H PUSH 00H ; 將00單元中的數(shù)據(jù)入棧PUSH 01H ; 將01單元中的數(shù)據(jù)入棧 POP 00H ; 彈出棧頂數(shù)據(jù)至00單元POP 01H ; 彈出棧頂數(shù)據(jù)至01單元AJMP $ ; 三、實(shí)訓(xùn)1. 閱讀以上程序,正確理解每一條指令功能。2. 將以上實(shí)訓(xùn)用程序通過(guò)偉福V3.2版仿真軟件(或其它51系列單片機(jī)仿真軟件)輸入到計(jì)算機(jī)中,并以*.ASM 文件名保存,然后進(jìn)行匯編。3. 匯編成功后,分別將光標(biāo)移至標(biāo)記所在行,通過(guò)偉福V3.2版仿真軟件的“執(zhí)行(R)設(shè)置/取消斷點(diǎn)(B)”菜單對(duì)標(biāo)記所在行設(shè)置斷點(diǎn)。如圖1.2.2所

23、示。4 選擇偉福V3.2版仿真軟件的“執(zhí)行(R)復(fù)位(E) 菜單。使程序從第一條指令開(kāi)始執(zhí)行。斷點(diǎn)起點(diǎn) 圖1.2.25 通過(guò)偉福V3.2版仿真軟件的“執(zhí)行(R)全速執(zhí)行(R)”菜單, 執(zhí)行到第一個(gè)斷點(diǎn)處暫停。6 通過(guò)偉福V3.2版仿真軟件的“窗口(W)數(shù)據(jù)窗口(D)DATA”菜單,觀察指令運(yùn)行結(jié)果。如圖1.2.3和圖1.2.4所示。圖1.2.3地址 數(shù)據(jù)圖1.2.47填寫下表。體會(huì)0組寄存器組與片內(nèi)RAM地址的關(guān)系。寄存器名寄存器的地址寄存器中數(shù)據(jù)R0R1R6R78 通過(guò)偉福V3.2版仿真軟件的“執(zhí)行(R)全速執(zhí)行(R)”菜單, 執(zhí)行到第二個(gè)斷點(diǎn)處暫停。9 通過(guò)偉福V3.2版仿真軟件的“窗口(

24、W)數(shù)據(jù)窗口(D)DATA”菜單,觀察指令運(yùn)行結(jié)果。10填寫下表。體會(huì)寄存器與寄存器之間的數(shù)據(jù)傳遞。寄存器名寄存器的地址寄存器中數(shù)據(jù)R0R611 通過(guò)偉福V3.2版仿真軟件的“執(zhí)行(R)全速執(zhí)行(R)”菜單, 執(zhí)行到第三個(gè)斷點(diǎn)處暫停。12 通過(guò)偉福V3.2版仿真軟件的“窗口(W)數(shù)據(jù)窗口(D)DATA”菜單,觀察指令運(yùn)行結(jié)果。13填寫下表。體會(huì)第一組寄存器組與片內(nèi)RAM地址的關(guān)系。寄存器名寄存器的地址寄存器中數(shù)據(jù)R0R1R714 通過(guò)偉福V3.2版仿真軟件的“執(zhí)行(R)全速執(zhí)行(R)”菜單, 執(zhí)行到第四個(gè)斷點(diǎn)處暫停。15 通過(guò)偉福V3.2版仿真軟件的“窗口(W)數(shù)據(jù)窗口(D)DATA”菜單,觀

25、察指令運(yùn)行結(jié)果。16填寫下表。體會(huì)第三組寄存器組與片內(nèi)RAM地址的關(guān)系。寄存器名寄存器的地址寄存器中數(shù)據(jù)R6R717 通過(guò)偉福V3.2版仿真軟件的“執(zhí)行(R)全速執(zhí)行(R)”菜單, 執(zhí)行到第五個(gè)斷點(diǎn)處暫停。18 通過(guò)偉福V3.2版仿真軟件的“窗口(W)數(shù)據(jù)窗口(D)DATA”菜單,觀察指令運(yùn)行結(jié)果。19填寫下表。體會(huì)位尋址空間。RAM字節(jié)地址字節(jié)地址中數(shù)據(jù)20H2FH20 通過(guò)偉福V3.2版仿真軟件的“執(zhí)行(R)全速執(zhí)行(R)”菜單, 執(zhí)行到第六個(gè)斷點(diǎn)處暫停。21 通過(guò)偉福V3.2版仿真軟件的“窗口(W)數(shù)據(jù)窗口(D)DATA”菜單,觀察指令運(yùn)行結(jié)果。22.填寫下表。體會(huì)位地址與字節(jié)地址的關(guān)系

26、。RAM字節(jié)地址字節(jié)地址中數(shù)據(jù)20H2FH23 通過(guò)偉福V3.2版仿真軟件的“執(zhí)行(R)全速執(zhí)行(R)”菜單, 執(zhí)行到第七個(gè)斷點(diǎn)處暫停。24 通過(guò)偉福V3.2版仿真軟件的“窗口(W)數(shù)據(jù)窗口(D)DATA”菜單,觀察指令運(yùn)行結(jié)果。25填寫下表。RAM字節(jié)地址字節(jié)地址中數(shù)據(jù)31H32H26 通過(guò)偉福V3.2版仿真軟件的“執(zhí)行(R)全速執(zhí)行(R)”菜單, 執(zhí)行到第八個(gè)斷點(diǎn)處暫停。27 通過(guò)偉福V3.2版仿真軟件的“窗口(W)數(shù)據(jù)窗口(D)DATA”菜單,觀察指令運(yùn)行結(jié)果。28填寫下表。體會(huì)初始棧區(qū)的位置棧頂?shù)刂窏m斨械臄?shù)據(jù)29 通過(guò)偉福V3.2版仿真軟件的“執(zhí)行(R)全速執(zhí)行(R)”菜單, 執(zhí)行到

27、第九個(gè)斷點(diǎn)處暫停。30 通過(guò)偉福V3.2版仿真軟件的“窗口(W)數(shù)據(jù)窗口(D)DATA”菜單,觀察指令運(yùn)行結(jié)果。31填寫下表。體會(huì)修改后棧區(qū)的位置棧頂?shù)刂窏m斨械臄?shù)據(jù)00H單元中的數(shù)據(jù)01H單元中的數(shù)據(jù)32 通過(guò)偉福V3.2版仿真軟件的“執(zhí)行(R)全速執(zhí)行(R)”菜單, 執(zhí)行到第十個(gè)斷點(diǎn)處暫停。33 通過(guò)偉福V3.2版仿真軟件的“窗口(W)數(shù)據(jù)窗口(D)DATA”菜單,觀察指令運(yùn)行結(jié)果。34填寫下表。體會(huì)利用堆棧進(jìn)行數(shù)據(jù)傳遞00H單元中的數(shù)據(jù)01H單元中的數(shù)據(jù)實(shí)驗(yàn)二、51單片機(jī)資源認(rèn)識(shí)及51單片機(jī)編程設(shè)計(jì)中斷方式的編程應(yīng)用2.1 認(rèn)識(shí)51系列單片機(jī)的片內(nèi)特殊功能寄存器第一部分 教學(xué)要求一、實(shí)驗(yàn)

28、目的1、認(rèn)識(shí)51系列單片機(jī)片內(nèi)特殊功能寄存器的地址空間范圍;2、掌握51系列單片機(jī)片內(nèi)特殊功能寄存器的字節(jié)地址;3、掌握51系列單片機(jī)片內(nèi)特殊功能寄存器的位地址。4、了解51系列單片機(jī)片內(nèi)特殊功能寄存器的用途;二、實(shí)訓(xùn)平臺(tái)1、PC機(jī),臺(tái)/人;2、偉福V3.2版仿真軟件或其它51系列單片機(jī)仿真軟件三、實(shí)驗(yàn)報(bào)告內(nèi)容項(xiàng)目形式成績(jī)?cè)u(píng)定1常用單片機(jī)特殊功能寄存器的功能描述書面2單片機(jī)片內(nèi)隨機(jī)存儲(chǔ)器的空間使用情況觀察填表3總成績(jī)教師簽名(注:成績(jī)?cè)u(píng)定等級(jí):優(yōu)、良、中、及格、不及格)第二部分教學(xué)內(nèi)容一、預(yù)備知識(shí)1、51系列單片機(jī)片內(nèi)特殊功能寄存器(SFR)的地址空間是與片內(nèi)隨機(jī)存儲(chǔ)器統(tǒng)一編址的,其地址空間范

29、圍是80HFFH。如圖1.3.1所示。圖2.1.13. 51系列單片機(jī)根據(jù)芯片型號(hào)的不同,其片內(nèi)特殊功能寄存器的數(shù)量有所不同。以典型芯片8031為例,片內(nèi)特殊功能寄存器有21個(gè)。它們離散地分布在80HFFH地址(字節(jié)地址)空間上。值得注意的是:那些分布在字節(jié)地址能被8整除的(即16進(jìn)制的地址碼尾數(shù)為0或8的)單元的特殊功能寄存器不但有字節(jié)地址而且還具有位地址,其位地址的空間范圍也是80HFFH,但不連續(xù)編址。編址的原則是具有位地址的特殊功能寄存器,其字節(jié)地址亦是特殊功能寄存器第0位的位地址。例如:作為特殊功能寄存器之一的累加器A,字節(jié)地址為E0H,則累加器A第0位的位地址也是E0H,累加器A第

30、0位至第7位的位地址是E0HE7H。 見(jiàn)表2.1.1。3 51系列單片機(jī)片內(nèi)的特殊功能寄存器有著特殊的地位。從某種意義上講使用51系列單片機(jī)就是使用單片機(jī)片內(nèi)的特殊功能寄存器,因此,正確地理解和使用51系列單片機(jī)片內(nèi)的特殊功能寄存器對(duì)使用51系列單片機(jī)而言是具有決定性作用的。51系列單片機(jī)片內(nèi)的特殊功能寄存器幾乎包括了在微型計(jì)算機(jī)原理中敘述的所有基本功能單元。這些基本功能單元是:計(jì)算、尋址、計(jì)算機(jī)及程序狀態(tài)、并行和串行I/O操作、定時(shí)/計(jì)數(shù)器操作和中斷控制等。簡(jiǎn)單羅列如下:·累加器A,8位。它是8051單片機(jī)中最繁忙的寄存器,用于向ALU提供操作數(shù),許多運(yùn)算的結(jié)果也存放在累加器中。&

31、#183;B寄存器,8位。主要用于乘、除法運(yùn)算。也可以作為RAM的一個(gè)單元使用。·PSW是程序狀態(tài)字寄存器,8位。起標(biāo)志寄存器的作用。其中CY是進(jìn)位、借位標(biāo)志,有進(jìn)位、借位時(shí)CY=1,否則CY=0;AC是輔助進(jìn)位、借位標(biāo)志(高四位與低四位間的進(jìn)位、借位),有輔助進(jìn)位、借位時(shí)AC=1,否則AC=0;FO是用戶標(biāo)志位,由用戶自己定義;RSl、RS0為工作寄存器組選擇位;OV為溢出標(biāo)志位,有溢出時(shí)OV=l,否則OV=0;P是奇偶標(biāo)志位,運(yùn)算結(jié)果中有奇數(shù)個(gè)“1”時(shí)P=l,否則P=0。·SP棧指針寄存器,8位。用于指示當(dāng)前棧頂?shù)刂?。棧操作遵循“后進(jìn)先出”的原則。入棧操作時(shí),SP先加1

32、,數(shù)據(jù)再壓人SP指向的單元。出棧操作時(shí),先將SP指向的單元的數(shù)據(jù)彈出,然后,SP再減1,這時(shí)SP指向的單元是新的棧頂。·DPTR是16位的數(shù)據(jù)指針寄存器。它由兩個(gè)8位的寄存器DPH和DPL組成,用來(lái)存放16位的地址,采用間接尋址或變址尋址方式可對(duì)片外的RAM或ROM作64KB范圍的數(shù)據(jù)進(jìn)行操作。·P0、P1、P2、P3是4個(gè)并行IO端口寄存器。通過(guò)對(duì)這幾個(gè)寄存器的讀寫,可以實(shí)現(xiàn)數(shù)據(jù)從相應(yīng)端口的并行輸入輸出。·SBUF是串行端口數(shù)據(jù)緩沖器,通過(guò)SBUF可以實(shí)現(xiàn)全雙工串行數(shù)據(jù)通信。·SCON是串行端口控制寄存器,用于控制和設(shè)置串行數(shù)據(jù)通信。·PCO

33、N是串行通信波特率倍增寄存器,用于設(shè)置串行數(shù)據(jù)通信的波特率。·THO、TL0是定時(shí)計(jì)數(shù)器TO的兩個(gè)8位計(jì)數(shù)初值寄存器,可以構(gòu)成16位的計(jì)數(shù)器,其中,TH0存放高8位,TL0存放低8位。·TH1、TL1是定時(shí)計(jì)數(shù)器T1的兩個(gè)8位計(jì)數(shù)初值寄存器,可以構(gòu)成16位的計(jì)數(shù)器,其中,TH1存放高8位,TL1存放低8位。·TMOD是定時(shí)計(jì)數(shù)器的工作模式寄存器,用于設(shè)置定時(shí)計(jì)數(shù)器的工作模式·TCON是定時(shí)計(jì)數(shù)器的控制寄存器,用于控制定時(shí)計(jì)數(shù)器和中斷的操作。·IE是中斷允許控制寄存器, 用于允許/屏蔽中斷源的中斷請(qǐng)求。·IP是中斷優(yōu)先級(jí)控制寄存器,用于

34、設(shè)置中斷源的中斷優(yōu)先級(jí)。表2.1.1二、實(shí)訓(xùn)程序ORG 0000HAJMP BEGIN ORG 0030H BEGIN: MOV A, #0FH ; 0F=>A MOV 0E0H, #0F0H ; F0H=>E0H單元SETB 0E0H ; 將位地址E0H置1CLR 0E7H ; 將位地址E7H清零CLR C ; 清進(jìn)位位ADD A, #0FFH ;(A)+FFH=>AADDC A, #00H ;(A)+00H+CY=>ASETB 0EAH ;將位地址EAH置1MOV P1, #0FH ;0FH=>P1SETB P1.7 ;將位地址97H置1CLR P1.0 ;將

35、位地址90H清零MOV DPL, #00HMOV DPH, #20H ;DPTR=2000HMOV TL0, #00HMOV TH0, #10H ;TH0TL0=1000HAJMP $三、實(shí)訓(xùn)4. 閱讀以上程序,正確理解每一條指令功能。5. 將以上實(shí)訓(xùn)用程序通過(guò)偉福V3.2版仿真軟件(或其它51系列單片機(jī)仿真軟件)輸入到計(jì)算機(jī)中,并以*.ASM 文件名保存,然后進(jìn)行匯編。3 選擇偉福V3.2版仿真軟件的“執(zhí)行(R)復(fù)位(E) 菜單。使程序從第一條指令開(kāi)始執(zhí)行。4 選擇偉福V3.2版仿真軟件的“執(zhí)行(R)單步(S) 菜單或按F8鍵,如圖1.3.2所示。單步執(zhí)行實(shí)訓(xùn)用程序。圖2.1.25 選擇偉福

36、V3.2版仿真軟件的“窗口(W)CPU窗口菜單,如圖2.1.3所示。并根據(jù)表1.3.1,填表下列表格。寄存器名圖2.1.3表2.1.2指令填寫內(nèi)容需掌握的要點(diǎn)MOV A, #0FHA的地址 ,A中的值 指令編碼:74H,0FH注意累加器A的值的變化并與下一條指令比較MOV 0E0H, 0F0HA中的值指令編碼:累加器A在特殊功能寄存器區(qū)中的字節(jié)地址。SETB 0E0HA中的值注意累加器A的值的變化和累加器A的位地址CLR 0E7HA中的值注意累加器A的值的變化和累加器A的位地址CLR CPSW中的值注意進(jìn)位位的位地址ADD A, #0FFHA中的值,PSW中的值驗(yàn)證(A)+FFH=>A,

37、并注意PSW中的值的變化原因ADDC A, #00HA中的值注意累加器A的值的變化SETB 0EAH位地址EAH所在的字節(jié)地址了解位地址EAH被置1的意義MOV P1, #0FHP1的字節(jié)地址 P1中的值通過(guò)P1的并行輸出操作SETB P1.7P1.7的位地址P1中的值了解P1.7與P1的關(guān)系,常用的位控輸出方式CLR P1.0P1.0的位地址P1中的值了解P1.0與P1的關(guān)系,常用的位控輸出方式MOV DPL, #00HDPL的字節(jié)地址 DPL中的值MOV DPH, #20HDPL中的值DPTR中的值掌握DPTR的形成MOV TL0, #00HTL0的字節(jié)地址 TL0中的值MOV TH0,

38、#10HTH0中的值 T0中的值掌握T0的形成2.2 認(rèn)識(shí)51系列單片機(jī)的片外數(shù)據(jù)存儲(chǔ)器(片外RAM)及全部存儲(chǔ)空間訪問(wèn)第一部分 教學(xué)要求一、目的要求1、認(rèn)識(shí)51系列單片機(jī)的片外數(shù)據(jù)存儲(chǔ)器(片外RAM)的地址空間范圍;2、認(rèn)識(shí)51系列單片機(jī)的片外數(shù)據(jù)存儲(chǔ)器的用途;3、掌握51系列單片機(jī)全部存儲(chǔ)空間(ROM、片外RAM和片內(nèi)RAM)的訪問(wèn)方法。二、實(shí)訓(xùn)平臺(tái)4、PC機(jī),臺(tái)/人;5、偉福V3.2版仿真軟件或其它51系列單片機(jī)仿真軟件三、實(shí)驗(yàn)報(bào)告內(nèi)容項(xiàng)目形式成績(jī)?cè)u(píng)定151系列單片機(jī)全部存儲(chǔ)空間描述書面2單片機(jī)三類存儲(chǔ)器空間的使用情況觀察填表3總成績(jī)教師簽名(注:成績(jī)?cè)u(píng)定等級(jí):優(yōu)、良、中、及格、不及格)

39、第二部分教學(xué)內(nèi)容一、預(yù)備知識(shí)1. 片外RAM存儲(chǔ)器由于51系列單片機(jī)片外的地址總線為16位,所以能尋址的片外RAM空間為64K。與片內(nèi)的RAM存儲(chǔ)器一樣,片外RAM存儲(chǔ)器也是一種既可讀又可寫的易失性存儲(chǔ)器,故片外RAM存儲(chǔ)器通常被用來(lái)暫存程序運(yùn)行時(shí)所采集的數(shù)據(jù)。2 51系列單片機(jī)三類存儲(chǔ)器空間51系列單片機(jī)的存儲(chǔ)器空間按訪問(wèn)途徑分,可分為三類(ROM、片內(nèi)RAM和片外RAM)。如圖1.4.1所示。這三類存儲(chǔ)器空間在使用上有著明確地分工,ROM用來(lái)存儲(chǔ)程序和數(shù)據(jù)表,由于ROM存儲(chǔ)器需使用專用的編程器進(jìn)行寫入,并且是非易失性的,所以人們形象地稱寫入ROM中的程序和數(shù)據(jù)為固化。片內(nèi)RAM存儲(chǔ)器的使用

40、最為豐富,除了有非常重要的特殊功能寄存器外,還有工作寄存器組、堆棧、位地址和用戶數(shù)據(jù)緩存等用途。片外RAM存儲(chǔ)器的用途最為單一,僅被用作暫存程序運(yùn)行時(shí)所采集的數(shù)據(jù),通常I/O接口會(huì)占用一些片外RAM存儲(chǔ)器的地址(這部分內(nèi)容將在后面的章節(jié)介紹)。圖2.2.13 51系列單片機(jī)三類存儲(chǔ)器空間的訪問(wèn)(存/?。?從圖2.2.1上我們可以看到三類存儲(chǔ)器空間的地址都是從0開(kāi)始編址的,這就意味著這三類存儲(chǔ)器的地址空間是重疊的(ROM與片外RAM完全重疊,片內(nèi)RAM存儲(chǔ)器與片外RAM存儲(chǔ)器和ROM的低端重疊)。從微機(jī)原理上講,地址是CPU用來(lái)選擇訪問(wèn)對(duì)象的(每一個(gè)地址即為一個(gè)對(duì)象),并且在任一時(shí)刻CPU的訪問(wèn)

41、對(duì)象必須是唯一的。 由于三類存儲(chǔ)器的地址空間是重疊的,單靠地址無(wú)法唯一選擇訪問(wèn)對(duì)象。所以在51系列單片機(jī)中了采用地址控制信號(hào)的方法來(lái)選擇訪問(wèn)對(duì)象,具體做法是:對(duì)三類存儲(chǔ)器地址空間的訪問(wèn)分別用三種不同的控制信號(hào)地址進(jìn)行,這樣即使地址編碼相同,但由于控制信號(hào)的不同,所以CPU也能唯一選擇訪問(wèn)對(duì)象。4 控制信號(hào)與指令 微機(jī)原理告訴我們,控制信號(hào)的產(chǎn)生是指令被譯碼的結(jié)果,那么不同的控制信號(hào)就是不同的指令被譯碼的結(jié)果。在51系列單片機(jī)中,讀ROM是PSEN信號(hào)有效、讀片外RAM是RD信號(hào)有效,而寫片外RAM則是WR信號(hào)有效。訪問(wèn)三類存儲(chǔ)器空間地址的指令(舉例)及單片機(jī)引腳信號(hào)見(jiàn)表2.2.1。 表2.2.1訪問(wèn)對(duì)象指令PSENRDWR讀ROM讀片外RAM寫片外RAM讀片內(nèi)RAM寫片內(nèi)RAM

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論