单片机实验报告1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机实验报告
实验一数据传送(RAM–〉XRAM)
一、实验目得
熟悉星研集成环境软件或熟悉KeilC51集成环境软件得使用方法。
熟悉MCS51汇编指令,能自己编写简单得程序,掌握数据传输得方法。
二、实验内容
1、熟悉星研集成环境软件或熟悉Keil C51集成环境软件得安装与使用方法。
2、编写程序,实现内外部数据段得传送、校验。
三、程序框图
数据传送程序框图
四、实验步骤
ﻩ在内部RAM 30H ~3FH中输入数据;使用单步、断点方式调试程序,检测外部数据RAM 得1000H ~100FH中得内容。熟悉查瞧特殊功能寄存器、内部数据RAM、外部数据空间得各种方法.
五、程序清单
;将内部RAM Address1 开始得16个字节送到外部RAM从Address2开始得单元里,再作比较。
Address1 DATA30H
Address2 XDATA1000H
ORG0000H
LJMP STAR
ORG 0100H
STAR: MOV SP,#60H
MOV R0,#Address1
MOV DPTR,#Address2
MOV R7,#10H
STAR1: MOV A,R0 ;传送
MOVX DPTR,A
INC R0
INC DPTR
DJNZ R7,STAR1
MOVR0,#Address1
MOVDPTR,#Addres
s2
MOV R7,#10H
STAR2: MOV B,R0 ;比较
MOVX A,DPTR
CJNE A,B,STAR3
INC R0
INC DPTR
DJNZ R7,STAR2
SJMP $;传送正确STAR3: SJMP $ ;传送错误
END
实验二双字节BCD码(十进制数)加法
一、实验目得
熟悉51汇编指令,学会使用星研集成环境软件,能自己编写简单得程序,熟悉BCD码,了解如何调用系统提供得子程序.
二、实验内容
从键盘上输入4位被加数、加数,实现双字节BCD码(四位数)得加法,结果显示在数码管上;熟悉使用断点、单步进入、单步、运行到光标处、修改PC指针、全速运行等各种调试手段;熟悉查瞧特殊功能寄存器、内部数据RAM、外部数据空间得各种方法。
三、实验框图
双字节BCD加法程序框图
四、实验步骤
ﻩ
2、在
3、结果显示在F4区得数码管上
五、程序清单
EXTRN CODE(Display8,GetBCDKey)
BufferDATA 30H ;8字节显示缓冲区
F1BIT 0D1H ;PSW、1
ORG 0000H
LJMPSTART
ORG 0100H
START: MOVSP,#60H
CLR F1 ;先清除显示,再接收键输入
START1: MOVR0,#buffer
MOV A,#4 ;按键次数
LCALL GetBCDKey;得到双字节十进制数(被加数)
SETBF1 ;接收到第一个键,才清除显示
MOV R0,#buffer+4
MOV A,#4;按键次数
LCALL GetBCDKey;得到双字节十进制数(加数)
MOV A,buffer+1
ADDA,buffer+5
DA A
MOV buffer+5,A
MOV A,buffer
ADDC A,buffer+4
DA A
MOV buffer+4,A
CLR A
RLC A
Display: PUSH ACC ;显示结果
MOVR0,#buffer
MOVA,buffer+5 ;低位
ACALL B1toB2 ;压缩BCD码转换成非压缩BCD码
MOVA,buffer+4 ;高位
ACALL B1toB2
POP ACC ;进位
ACALL B1toB2
MOV R0,#10H ;最高二位消隐
INC R0
MOV R0,#10H
MOV R0,#buffer+5
MOVR7,#5
ACALLBlackDisplay ;将高位0消隐
MOV R0,#buffer
LCALL Display8
SJMP START1
;将一个字节压缩BCD码转换成二个字节非压缩BCD码
B1toB2: PUSH ACC
ANLA,#0FH
MOVR0,A
INC R0
POP ACC
ANL A,#0F0H
SWAP A
MOV R0,A
INC R0
RET
MOV A,R0 ;将高位0消隐
Blac
kDisplay:
JNZ Exit
MOVA,#10H
MOVR0,A
DEC R0
DJNZR7,BlackDispl
ay
Exit: RET
END
实验三 双字节BCD 码(十进制数)减法
一、实验目得
熟悉51汇编指令,学会使用星研集成环境软件,掌握汇编语言得设计与调试方法.能瞧懂程序流程框图,能自己设计程序,熟悉BCD 码、补码,了解如何调用系统提供得子程序。 二、实验内容
从键盘上输入4位被减数、减数,实现双字节BCD 码(四位数)得减法,结果显示在数码管上;进一步熟悉使用断点、单步进入、单步、运行到光标处、修改P C指针、全速运行等各种调试手段;熟悉查瞧特殊功能寄存器、内部数据R AM 、外部数据空间得各种方法。 三、程序框图
设定"先清LED,再接收键输入"标志
堆栈初始化开始通过键盘获得双字节十进制被减数(压缩BCD码)置位"接收到第一个键后才清除LED"标志通过键盘获得双字节十进制减数(压缩BCD码)
减数进行十进制取补双字节十进制加法操作
C=1?C=0,有进位(结果为负),再执行一次求补运算,调整为正数
高位0消隐,若结果为负,前面加上"-"
显示结果
Y
N
双字节十进制减法程序框图
四、实验步骤 ﻩD3区 :C LK
—— B2区:2M