实验指导书

  • 格式:doc
  • 大小:1.26 MB
  • 文档页数:22

单片机实验指导书实验一系统认识实验一、实验目的1、了解ZY15MCU12BC2单片机实验开发装置的接线与安排。

掌握实验箱内拨位开关KF,KC的使用方法。

2、通过实例程序的编辑、编译、链接及调试,熟悉Keil C51软件的使用方法和基本操作。

3、教育学生爱护实验装置,养成良好的实验习惯。

二、实验设备1、ZY15MCU12BC2单片机实验开发装置一台。

2、PC机及相关软件。

三、实验内容1、使用串行通讯电缆将实验开发装置与PC机相连。

2、开启PC机及实验开发装置,启动Keil C51软件进入uVision2集成开发环境。

确认拨位开关KF的开关为A端,确认89C51处于仿真状态。

在uVision2开发平台上建立并编辑示例程序:计算N个数求和程序。

其中N个数分别放在片内RAM区50H到55H单元中,N=6,求和的结果放在片内RAM 区03H(高位)和04H(低位)单元中。

题目:1)32H+41H+01H+56H+11H+03H=?2)95H+02H+02H+44H+48H+12H=?编译连接源程序。

在Keil uVision2主菜单窗口进入DEBUG调试环境,打开存储器窗口输入数据至片内RAM区50H到55H单元中,全速运行程序,并检查程序的运行结果,即观察在存储器窗口片内RAM区03H(高位)、04H(低位)单元中的数据是否正确。

实验结束,撤出接线,将一切整理复原。

实验源程序org 0000hljmp mainorg 1000hmain: mov r2,#06hmov r3,#00hmov r4,#00hmov r0,#50hl1: mov a,r4add a,@r0mov r4,ainc r0clr aaddc a,r3mov r3,adjnz r2,l1end实验二多字节十进制加法实验一、实验目的1、学习51运算指令的用法及对标志位的影响。

2、学习循环程序编程方法。

3、掌握51内部RAM和寄存器之间的关系。

二、实验设备ZY15MCU12BC2实验箱,连接线若干,串口线,PC机。

三、实验内容1、编写多字节十进制加法程序,实现下式运算:4574+6728=11302要求:被加数在片内RAM区20H、21H单元;加数在片内RAM区30H、31H单元;结果在片内RAM区20H(最高位进位)、21H(高位)、22H(低位)单元。

结果:20H=1,21H =13,22H=02;2、完成程序的设计、编辑、编译、连接。

四、调试方法进入DEBUG方式,打开存储器Memory 1窗口,在窗口Address栏键入D:20H;点击鼠标右键,选择最后一项Modify Memory ,输入被加数;在窗口Address栏键入D:30H;点击鼠标右键,选择最后一项Modify Memory ,输入加数。

(选作)整数十六进制转十进制实验一、实验目的1、了解整数十六进制转十进制的原理。

2、学会编程实现进制转换。

二、实验设备ZY15MCU12BC2实验箱,连接线若干,串口线,PC机。

三、实验内容1、源文件的名称为“ZYBTD.ASM”。

2、将“P00~P07”与“U7D0~U7D7”用八根线分别相连。

3、编写并调试一个十六进制转换为十进制数的程序,其功能为从ZY15MCU12BC2型的实验箱键盘上输入四位十六进制数,转换为6位十进制数并在实验箱的显示器上显示出来。

四、实验程序参考框图如图1所示图1 十六进制转十进制程序流程注:框图中延时1秒是为了看清显示器上显示的十六进制数和BCD码结果五、调试方法1、全速运行至BK1,检查40H,41H,3BH~3EH内容是否为键入的数据。

2、从BK1全速运行至BK2,再从BK2运行到BK3,检查3AH~3EH的BCD码正确与否?如有错从BK2单步运行到BK3,检查程序运行结果。

3、全速运行程序,每输入4位十六进制数,显示6位BCD码,用一组数据测试其程序的正确性。

(选作)查表实验一、实验目的1、了解编程中查表的原理。

2、学会编写查表程序。

二、实验设备ZY15MCU12BC2实验箱,连接线若干,串口线,PC机。

三、实验内容1、源文件的名称为“ZYTAB.ASM”。

2、将“P00~P07”与“U7D0~U7D7”用八根线分别相连。

3、编写并调试一个查表程序,其功能为读键盘输入的0~F数字键,通过查表得到各键处理程序入口,并将入口地址在实验仿真器的显示器上显示出来。

数字键“0”——8000H数字键“1”——8200H数字键“2”——8400H数字键“3”——8600H数字键“4”——8800H数字键“5”——8A00H数字键“6”——8C00H数字键“7”——8E00H数字键“8”——9000H数字键“9”——9200H数字键“A”——9400H数字键“B”——9600H数字键“C”——9800H数字键“D”——9A00H数字键“E”——9C00H数字键“F”——9E00H四、实验程序参考框图如图2所示图2 查表实验流程五、调试方法1、断点设在BK1,按0~F键后,进入断点地址,检查ACC内容是否与键值正确对应。

2、断点设在BK2,程序运行至断点,检查ACC内容是否为键值对应跳转入口地址高位。

3、断点设在BK3,程序运行至断点,检查ACC内容是否为键值对应跳转入口地址低位。

4、程序连续运行,按键0~F,即在显示器上显示出相应散转地址。

若有错误,应改用单步或断点分段调试,排除软件错误,直到正确为止。

