资源描述:
《mcs-51单片机实验》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、MCS-51单片机实验第一部分软件实验2软件实验一数据区清零、建立数据区与数据块传送2软件实验二二进制数转换为BCD数3软件实验三二进制数转换为ASCII码4【选做】验证第三章、第四章例题和作业程序5第二部分硬件实验6硬件实验一并行口输入、输出实验6硬件实验二外部中断实验7硬件实验三定时计数器实验10硬件实验四串行通信实验12第三部分综合实验14综合实验一电子时钟1414第一部分软件实验软件实验一数据区清零、建立数据区与数据块传送一、实验目的
1.熟悉Keil(或WAVE6000)调试软件,掌握汇编语言的调试方法。
2.理解并掌握数据区清零、建立数据区与数据块传送程序。
3.
2、熟悉并学会DJNZ等指令的功能与应用、循环程序的安排与设计。二、实验设备装有KeilmVision3(或WAVE6000)的计算机1台三、实验内容1.将外部数据RAM的8000H-80FFH单元的内容清零;2.把数据00H-FFH依次送入外部数据RAM8100H-81FFH单元中;3.在上面基础上,把外部RAM8100H-817FH单元的内容依次传送到内部RAM80H-FFH中(52子系列)。 程序如下:ORG0000HMOVDPTR,#8000HMOVR2,#0CLRALOOP:MOVX@DPTR,AINCDPTRDJNZR2,LOOPMOVDPTR,#8100HMOVR
3、2,#0CLRALOOP1:MOVX@DPTR,AINCDPTRINCADJNZR2,LOOP1MOVDPTR,#8100HMOVR2,#128MOVR0,#80HLOOP2:MOVXA,@DPTRMOV@R0,AINCDPTRINCR014DJNZR2,LOOP2LOOP3:AJMPLOOP3END四、实验步骤(以Keil软件为例)1、建立项目文件:用鼠标单击【Project—NewProject…】菜单命令,在弹出的“CreatNewProject”窗口中选择项目保存的位置,在“文件名”后的框中输入项目文件名(可以与源程序文件名相同),单击“保存”。并在弹出的窗口中选择器
4、件型号。2、建立源程序文件并添加到项目中:用鼠标单击【File—New…】菜单命令(或Createanewfile),进入编辑窗口,在该窗口中输入源程序,单击【File—Save】菜单命令(或保存文件快捷按钮)保存文件(必须带扩展名)。注意:因该程序是用汇编语言写的,故文件的扩展名为.ASM(必须写);如用C语言则扩展名为.C。将该文件添加到项目中。3、编译程序:用鼠标单击【Project—Buildtarget或Rebuildalltargetfiles】菜单命令(或相应的快捷按钮),对源文件进行编译。如果编译有错,输出窗口将说明出错的状态和位置,用鼠标双击输出窗口的错误信
5、息条,则自动定位源文件中出错的地方,可修改并保存后再编译,直到编译通过为止。4、调试程序:程序从ROM的0000H开始,调试时分别在程序的LOOP、LOOP1、LOOP2、LOOP3处设置断点,每次运行到断点处时,分别检查外扩RAM8000H-80FFH、8100H-81FFH和内部RAM80H-FFH中的内容,并记录下来。具体运行过程如下:(1)用鼠标单击【Debug—Start/StopDebugSession】菜单命令(或相应快捷按钮),程序进入调试状态,指针PC指向起始地址0000H。(2)将光标移到LOOP标号所在行没文字的地方,用鼠标双击可设置断点。(再次双击可取
6、消断点)(3)用鼠标单击【Debug—Run】菜单命令(或相应的Run快捷按钮)全速运行程序,光标将停在断点处,此时检查外部RAM8000H-80FFH和8100H-81FFH的内容,并记录结果。(4)按照上述同样的方法分别在LOOP1、LOOP2、LOOP3处设置断点,继续全速执行程序。当光标每停在一个断点处,检查外部RAM8100H-81FFH和内部RAM80H-FFH单元的内容,并记录运行结果。软件实验二二进制数转换为BCD数一、实验要求将给定的一个二进制数(8位,存放在累加器A中),转换成二-十进制(BCD)码。二、实验目的1.掌握简单的数制转换算法;2.了解计算机中
7、数的各种表达方法。三、实验说明计算机中的数值有各种表示方式,这是计算机的基础。实际中可能经常用到各种数制之间的转换。有兴趣的同学可以试试将BCD码转换成二进制。四、程序框图及程序参考程序如下:;将累加器A拆为三个BCD码(百位、十位、个位),并存入Result开始的三个单元14Resultequ20horg0ljmpStartBinToBCD:movb,#100divabmovResult,a;除以100,得百位数mova,bmovb,#10divabmovResult+1,a;余数除以10,得十位数m