单片机实验报告

西南科技大学

实验课程名称       单片机原理及接口技术       

开课实验室       CAD/CAM计算机实验室       

         制造学院  专业成型班级    

                

  2012    20##  学年第   2 学期

制造科学与工程学院制


《  I/O接口技术实验  》实验报告

 开课实验室:                                          2013 05月 10


《 中断系统 》实验报告

 开课实验室:                                               2013 5月 23



 

第二篇:单片机实验报告

实验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,起到十进制调节的作用。

相关推荐