试验1试验2熟悉软件开发环境及51单片机编程学生版_第1页
试验1试验2熟悉软件开发环境及51单片机编程学生版_第2页
试验1试验2熟悉软件开发环境及51单片机编程学生版_第3页
试验1试验2熟悉软件开发环境及51单片机编程学生版_第4页
试验1试验2熟悉软件开发环境及51单片机编程学生版_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验一、熟悉软件开发环境及51单片机资源认识I/O 口的应用与编程计算机的应用是一个系统,这个系统应由两部分组成一一硬件和软件。硬件是指具体的元器件、电路等,软件则是指程序和数据。如果説硬件是计算机应用系统的基础的话,那么软件则是计算机应用系统的灵魂。计算机原理告诉我们程序和数据是被“装载”在计算机存储器中的,从某种意义上讲,认识一个计算机的存储器系统是开发软件所必须的。为了全面认识51系列单片机的存储空间,实验一与实验二列出四个实训单元。在进行 完四个实训单元后,要求学生应全面了解51系列单片机的程序存储器(ROM )、片内随机存储器(片内RAM )和片外随机存储器(片外 RAM )空间的范

2、围、用途和使用方法等。1.1认识51系列单片机的程序存储器(ROM)第一部分教学要求一、实验目的:1. 认识51系列单片机的程序存储器(ROM )的空间范围;2. 认识汇编指令编码在 ROM中存储形式;3. 掌握指令编码和指令编码所在地址的概念;4. 了解51系列单片机的程序存储器(ROM )固定地址的用途。二、实训平台1. PC机,台/人;2. 伟福V3.2版仿真软件或其它 51系列单片机仿真软件、实验报告内容:项目形式成绩评定151系列单片机ROM存储空间描述书面251系列单片机ROM间使用情况观察填表3总成绩教师签名(注:成绩评定等级:优、良、中、及格、不及格)第二部分教学内容一、预备知

3、识1. ROM存储器ROM(Read Only Memory)即只读存储器之意,其特点是在计算机正常运行的情况下CPU对ROM存储器只能进行读操作且断电后信息不会丢失,通常用来存储固定不变的程序和数据,如引导程序、基本输入输出系统程序等。ROM按其性能可分为以下几类:(1)掩模工艺ROM它是由芯片制造厂根据ROM要求存储的信息,制造成固定的半导体掩模版生产的。一旦制出成品后,其存储的信息只能读出,不能改变。这种ROMg用于存储固定不变的程序和 数据,批量生产时,成本较低。(2)可一次编程PROM允许用户对 ROMS行一次编程。可擦除的EPROM允许用户对ROMS行多次编程,即可擦除。按擦除的方

4、法不同, 可分为紫外线擦除的可擦除可编程序只读存储器 EPROM(Erasable Programmable Read Only Memory) 和电擦除的电 可擦 除编程序只读存储器 EEPROM(Electrically Erasable Programmable Read Only Memory)。Flash存储器Flash存储器是在20世纪80年代末逐渐发展起来的一种新型不挥发性半导体存储器, 它结合了以往EPROMS构简单、密度高和 EEPRO在系统的电可擦除性的一些优点,实现了 高密度、低成本和高可靠性。Flash存储器和传统存储器的最大区别在于它是按块(Sector)擦除,按位编

5、程,从而实现了快闪擦除的高速度。目前它广泛应用于PCBIOS数字蜂窝电话、汽车领域和微控制器等许多领域。EPROM EEPROMFlash存储器需通过专用的编程器将程序和数据写入其中。2. 51系列单片机ROM空间由于5l系列单片机的程序计数器 PC是16位的,所以能寻址64KB的程序存储器地址范 围。允许用户程序调用或转向64KB的任何存储单元。在 5l系列单片机中根据不同的型号,其程序存储器的形式也有所不同。例如:8051单片机在芯片内部设置了4 KB掩模版的ROM8751单片机在芯片内部设置了4 KB的EPROM89C52单片机在芯片内部设置了 8 KB的Flash存储器,而8031单片

6、机在芯片内部没有设置程序存储器,需要在单片机外部配置EPROM51系列单片机的EA引脚为访问内部或外部程序存储器的选择端。当EA引脚接高电平时,CPU将首先访问内部存储器,当指令地址超过内部存储器的最大地址时,自动转向片外ROM去取指令。当EA引脚接低电平时(接地),CPU只能访问外部程序存储器。对于8031单片机,由于其内部无程序存储器,故只能采用这种接法。51系列单片机程序存储器的地址从0000H开始编址。程序存储器低端的一些地址被固定地用作特定程序的入口地址:0000H0000H:单片机复位后的程序入口地址;0001H0003H:外部中断0的中断服务程序入口地址;000BH定时器0的中断

