实验二 拆字程序、拼字程序设计

  • 格式:doc
  • 大小:51.00 KB
  • 文档页数:4

下载文档原格式

  / 4
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二:拆字程序、拼字程序设计

院(系):电子工程学院课程名称:单片机原理及应用日期:

4.2.1 实验目的

1. 掌握汇编语言指令的使用规范。

2. 掌握汇编语言程序设计方法。

3. 掌握MCS-51单片机的存储器结构。

4. 掌握单片机中数据存储形式。

4.2.2 实验预习

1.熟悉Keil集成编译环境的使用方法。

2. 复习单片机指令系统。

3. 复习利用Keil集成编译环境查看单片机存储器状态的方法。

4.2.3 实验原理

计算机中数据都是以字节为单位存储的二进制数,完成本实验需熟练掌握二进制的数据结构和原码,补码等数据编码方法以及单片机各指令对数据的影响。

4.2.4 预作实验任务

1. 简介用Keil集成编译环境编辑、编译、调试程序的过程。

2. 简介用Keil调试程序时查看内部数据存储器和内部程序存储器状态的方法。

3. 输入并编译以下程序,在Keil中运行

ORG 0000H

AJMP MAIN

ORG 0100H

MAIN: MOV R0,#30H

MOV 30H,#78H

MOV 31H,#0AFH

MOV A,@R0

INC R0

XCHD A,@R0

SJMP $

运行结果为: A = , R0 = , (30H) = , (31H) = ,

4. 输入并编译以下程序,在Keil中运行,记录运行结果。

ORG 0000H

AJMP MAIN

ORG 0100H

MAIN: MOV A,#79H

ANL A,#0FH ;A=

ORL A,#0A3H ;A=

XRL A,#0F0H ;A=

CPL A ;A=

SWAP A ;A=

CLR A ;A=

SJMP $

5. 补全程序以完成程序功能。

程序功能:读取外部数据存储器2000H单元内容,并将其高四位送至P1端

口的低四位,P1端口高4位不变。

MOV DPTR, ;外部存储器地址送DPTR

A,@DPTR ;读取数据

ANL A, ;屏蔽累加器低4位

A ;累加器高低4位交换

ANL P1,#0FH ;屏蔽P1低4位

ORL A,P1 ;A和P1相或

MOV P1, ;结果输出至P1

6. 补全程序以完成程序功能。

程序功能:将累加器A中的单字节二进制数转换为BCD码,百位、十位、个位分别存放在R5、R4、R3中。

MOV B,

DIV AB ;除以100

MOV R5, ;百位→R5

MOV A,#10

XCH A,

DIV AB ;除以10

MOV R4, ;十位→R4

MOV R3, ;个位→R3

4.2.5 实验任务

1. 编写程序,将内部存储器(31H)单元的内容拆成两部分,高四位送给(21H),低四位送给(20H),如(31H)=75H,则执行完程序后(21H)=07H, (20H)=05H。

2. 编写程序,提取内部存储器(21H)单元的低四位作为高4位,(20H)单元的低四位作为低四位组成新数据,存储到(31H)单元。如(21H)=78H,(20H)=9BH,则执行完程序后(31H)=8BH。

4.2.6 实验步骤

1.使用Keil C51软件建立工程,编辑、编译程序,程序代码如下:

实验项目1:

实验项目2:

3.用Keil软件运行程序,并查看内部数据存储器的状态。4.运行程序,排除程序错误。

5.记录实验结果并分析。