实验二 拆字程序、拼字程序设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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.记录实验结果并分析。