7、服务程序入口地址;:0013H:外部中断I的中断服务程序入口地址;:001BH定时器1的中断服务程序入口地址;0023H:串行端口的中断服务程序入口地址;002BH定时器2的中断服务程序入口地址。FFFFH编程时,通常在这些入口地址开始的二三个单元中,放人一条转移指令,以使相应的服务与实际分配的程序存储器区域中的程序段相对应(仅在中断服务程序较短时,才可以将中断服务程序直接放在相应的人口地址开始的几个单元中)。3. 源程序汇编与程序定位伪指令将汇编语言源程序转换为计算机能执行的机器码形式的目标程序的过程叫汇编。汇编常用的方法有两种:一是手工汇编,二是利用计算机汇编。手工汇编时,把程序用助记符指

8、令写出后, 通过手工方式查指令编码表,逐个把助记符指令翻译成机器码,然后把得到的机器码程序(以十六进制形式)键入到单片机开发机中, 并进行调试。由于手工汇编是按绝对地址进行定位的,所以,对于偏移量的计算和程序的修改有诸多不便。通常只有程序较小或条件所限时才使用。机器汇编是在常用的个人计算机上,使用交叉汇编程序将汇编语言源程序转换为计算机能执行的机器码形式的目标程序。汇编工作由计算机自动完成。生成的目标程序由PC机传 到开发机上,经调试无误后,再固化到程序存储器 ROM中o机器汇编与手工汇编相比具有极 大的优势,是汇编工作的首选。本教材选用的伟福仿真软件就可进行机器汇编。伪指令不是单片机执行的指

9、令, 没有对应的机器码,仅是用来对汇编过程进行某种控制。 常用的伪指令有:(1) 定位伪指令ORG 格式: 标号: ORG l6 位地址 功能:规定程序块或数据块存放的起始地址。如:ORG 8000HSTART:MOV A, #30H该语句规定第一条指令从地址8000H单元开始存放。标号 START勺值为8000H。通常,在一段汇编语言源程序的开始,都要设置一条0R(伪指令来指定该程序在存储器中存放的起 始位置。若省略ORG伪指令,则该程序段从 0000H单元开始存放。在一个源程序中,可以多 次使用ORG伪指令,以规定不同程序段或数据段存放的起始地址,但要求16位地址值由小到大依序排列,不允许

10、空间重叠。(2) 汇编结束伪指令 END 格式: 标号: END 表达式 功能:结束汇编。汇编程序遇到END伪指令后即结束汇编。处于END之后的程序,汇编程序不予处理。(3) 字节数据定义伪指令 DB格式: 标号: DB 8 位字节数据表功能: 从标号指定的地址单元开始, 在程序存储器中定义字节数据。 字节数据表可以是一个 或多个字节数据、 字符串或表达式。 该伪指令将字节数据表中的数据按从左到右的顺序依次 存放在指定的存储单元中。一个数据占一个存储单元。4. 伟福 V3.2 版仿真软件使用见后续实验讲义。二、实训程序ORG 0000H* AJMP BEGIN ; 转初始化程序段ORG 000

11、3HLJMP PINT0; 转外部中断 0的中断服务程序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的中断服务程序INC R1MOV A, R1MOVX R0, AMO

12、V RO, #02HMOV A, #01HMOVX R0, ACLR AMOVX R0, A* DJNZ R2, NEXTCLR EX0SJMP DONENEXT: SETB EX0DONE: RETIEND三、实训将以上实训程序通过伟福V3.2版仿真软件(或其它51系列单片机仿真软件)输入到计算机中,并以*.ASM 文件名保存,然后进行汇编。汇编成功后,通过伟福V3.2版仿真软件的“窗口(WH数据窗口(D)t CODE菜单观察程序存储器 (ROM )中的内容,理解“地址”、 “指令代码”的概念,并了解51系列单片机程序存储器(ROM )空间的分布特点。注:本节实训不要求学生具体读懂上述程序的

