-------------------------以下内容为教师填写--------------------------
实验1 二进制到BCD转换
一、实验目的
学习星研Star16L仿真器系统的基本操作,
熟悉EL-Ⅱ型通用接口板实验电路,
掌握简单的数值转换算法。
二、实验仪器和设备
PC机、星研Star16L仿真器系统+仿真头PODPH51(DIP)、EL-Ⅱ型通用接口板实验电路。
三、实验内容
1)将给定的一个单字节二进制数(存放在R2中),转换成非压缩的二—十进制(BCD)码,并存放到R3R4R5中。
2)(选作)将给定的一个双字节二进制数(存放在R2R3中),转换成压缩的二—十进制(BCD)码,并存放到R4R5R6中。
四、实验方法
1、将星研仿真器与微机和目标板相互连接构成完整的硬件仿真系统
1)仿真器与仿真头的硬件连接:STAR16L仿真器与仿真头PODPH51(DIP)用两根40芯扁平电缆连接,注意电缆插头的方向。参见下图。
2)仿真头与EL-Ⅱ型通用接口板的硬件连接:将EL-Ⅱ型通用接口板的8051CPU芯片拔下,将仿真头PODPH51插入该CPU插座(40脚DIP),注意芯片的上下方向
3)仿真器与微机的连接:通过USB接口将微机与仿真器相连,打开仿真器电源。仿真器与微机的第一次连接将自动引导安装程序,在该驱动程序的安装过程中,请勿执行其它应用程序。
2 、单片机仿真系统运行调试
通过双击微机桌面的星研图标,或通过开始菜单,起动星研仿真系统程序,通过输入程序,编译通过后,进入调试状态,打相应的观察窗口,观测CPU内部各个寄存器,存储器以及外部存储器的状态,通过单步或断点运行,验证程序运行的正确性,并修正错误。
五、参考程序清单及框图
1)单字节二进制到非压缩BCD
;NAME T1_1_BCD
ORG 0000H ;0100H不能用,与星研软件冲突??
BCD1: MOV A, R2 ;二进制数送A
MOV B, #100 ;100作为除数送入B
DIV AB
MOV R3, A ;百位数送R3,余数在B中
MOV A, #10 ;分离十位和个位数
XCH A, B ;余数送A,除数10在B中
DIV AB ;分离出十位在A, 个位在B中
MOV R4, A ;十位送R3
MOV A, B
MOV R5, A ;个位送R4
NOP
LJMP BCD1
END
2)(选作)双字节二进制到压缩BCD
;NAME T1_2_BCD
ORG 0000H
BCD2: CLR A
MOV R4, A
MOV R5, A
MOV R6, A
MOV R7, #16
LOOP: CLR C
MOV A, R3
RLC A
MOV R3, A
MOV A, R2
RLC A
MOV R2, A
MOV A, R6
ADDC A, R6
DA A
MOV R6, A
MOV A, R5
ADDC A, R5
DA A
MOV R5, A
MOV A, R4
ADDC A, R4
DA A
MOV R4, A
DJNZ R7, LOOP
LJMP BCD2
END
参考程序框图
单字节二进制数转换成非压缩BCD码
六、实验要求
1、基本内容:按照实验要求连接系统,编制程序并运行,说明如何利用仿真器验证程序的正确性。
2、拓展内容:按照子程序模式修改程序,并通过程序调用实现对任意输入的二进制数据进行码制转换。
注:必做和选作的要求相同。
七、星研仿真系统基本操作步骤
1)进入星研仿真软件
2)建立项目文件——仿真头选择:PODPH51(DIP);CPU选择:8051类
3)新建源文件——后缀为.ASM
4)输入源程序——编译、链接、修改错误
5)进入调试状态
6)调试程序,查看运行结果
7)退出星研仿真系
八、实验数据记录:
1)、单字节二进制到非压缩BCD
2)、双字节二进制到压缩BCD
数据分析:
对于一个8位二进制码bn-1bn-2……b1b0,,其在十进制编码方式下的值为
式1
把上式写出套乘的形式:
式2
式中的每项乘2,相当于将寄存器中的二进制码左移1位,这就意味着利用移位寄存器可以完成二进制与8421BCD的转换。
在移位的过程中,当现态Sn<5时,次态不变。当现态Sn=5、6、7时,左移一次,其次态Sn+1将会超过9,对于一个BCD码来说,这样的状态属于禁用状态。而当Sn=8、9时,左移1位,则会向高1位的BCD码输入一个进位的信号 ,由于二进制和BCD码权不一致,当发生进位时,虽然码元只是左移1位,但次态Sn+1将减少6。基于上面这两种情况,在B/BCD转换时需要对转换结果加以校正。校正过程如下:当Sn>=5时,我们让Sn先加上3,然后再左移1位,次态 Sn+1=2(Sn+3)=2Sn+6,正好补偿由于进位而减少的数值,并且向后一个变换单元送入一个进位信号, 再将待转换的二进制码从最高位开始左移BCD的寄存器(从高位到低位排列),每移一次,检查每一位BCD码是否大于4,是则加上3,否则不变。左移8次后,即完成了转换。需要注意的是第八次移位后不需要检查是否大于5。并检查每一个BCD码是否大于4,因为如果大于 4(比如 5、6),下一步左移就要溢出了,所以加 3,等于左移后的加 6,起到十进制调节的作用。
单片机原理实验报告实验一熟悉μ’nSP?IDE集成开发环境下C语言程序的编写【实验目的】1.熟悉μ’nSP?IDE集成开发环境的使…
上海电力学院MCS51单片机实验报告题目院系专业年级学生姓名学号年月日实验名称1目的任务与要求2软件与硬件环境3电路结构图与程序流…
单片机原理实验报告实验一熟悉nSPIDE集成开发环境下C语言程序的编写实验目的1熟悉nSPIDE集成开发环境的使用方法2掌握用SP…
单片机原理实验报告实验一熟悉μ’nSP?IDE集成开发环境下C语言程序的编写【实验目的】1.熟悉μ’nSP?IDE集成开发环境的使…
PIC单片机技术上机实验报告实验项目:定时/计数姓名:专业:班级:学号:学期:1314学年2学期20xx一、实验名称×××二、实验…
实验一数码管实验一实验目的1了解数码管的显示原理2掌握JXARM92440中数码管显示编程方法二实验原理7段LED由7个发光二极管…
项目一万年历班级学号姓名一任务目的通过对万年历的设计和制作应用了单片机的数码管键盘接口技术以及定时计数器中断等程序设计技术进一步训…
单片机实验报告姓名班级学号实验一数码管实验一实验目的1了解数码管的显示原理2掌握JXARM92440中数码管显示编程方法二实验仪器…