v1.0 可编辑可修改 单片机实验报告
实验一 数据传送(RAM–>XRAM)
一、实验目的
熟悉星研集成环境软件或熟悉Keil C51集成环境软件的使用方法。 熟悉MCS51汇编指令,能自己编写简单的程序,掌握数据传输的方法。 二、实验内容
1、熟悉星研集成环境软件或熟悉Keil C51集成环境软件的安装和使用方法。 2、编写程序,实现内外部数据段的传送、校验。 三、程序框图
开始 堆栈指针初始化计数器、地址初始化内部RAM数据传送外部RAM一次地址指针+1 计数器-1=0?Y计数器、地址指针复位传送错误结束数据传送程序框图N取内部RAM和对应的外部RAMN比较是否相等Y地址指针+1 计数器-1=0?Y传送正确N
四、实验步骤
在内部RAM 30H ~3FH中输入数据;使用单步、断点方式调试程序,检测外部数据RAM
的1000H ~100FH中的内容。熟悉查看特殊功能寄存器、内部数据RAM、外部数据空间的各种方法。
五、程序清单
;将内部RAM Address1 开始的16个字节送到外部RAM从Address2开始的单元里,再作比
1
较。 Address1 Address2 STAR: STAR1: STAR2: STAR3:
2
DATA 30H XDATA 1000H ORG 0000H LJMP STAR ORG 0100H MOV SP,#60H MOV R0,#Address1 MOV DPTR,#Address2MOV R7,#10H MOV A,@R0 MOVX @DPTR,A INC R0 INC DPTR DJNZ R7,STAR1 MOV R0,#Address1 MOV DPTR,#Address2MOV R7,#10H MOV B,@R0 MOVX A,@DPTR CJNE A,B,STAR3 INC R0 INC DPTR DJNZ R7,STAR2 SJMP $ SJMP
$
v1.0 可编辑可修改 ;传送 ;比较
;传送正确 ;传送错误
v1.0 可编辑可修改 END
实验二 双字节BCD码(十进制数)加法
一、实验目的
熟悉51汇编指令,学会使用星研集成环境软件,能自己编写简单的程序,熟悉BCD码,了解如何调用系统提供的子程序。
二、实验内容 3
v1.0 可编辑可修改 从键盘上输入4位被加数、加数,实现双字节BCD码(四位数)的加法,结果显示在数码管上;熟悉使用断点、单步进入、单步、运行到光标处、修改PC指针、全速运行等各种调试手段;熟悉查看特殊功能寄存器、内部数据RAM、外部数据空间的各种方法。
三、实验框图
开始初始化堆栈设定\键输入\通过键盘获得4位被加数(压缩BCD码)置位\后才清除LED\通过键盘获得4位加数(压缩BCD码)被加数与加数的低位字节不带进位加法十进制调整被加数与加数的高位字节带进位加法十进制调整压缩BCD码(结果)转换为非压缩BCD码高位0消隐显示结果双字节BCD加法程序框图
四、实验步骤
1、连线说明:
D3区 :CLK D3区 :CS D3区 :A0 —— B2区:2M —— A3区:CS5 —— A3区:A0 2、在F4区的键盘上输入4位被加数、加数
3、结果显示在F4区的数码管上
五、程序清单 EXTRN 4
CODE(Display8, GetBCDKey)
Buffer F1 START: START1: Display:5
DATA 30H BIT 0D1H ORG 0000H LJMP START ORG 0100H MOV SP,#60H CLR F1 MOV R0,#buffer MOV A,#4 LCALL GetBCDKey SETB F1
MOV R0,#buffer+4 MOV A,#4 LCALL GetBCDKey MOV A,buffer+1 ADD A,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 PUSH
ACC
v1.0 可编辑可修改 ;8字节显示缓冲区 ;
;先清除显示,再接收键输入
;按键次数
;得到双字节十进制数(被加数) ;接收到第一个键,才清除显示
;按键次数
;得到双字节十进制数(加数)
;显示结果