资源描述:
《汇编语言单片机实验.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、软件实验一数据传送一、实验目的1.熟悉KEIL软件的程序调试方法2.掌握从外部数据存储器传送到内部存储器的指令3.掌握算术运算指令二、实验内容 本实验为软件实验:数据传送实验。这个实验包括两个小实验:1.从外部数据存储器传送到内部RAM中;2.求16个学生的年龄之和,数据存放在20H单元中。此实验均可在脱机模拟状态下调试运行,也可以连接上仿真器与实验箱在线仿真运行。1.从外部数据存储器传送到内部RAM中本实验在程序编译之前,将外部数据存储器(XDATA)和内部数据存储器(DATA)窗口打开,并在XDATA窗口在
2、0000H、0001单元分别键入54H、55H。然后程序单步运行或全速运行,观察寄存器A,B,DPTR,R1,R2,R3的值是不是如程序所希望的那样变化,最后看R3的值是不是54H+55H=A9H。 实验源程序如下:ORG00HAJMPSTARTORG30HSTART:MOVA,#56HMOVB,#78HMOVDPTR,#00HMOVXA,@DPTRMOVR1,AINCDPTRMOVXA,@DPTRADDA,R1MOVR3,AHERE:AJMPHEREEND2.求16个学生的年龄之和程序运行前,先将16个学生的
3、年龄放在内部数据区20H单元开始的地方,码制为BCD码,程序运行结束时,16个学生的年龄和放在寄存器A和B中(B为高位,A为低位)。实验源程序如下:ORG00HAJMPSTARTORG30HSTART:MOVR0,#20HMOVR7,#16MOVA,#00HMOVB,ALOOP:ADDA,@R0DAAJNCNEXTINCBNEXT:INCR0DJNZR7,LOOPHERE:SJMPHEREEND三、实验步骤1.运行KEIL软件2.新建项目project/newproject/3.保存项目选择保存项目的名称和位置如
4、abc.uv2选择单片机的CPU型号如atmel公司的89c524.新建源文件file/new5.输入源程序6.保存源文件file/saveas选择保存的名称和位置,如abc.a517.将源文件加入项目中sourcegroup1右键选择“addfiletogroup”选择源文件点击确定8.编译项目rebuildalltargetfiles9.调试程序单击start/stopdebugsession进入程序调试状态10.单步执行程序,或者全速、断点执行程序debug/step(go)11.查看执行结果view/me
5、morywindowaddressd:00h内部RAMX:0000H外部RAMC:0000HROM可以查看相应存储器内的内容或者选择view/watchaandcallstackwindow查看相应变量内容12.给相应单元赋值,并执行程序,记录执行结果,写出实验报告。给相应单元赋值方法:鼠标移动到相应单元,点击鼠标右键选择modifymemoryvalue输入新值。13.记录实验中遇到的问题和解决方法。软件实验二排序/数制转换一、实验目的1.熟练使用KEIL软件调试程序2.掌握查询指令和循环程序的设计方法3.掌握
6、数据转换的程序设计方法4.掌握有关循环程序和数据转换的程序的调试二、实验内容1.求8个无符号数的最大值给定8个无符号数,将其放内部数据区(DATA)中,地址从20H开始,运行下列程序,看看是否将8个数的最大值存储在A寄存器和内部数据区41H单元中。程序清单如下:ORG00HSJMPSTARTORG30HSTART:MOVR0,#20HMOVR6,#08HMOVA,@R0DECR6LOOP:INCR0MOV40H,@R0CJNEA,40H,CHKJMPDD1CHK:JNCSQMOVA,40HSQ:DJNZR6,LO
7、OPDD1:MOV41H,AHERE:SJMPHEREEND附加功能:编程实现内部RAM20H-27H单元八个数从小到大排序2.将一个字节BCD码转换成二进制数将R2中的内容转换成二进制数据,并传送到20H单元中。程序清单如下:ORG00HAJMPSTARTORG30HSTART:MOVR2,#99HACALLDTOBHERE:SJMPHEREDTOB:MOVA,R2ANLA,#0F0HSWAPAMOVB,#10MULABMOVR3,AMOVA,R2ANLA,#0FHADDA,R3MOVR3,AMOV20H,AR
8、ET三、实验步骤要求:写出实验步骤并记录程序调试结果。硬件实验一并行口的使用一、实验目的1.熟悉单片机仿真实验箱XL600+使用方法2.学会使用XLISP向单片机烧录程序3.学会单片机并行口的使用方法二、实验内容使用单片机的并行口P1接8路LED灯,通过程序控制轮流点亮8个灯。为0时灯亮,为1时灯灭。参考程序:ORG0000HJMPMAINORG0030H;*******