(选作)两个四位十六进制数乘法实验一、实验目的学会使用汇编语言编写两个四位十六进制乘法的程序。

二、实验设备ZY15MCU12BC2实验箱,连接线若干,串口线,PC机。

三、实验原理算法:MCS—51中有8位数的乘法指令MUL,用它来实现双精度数相乘时,可以把被乘数(ab)和(cd)分别表示为(az+zb)和(cz+zd),其中a、b、c、d都是8位数,a、c 为高位,b、d为低位,z表示8位0。

它们的乘积用下式表示:(az+zb)(cz+zd)=aczz+zadz+zbcz+zzbd其中ac、ad、bc、bd为相应的2个8位数的乘积,占十六位,它们可以用四次乘法指令MUL求出。

若把这十六位的积表达为acH、acL、adH、adL、bcH、bcL和bdH、bdL,其中以H为后缀的为积的高8位,以L位后缀的为积的低8位。

则不难看出,对它们进行错位相加,即按下列排序:acH acLadH adLbcH bcL+ bdH bdL并按列求和,用三次8位数加法和三次带进位加法便可以得到4字节的乘积。

其等同于:R5R4×R3R2=R4×R2+R5×R2×28+R4×R3×28+R5×R3×216四、实验内容1、源文件的名称为“ZYMUL.ASM”。

2、将“P00~P07”与“U7D0~U7D7”用八根线分别相连。

3、编写并调试一个两个四位十六进制数相乘的实验,且显示结果也为十六进制数,其功能为从单片机原理实验箱的键盘上连续两次输入四位十六进制数,从而得到八位十六进制数,其中,如果两数的有效数字都为四位或有一个为四位,另一个为三位,由于实验箱上只有六只数码管,那么其积的高两位将溢出,数码管只显示低六位有效数字。

当然,用户也可以自己编写乘法子程序,那么在编写子程序之前,应了解到第一位输入的四位十六进制数将存放在50H(高两位)、51H单元里,第二次输入的四位十六进制数存放在52H、53H单元里,用户在编写时只需直接调用50H~53H地址里的数据,而且计算结果必须存放在54H~57H(最高位)四个字节里,否则,用户同时还需要改动子程序如DEAL子程序等。

用户若要编写显示子程序、中断子程序,则必须先了解接口地址,如8279的命令口地址为5EFFH等。

五、调试方法1、单步执行到乘法子程序,检查50H~53H内容是否为键入的两个十六进制数。

2、单步进入执行完乘法子程序,检查54H~57H的计算结果是否正确。

3、全速运行程序,连续输入两组数据,检验实验结果正确与否(可以连续输入)。

(选作)两个四位BCD数乘法实验一、实验目的学会使用汇编语言编写两个四位BCD数乘法的程序。

二、实验设备ZY15MCU12BC2实验箱,连接线若干,串口线,PC机。

三、实验原理四位BCD数相乘的算法与十六进制算法完全不同。

十六进制算法主要用乘法指令,并把乘的结果错位和进位相加便可得到。

而BCD码数的相乘则主要用移位和交换指令,并在移位的同时进行十进制调整,从而使另一个乘数不断自加来得到乘积结果。

四、实验内容1、源文件的名称为“ZYBCDMUL.ASM”。

2、将“P00~P07”与“U7D0~U7D7”用八根线分别相连。

3、编写并调试一个两个四位BCD数相乘的实验,且显示结果为BCD数,其功能为从单片机原理实验箱的键盘上连续两次输入四位的BCD数,从而得到七位十进制数,同样,乘积如果有七位有效数字,则其最高位将溢出,数码管只显示低六位有效数字。

当然,用户完全可以自己编写乘法子程序,那么在编写子程序之前,应了解第一次输入的四位BCD码将存放在50H(高两位)、51H单元里,第二次输入的四位BCD码存放在52H、53H单元里,而计算结果要求存放在54H~57H(最高位)四个字节里,用户若要编写显示子程序、中断子程序,则必须先了解接口地址,如8279的命令口地址为5FFFH,传感器地址为5EFFH等。

五、实验程序参考框图如图3所示图3 两个四位BCD数乘法流程框图六、调试方法1、单步执行到乘法子程序,检查50H~53H内容是否为键入的两个BCD数。

2、单步进入执行完乘法子程序,检查54H~57H的计算结果是否正确。

3、全速运行程序,连续输入两组数据,检验实验结果正确与否(可以连续输入)。

(选作)阶乘实验一、实验目的学会使用汇编语言编写阶乘算法的程序。

二、实验设备ZY15MCU12BC2实验箱,连接线若干,串口线,PC机。

三、实验原理此实验的算法原理类似BCD码乘法实验,也是利用BCD码的自加从而达到实验目的,不同的是其自加的次数在不断的自减1,直至自减次数为零。

四、实验内容1、源文件的名称为“ZYFAC.ASM”。

2、将“P00~P07”与“U7D0~U7D7”用八根线分别相连。

3、编写并调试一个在单片机实验箱的键盘上任意输入一个数,从而输出其阶乘运算结果的程序,其输出结果为十进制数。

用户可以直接调用提供的参考子程序,也可以自己编写阶乘子程序。

五、实验程序参考框图略(类似BCD乘法实验框图)六、调试方法1、可以用单步进入方式执行程序,也可以在子程序中设置断点,或者用光标执行方式,检查27H地址里的数据是否正确。

2、在单步执行阶乘子程序,检查54H~57H地址里的运算结果是否正确。