13、具体功能。具体步骤如下:(1)打开伟福V3.2版仿真软件,选择伟福软件模拟器。如图1.1.2所示伟柜'r'3. 2C 软怦模損器-InHI交件® 编辑® 搜索顶目电1搠外谟 帮助0P窗口址)器GO)j:;1图 1.1.2(2)选择“文件(F) t新建文件(N) ” ,输入实训程序。如图1.1.3 所示图 1.1.3(3) 程序输完后,选择“文件(F) t另存为(A) ” ,在弹出的对话框中输入带有.ASM后缀新文 件名。按“保存”按钮后,程序就会以带有 .ASM后缀的文件形式存储 D或E磁盘上。(注意 此时程序中字符会根据伟福仿真软件的设置变色。)如图1.1

14、.4所示-13. x|tt备 V30 ;戮件樱担器(OJ31)C;WA¥EXBIHl立州日褊做目揍索项日回执石外设窗口辿!)酋宣器g帮助迥1 b|hId前 rnnAiE 1前 rnnAiE 1Lg 為團|电|乃出 回习國圍富口雷|y?07HDPHR.OOQAA:OQHP3W: OOHBIGIN: SBIGIH:PC COCOM图 1.1.4(4) 选择“项目(P) t编译(M) ”对源程序进行汇编,如图1.1.5所示。若无错,则会在模拟的程序存储器中形成机器指令代码。tb 备 V3.Z0 :戟芹櫻槪雷(B03i J C:A¥EEI傀UltUllHlJ文件妁繃竈或披隶(3 |

15、顶目(曰IMi®夕卜设加窗口(妙厉真歆2) m(H)PC COOOHDPTRi OOODhA CO Hi OQhl5F; 07H;DiOu>图 1.1.5 选择“窗口 (WT数据窗口(D) f CODE,观察程序存储器(ROM )中的内容。如图1.1.6 所示-1口1 刈艾件霍辑(£)摆索(项目眄执订® 外瞰L)|窗口(国肓其圜 祜刘也DP'K OOOOMA: Otn P5W: OOH5F: 07h恰暮 V3.2C : IfcFtSfflH (8031) C:WflVEHINvLHtitledFC: OJUOH执订时冋;0.UE图 1.1.6图1.1

16、.7是在模拟的程序存储器中形成的机器指令代码。蓝字部分为地址,黑字部分为指令代码。拖动右侧的滚动条可观察整个程序存储器空间的内容。|We V3.2D:弱件隈也器(6031J LCjWAVEBIN .Untitled如© 劇fl® 贬目(巴抉行外徴。富口憾血器辺衲脚也瀏jJ已仁口1白為昵嗚匾| w M !i制回国SH0I0SIncitzJ|PCi OOOOHDPintcaaDHAl ODHres cohSPs 07H>mrto.ou=图 1.1.7PC. ClOCI'i(6)根据图1.1.7窗口数据,填写下列表格。(在实验过程中注意*号指令的指令编码形成)指令编

17、码起始地址指令编码指令助记符OOOOH21H,00HAJMP 0100H0003H02H,20H,00HLJPM 2000H1.2认识51系列单片机的片内随机存储器(片内 RAM )第一部分教学要求一、实验目的1、认识51系列单片机片内随机存储器(片内 RAM )的空间范围;2、认识51系列单片机片内随机存储器的区域划分;3、掌握字节地址和位地址的概念;4、了解R0R7寄存器与字节地址的关系。二、实训平台1、PC机,台从;2、伟福V3.2版仿真软件或其它 51系列单片机仿真软件、实验报告内容项目形式成绩评定1字节地址和位地址的概念描述书面2单片机片内随机存储器的空间使用情况观察填表3总成绩教师

18、签名(注:成绩评定等级:优、良、中、及格、不及格)第二部分教学内容一、预备知识1. RAM存储器RAM (Random Access Memory)即随机访问存储器之意,RAM存储器是一种既可读又可写的易失性存储器,其特点是断电后所存储的信息将全部丢失,通常用来暂存运行 的程序和数据。但在单片机应用系统中RAM存储器仅被用来暂存运行的数据。2. 51系列单片机片内随机存储器的区域划分51系列单片机片内随机存储器根据型号的不同,其存储容量为128B或256B。典型芯片的容量为128B,被划分为工作寄存器区、位寻址区和通用 RAM区等三个区域。如 图1.2.1所示。其中单片机片内 RAM中,最低的

19、32个字节又被分成4个工作寄存器组,每组占 8个字节。即:寄存器0组:地址00H -一 07H ;寄存器1组:地址08H -一 0FH ;寄存器2组:地址10H -一 17H ;寄存器3组:地址18H -1FH。每个工作寄存器组都有8个寄存器,分别称为:R0, R1,R7。程序运行时,只能有一个工作寄存器组作为当前工作寄存器组。当前工作寄存器组的选择是由特殊功能寄存器中的程序状态字寄存器PSW的RSI、RSO两位决定的。可以对这两位进行编程,以选择不同的工作寄存器组。工作寄存器组与RSI、RS0的关系及地址如表 2 I所示。位地址2FH2EH2CK28B3F7E肝r&feE67畫ST5

20、G4F祠WT4&3F詞36EF2E2T胡IFIE171司OF0E'or7C村79T47312ri70&C師636$G415B轩打晴利54535151.504B74"為44d?4241.40K帖汨浦S4裁2C?B2$23匸423222J洞1C1A1917i ?'1"7710KOB的凹0804C201Q02 OF3 OH£FT(25HE4H逊£0K字节地址OOHfflRAMU也地址区/R7K寄谆辭耳组E4帝莽客2组B3奇薛寰1辺R1窃存爵此aK01FH07HOSH 伽04H0 3H 。俎 GiftOOH图1.2.151系列单片

21、机片内 RAM区域划分表2 18051单片机工作寄存器地址表组号RS1 RS0R0R1R2R3R4R5R6R700 000H01H02H03H04H05H06H07H10 108H09H0AH0BH0CH0DH0EH0FH21 010H11H12H13H14H15H16H17H31 118H19H1AH1BH1CH1DH1EH1FH在工作寄存器区之后的 20H2FH的16个字节为位寻址区,共有 128位。每位都有 相应的位地址,范围是00H7FH。利用位寻址,可以对被寻址的位进行位操作。在实际 应用中常把各种程序状态标志、位控制变量设在位寻址区内。对于该区未用到的单元也 可以作为通用RAM使用

22、。位寻址区之后的 30H7FH共80个字节为通用 RAM区。这些单元有两种用途:其一可以作为数据缓冲器使用;其二设置堆栈区。51系列单片机的堆栈一般设在30H7FH的范围内。栈顶的位置由 SP寄存器指示。系统复位时 SP的初值为07H,在系统初始化 时可以重新设置。3. 寻址方式与汇编指令立即数寻址:例 MOV 30H, #20H ;将数据20H送入30H单元中; 直接寻址:例MOV 30H, 20H ;将20H单元中的数据送入 30H单元中;间接寻址:例MOV R0, 30H ;将30H单元中的数据送入以 R0寄存器中的内容为地址的存储单元中;寄存器寻址:例 MOV R0, #20H ;将数

23、据20H送入R0寄存器中;位寻址:例 SETB 00H;将位地址为00H的位置1。二、实训程序ORG 0000HAJMP BEGINORG 0030HBEGIN: MOVRO, #00H;0=>R0MOVR1, #11H:11H=>R1MOVR6, #66H ; 66H=>R6MOVR7, #77H:77H=>R7MOVR0, 01H;将01单元中的数据=>R0MOVR6, 07H;将07单元中的数据=>R6SETBRS0;设置寄存器组为一组,RS1,RS0=01MOVR0, 00H ;将00单兀中的数据=> 寄存器-组中的R0MOVR1,01H ;将

24、01单兀中的数据=> 寄存器-组中的R1MOVR7, 07H ;将07单兀中的数据->寄存器-组中的R7SETBRS1;:设置寄存器组为三组,RS1,RS0-11MOVR6, 00H ;将00单兀中的数据->寄存器三组中的R6MOVR7, 17H ;将17单兀中的数据->寄存器三组中的R7MOV20H , #00H ; 0=>20H 单元MOV2FH, #0FFH ; FFH=>2FH 单元SETB00H;位地址00H置“ 1 ”SETB07H;位地址07H置“ 1 ”CLR78H;位地址78H清“ 0”CLR7FH;位地址7FH清“ 0”MOV31H ,

25、#31H;31H=>31H 单元MOV32H , #32H;32H=>32H 单元CLRRS0; CLRRS1;设置寄存器组为0组,RS1,RS0-00PUSH00H;将00单元中的数据入栈MOVSP , #30H;重新设置栈地址为 30HPUSH00H;将00单元中的数据入栈PUSH01H;将01单元中的数据入栈POP00H;弹出栈顶数据至00单元POP01H;弹出栈顶数据至01单元AJMP$J三、实训1. 阅读以上程序,正确理解每一条指令功能。2. 将以上实训用程序通过伟福V3.2版仿真软件(或其它 51系列单片机仿真软件)输入到计算机中,并以*.ASM 文件名保存,然后进行汇

26、编。3. 汇编成功后,分别将光标移至标记所在行,通过伟福V3.2版仿真软件的“执行(R) t设置/取消断点(B) ”菜单对标记所在行设置断点。如图1.2.2所示。4. 选择伟福V3.2版仿真软件的“执行(R) t复位(E)菜单。使程序从第一条指令开始执行。起点倍福 ¥3,20 :软件複fit器(8>HrWAVEEIN Untitled(P)执行® 外邀d窗口辿)仿真器( etj(H)£1 CDQ 匚Un©ZM AMD SETTinG5AJNP BEGINorg nn:;niiBEGIN: HOUMOUMQUHOU全速执岳时 跟踪(D 单步执行5胱荷

27、处(皙停( 复位旧自动假蹟車步断点Ctrl+F5F7F9F+Ctrl+F2Ctrl+F3恭加观糜顶 Ctrl4F5设置/取消断点迥Ctrl+FB潘除全制斷点百)1T5EXflMPlEE,.16 ®6|1OV R6, P7SETS RSORa, ;将眦单元中的Jfe4g=寄存器一蚩中的R© m, aih : #014元中的数摇刁壽荐需一组申的M MOW B7, 07H ;将酊单元中的数据,寄存器一组中的旧;设置奇存器组为一组,RS1sRSB-B1I10UMVUDKTR: 0000円1 OOHP5W: OCH印:07HOOOOH执行跡间:。,血5厦图1225. 通过伟福V3.2

28、版仿真软件的“执行(R) T全速执行(R) ”菜单,执行到第一个断点处暂 停。一一6. 通过伟福V3.2版仿真软件的“窗口 (W)t数据窗口(D) t DATA菜单,观察指令运行结果。如图1.2.3和图1.2.4所示。持福 V3.20 :软件複也器(6031) C: WAVESINUrtitledl-|Q|x|文件®編辑接素(刃顼目何执行®外邀L)裔口 (直)仿真器(稱助.,i4 1£1 C:DnCUMEIHT5 AND 5ETTINU5ADMIN I5TR ATQRORCAJNP BEGINORG 0030HR0,R1,叽R7,BEGIN: HOUMOUMQUM

29、OUHOU R0, 91HfPLI 窗 口数据窗口(跟踪窗口 CD 逻辑分祈窗口 (U顶目窗口迥 信息窗口型) 观柬盲口辿)IPLEZw.JnlU lull ; 0=>R0 ttllH ; 11H=>R1 «S6H ; 66H=>R6 tlr7H ; 77H->H7:将04单元7邂疗学元:设置寄存司叠排宙口© 平祥裔口 排列图标 全都撮:MEn(JU R6, 07SETS KSOMBU R0, UUH ;特3晖元中的敷碓-皿" nY S 丄亠4 一地址图 1.2.3OATACODEXDATAPDATASB-B1® 组中的RU000

30、011SO 00D0 00 &6 7700 06 00 00 00 00 68 0010203 040U0 DU 00 0U oc aooo Bo 00 00 00 OU 00 00 刖 00dOOU60 OO09 OU00 00dQfiu 00 00 00 008000do D(j 00 B0 00 DU 00 0aoooo oo od oe ooso aoaa du oo so du oo so00 00 00 00 OQ 00 00 005060Ofl OU仙00r口l数据JOHO 0(J do 0000 0(J 00 B0 00 OUOQ 0»ho 0R QB on

31、no on no on7000 0U命0(109 00do MHO 06an oo os bo oo auoo oa»a tin do n» no on oo on90co aaoo00曲90 M0UQO60 so os aooo aoA0 00 90 0Q Q0 0Q Q0 00 0000 QQ 00 0Q 00 00 DOt DATA图 1.2.47.填写下表。体会 0组寄存器组与片内 RAM地址的关系。寄存器名寄存器的地址寄存器中数据R0R1R6R7& 通过伟福V3.2版仿真软件的“执行(R) t全速执行(R) ”菜单,执行到第二个断点处暂 停。9.通过伟福V

32、3.2版仿真软件的“窗口 (W)t数据窗口(D)t DATA菜单,观察指令运行结果。 10填写下表。体会寄存器与寄存器之间的数据传递。-寄存器名寄存器的地址寄存器中数据R0R611. 通过伟福V3.2版仿真软件的“执行(R) t全速执行(R) ”菜单,执行到第三个断点处暂 停。12. 通过伟福V3.2版仿真软件的“窗口 (W)t数据窗口(D) tDATA菜单,观察指令运行结 果。13. 填写下表。体会第一组寄存器组与片内RAM地址的关系。寄存器名寄存器的地址寄存器中数据R0R1R714. 通过伟福V3.2版仿真软件的“执行(R) t全速执行(R) ”菜单,执行到第四个断点处暂 停。15. 通过

33、伟福V3.2版仿真软件的“窗口 (W)t数据窗口(D) tDATA菜单,观察指令运行结 果。16. 填写下表。体会第三组寄存器组与片内RAM地址的关系。寄存器名寄存器的地址寄存器中数据R6R717. 通过伟福V3.2版仿真软件的“执行(R) t全速执行(R) ”菜单,执行到第五个断点处暂 停。18. 通过伟福V3.2版仿真软件的“窗口 (W)t数据窗口(D) tDATA菜单,观察指令运行结 果。19. 填写下表。体会位寻址空间。RAM字节地址字节地址中数据20H2FH20. 通过伟福V3.2版仿真软件的“执行(R) t全速执行(R) ”菜单,执行到第六个断点处暂 停。21. 通过伟福V3.2版

34、仿真软件的“窗口 (W) t数据窗口(D) t DATA菜单,观察指令运行结果。-22. 填写下表。体会位地址与字节地址的关系。RAM字节地址字节地址中数据|20H2FH23. 通过伟福V3.2版仿真软件的“执行(R) t全速执行(R)”菜单,执行到第七个断点处暂 停。一一24. 通过伟福V3.2版仿真软件的“窗口 (W)t数据窗口(D) tDATA菜单,观察指令运行结 果。25. 填写下表。RAM字节地址字节地址中数据31H32H26. 通过伟福V3.2版仿真软件的“执行(R) t全速执行(R) ”菜单,执行到第八个断点处暂 停。27. 通过伟福V3.2版仿真软件的“窗口 (W)t数据窗口(

35、D) tDATA菜单,观察指令运行结 果。28. 填写下表。体会初始栈区的位置栈顶地址栈顶中的数据29. 通过伟福V3.2版仿真软件的“执行(R) t全速执行(R) ”菜单,执行到第九个断点处暂 停。30. 通过伟福V3.2版仿真软件的“窗口 (W)t数据窗口(D) tDATA菜单,观察指令运行结 果。31. 填写下表。体会修改后栈区的位置栈顶地址栈顶中的数据00H单元中的数据01H单元中的数据32. 通过伟福V3.2版仿真软件的“执行(R) t全速执行(R) ”菜单,执行到第十个断点处暂 停。33. 通过伟福V3.2版仿真软件的“窗口 (W)t数据窗口(D) tDATA菜单,观察指令运行结

36、果。34. 填写下表。体会利用堆栈进行数据传递00H单元中的数据01H单元中的数据实验二、51单片机资源认识及51单片机编程设计中断方式的编程应用2.1认识51系列单片机的片内特殊功能寄存器 第一部分教学要求一、实验目的1、认识51系列单片机片内特殊功能寄存器的地址空间范围;2、掌握51系列单片机片内特殊功能寄存器的字节地址;3、掌握51系列单片机片内特殊功能寄存器的位地址。4、了解51系列单片机片内特殊功能寄存器的用途;二、实训平台1、PC机,台从;2、伟福V3.2版仿真软件或其它 51系列单片机仿真软件三、实验报告内容项目形式成绩评定1常用单片机特殊功能寄存器的功能描述书面2单片机片内随机

37、存储器的空间使用情况观察填表3总成绩教师签名(注:成绩评定等级:优、良、中、及格、不及格)第二部分教学内容一、预备知识1、51系列单片机片内特殊功能寄存器(SFR)的地址空间是与片内随机存储器统一编址的,其地址空间范围是 80HFFH。如图1.3.1所示。FFH特殊功能寄存器区30H7FH通用RAM区30HI位地址区B1FH工作寄存器区IIiOOH图 2.1.13. 51系列单片机根据芯片型号的不同,其片内特殊功能寄存器的数量有所不同。以典型芯片8031为例,片内特殊功能寄存器有21个。它们离散地分布在 80HFFH地址(字节地址)空间上。值得注意的是:那些分布在字节地址能被8整除的(即16进

38、制的地址码尾数为 0或8的)单元的特殊功能寄存器不但有字节地址而且还具有位地址,其位地址的空间范围也是80HFFH,但不连续编址。编址的原则是具有位地址的特殊功能寄存器,其字节地址亦是 特殊功能寄存器第 0位的位地址。例如:作为特殊功能寄存器之一的累加器 A ,字节地址为 EOH,则累加器 A第0位的位地址也是 E0H,累加器A第0位至第7位的位地址是 E0H E7H。 见表 2.1.1。3 51系列单片机片内的特殊功能寄存器有着特殊的地位。从某种意义上讲使用51 系列单片机就是使用单片机片内的特殊功能寄存器,因此,正确地理解和使用51 系列单片机片内的特殊功能寄存器对使用 51 系列单片机而

39、言是具有决定性作用的。51 系列单片机片内的特殊功能寄存器几乎包括了在微型计算机原理中叙述的所有基本 功能单元。这些基本功能单元是:计算、寻址、计算机及程序状态、并行和串行I/O 操作、定时 /计数器操作和中断控制等。简单罗列如下:累加器A , 8位。它是8051单片机中最繁忙的寄存器,用于向 ALU提供操作数,许多运 算的结果也存放在累加器中。 B寄存器,8位。主要用于乘、除法运算。也可以作为RAM的一个单元使用。 PSW是程序状态字寄存器,8位。起标志寄存器的作用。其中CY是进位、借位标志,有进位、借位时 CY=1 ,否则 CY=0 ;AC 是辅助进位、借位标志 (高四位与低四位间的进位、

40、 借位 ),有辅助进位、 借位时 AC=1 ,否则 AC=0 ;FO 是用户标志位,由用户自己定义; RSl、 RS0 为工作寄存器组选择位; OV 为溢出标志位,有溢出时 OV=l ,否则 OV=0 ;P 是奇偶标 志位,运算结果中有奇数个“1”时P=l,否则P=0。 SP栈指针寄存器,8位。用于指示当前栈顶地址。栈操作遵循“后进先出”的原则。入栈操作时,SP先加1,数据再压人SP指向的单元。出栈操作时,先将SP指向的单元的数据弹出,然后,SP再减1,这时SP指向的单元是新的栈顶。 DPTR是16位的数据指针寄存器。它由两个8位的寄存器DPH和DPL组成,用来存放16位的地址,采用间接寻址或

41、变址寻址方式可对片外的RAM或 ROM作 64KB范围的数据进行操作。 P0、P1、P2、P3是4个并行I / O端口寄存器。通过对这几个寄存器的读/写,可以实现 数据从相应端口的并行输入输出。 SBUF是串行端口数据缓冲器,通过SBUF可以实现全双工串行数据通信。 SCON是串行端口控制寄存器,用于控制和设置串行数据通信。 PCON是串行通信波特率倍增寄存器,用于设置串行数据通信的波特率。 THO TL0是定时/计数器 TO的两个8位计数初值寄存器,可以构成16位的计数器,其中,TH0存放高8位,TL0存放低8位。 TH1、TL1是定时/计数器 T1的两个8位计数初值寄存器,可以构成16位的

42、计数器,其中, TH1 存放高 8 位, TL1 存放低 8 位。 TMOD是定时/计数器的工作模式寄存器,用于设置定时/计数器的工作模式 TCON是定时/计数器的控制寄存器,用于控制定时/计数器和中断的操作。 IE 是中断允许控制寄存器 , 用于允许 / 屏蔽中断源的中断请求。 IP 是中断优先级控制寄存器,用于设置中断源的中断优先级。SFR字节埔址BF7HF6HF5HF4HFSHF2HMH-FOHFOH""AE7H旺4ESHE4HEHE2HE1HEOHEOHrswmHD6HD5HD4HD3HrunOOHr»HCYACFnRS)RSUov:FIPBCHHBHBA

43、HBOHB8HESHf!fPSPT1FXIproPXOP3旳Hli&HH5HB4HK5HK2HBillBOH创HF3.bra.5P3.4E"TO.2P3 JP3.0IEAFHAEH-ADHACH4BHAAHASHA»HA6H-qFESETlEXiETOEXOP2A7HA6HA5HA4HA3HA2HAIMADHADHl.TF2 &P2.5P2.4P2.3n,2P2 JP2.0SBUFd99HSCON9FH9EHgi>H处H9BH»AH98HSMOPM1RRNTFWT)KBPJ97HVfrHMHWIH93H92HO1H轴H50HFl, 7Pl.

44、6PkSPl.4PI. 3Pl.2PI. Jn.oTbUSDHI HOsenTLI.BBHTIDfl AHTMOnGATEerrMlMOGAIKQTMlTOONdHIF日DHKCHSUHHAHS8H朋HTHTRITFVTKOIEIITlTEOrroPCON£MOD!f*GFlGT>PDDL(I7HPPMS5HDPL«2HSPR】HPO3?H84HK3IIK4HaH駅H80J1WHHJ.7R)h6P0.5PG-4pn,aPCL2FO,1FOJJ、实训程序ORG 0000HAJMP BEGINORG 0030HBEGIN: MOVA, #OFH;0F=>AMOV0E

45、0H,#0F0H;F0H=>E0H 单元SETB0E0H;将位地址E0H置1CLR0E7H;将位地址E7H清零CLRC;清进位位ADDA, #0FFH;(A)+FFH=>AADDCA, #00H;(A)+00H+CY=>ASETB0EAH;将位地址EAH置1MOVP1, #0FH;0FH=>P1SETBP1.7;将位地址97H置1CLRP1.0MOVDPL, #00HMOVDPH, #20HMOVTL0, #00HMOVTH0, #10HAJMP$;将位地址90H清零;DPTR=2000H;TH0TL0=1000H三、实训4. 阅读以上程序,正确理解每一条指令功能。5.

46、 将以上实训用程序通过伟福V3.2版仿真软件(或其它 51系列单片机仿真软件)输入到计算机中,并以*.ASM 文件名保存,然后进行汇编。3. 选择伟福V3.2版仿真软件的“执行(R) t复位(E)菜单。使程序从第一条指令开始执行。4. 选择伟福V3.2版仿真软件的“执行(R) t单步(S)菜单或按F8键,如图1.3.2所示。单 步执行实训用程序。图 2.1.25. 选择伟福V3.2版仿真软件的“窗口 (W)tCPU窗口菜单,如图2.1.3所示。并根据表1.3.1, 填表下列表格。DOIEDO000FC寄存器名N_FFFFFFFF0000值00PD riP2DOCUME:FFFFFF口儒福 V3

47、.EO :软件複拟器 CSlKlfSE) C;nATOBINVntitLedOHGAJMP BEGINORC;FflH->EIH:將位地址 :柚地址 :淸进位位釵据窗口 Q)跟跨窗口(1) 逻楫另折窗口心BEGTH; MOU血喝口刷新豐也 旦日卫J洋L爲I剩屬園 M顼目督口 (£) 信息曲口观) 观祭窗口立件世循辑1)攫索 顶目0)执行® 外曖也)爾口世)仿夏器(Q)樹窗口 C) 平口(1) 糸即图标 全部提小化图 2.1.3QOO9HOOOAHQ09CH0990H S13SB»02H FFOO0BH F刃OEDH, ttfiF 0H0E7H0003H FF

48、OOOH FF00Q7H FFOOOBH FF名称名濡DPTB: OOOOW A OOrtTSf: OOH SF OTH执询间2表 2.1.2指令填写内容需掌握的要点MOVA, #0FHA的地址=,指令编码:74H,0FA中的值=H注意累加器 A的值的变 化并与下一条指令比较MOV OEOH, # OFOHA中的值= 指令编码:累加器A在特殊功能寄 存器区中的字节地址。SETB0E0HA中的值=注意累加器 A的值的变 化和累加器A的位地址CLR0E7HA中的值=注意累加器 A的值的变 化和累加器A的位地址CLRCPSW中的值=注意进位位的位地址ADDA, #0FFHA中的值=,PSW中的值=验

49、证(A)+FFH=>A,并注意PSW中的值的变化原因ADDCA, #00HA中的值=注意累加器 A的值的变 化SETB0EAH位地址EAH所在的字节地址=了解位地址 EAH被置1 的意义MOVP1, #0FHP1的字节地址=P1中的值=通过P1的并行输出操作SETBP1.7P1.7的位地址=P1中的值=了解P1.7与P1的关系, 常用的位控输出方式CLRP1.0P1.0的位地址=P1中的值=了解P1.0与P1的关系, 常用的位控输出方式MOVDPL, #00HDPL的字节地址=DPL中的值=MOVDPH, #20HDPL中的值=DPTR中的值=掌握DPTR勺形成MOVTL0, #00HTL0的字节地址=TL0中的值=MOVTH0, #

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论