实验一 实验设备的熟悉掌握及汇编语言基本指令的练习
1、实验目的:了解单片机原理实验所用到的实验设备及其使用方法。通过汇编语言基本指
令的练习,熟练掌握编译软件的使用。
2、实验内容:
①、跟随教师学习设备的简单使用,包括硬件实验箱及编译软件两方面内容:
硬件包括:实验箱的各部分组成介绍及其与PC机的连接操作;
软件包括:汇编语言文件的建立、编辑与存储。(ASM与C两种格式)
汇编语言文件的编译、连接、运行、程序调试(指令的运行及结果的验证、
单步运行及连续运行的区别,断点的设置与清除,其他调试指令的运用等)。
②、实验练习示例:
编辑汇编语言文件名 lx.asm并保存到f盘,练习程序清单如下:
Org 1000h
mov a,#15h
mov b,#0e4h add a,b nop
mov 20h,#34h mov a,20h
movx @dptr, a mov a,#0e7h mov dptr,#0008h movx a,@dptr nop clr a
mov dptr,#0007h
mov a,21h movc a,@a+dptr nop nop mov a,#0c6h end mov dptr,#0009h
③、学生自行练习教科书上的汇编语言指令及短程续,内容不限。 3、预习下一次软件实验:数据排序试验
4、通过本实验得到的重要结论:
①、单片机指令的执行过程:完成特定任务的多条汇编语言指令被编辑完成后,以软件或手工方式被编译成单片机可以识别的机器码,并按顺序存储在系统的程序存储区中,单片机CPU按顺序在程序存储区取指令并执行。
②、编译软件的作用:由于单片机CPU只能识别存储在程序存储区中的机器码,那么将指令变成机器码的过程就很重要,我们将这一过程称为编译。编译可以通过查找机器码表手工进行,也可以通过软件方式自动进行(即:将繁杂的极易出错的重复性的工作交给软件去作),而后者就是编译软件的一个重要作用之一。除此之外,编译软件还有一些其他作用,比如完成上下位机的通信、传送机器码到下位机程序存储器,监控下位机的状态(包括寄存器、内部数据存储器、外部数据存储器、程序存储器、程序执行状态等),同时还提供了灵活的程序的调试命令,给使用者提供更大的方便。
③、常用的编译软件种类:我们现在用到的编译软件是汇编语言编译软件,还有应用更加广泛的更加高级的功能更加强大的单片机C语言编译器。这样就有了不同的计算机语言。
实验二 数据排序
1、实验目的:通过本次试验,熟练掌握51单片机汇编语言指令系统,同时初步掌握汇编语
言的程序设计方法。 2、实验内容:编写并调试完成一个数据排序的小程序,其功能为用冒泡法将内部RAM中
50H-5AH单元中存储的杂乱数据,按照从小到大的顺序重新进行排序。然后重新编写程序,再实现从大到小的排序。 3、实验框图:
开始 清标志位 从(R0)取数送 A (R0)+1送R0 长度减1=0? (A)<((R0))? N 置标志位,交换内容 Y Y 标志位=0? Y 结束 4、实验程序示例:
ORG 0100H
mov 50h,#34h mov 51h,#98h mov 52h,#0f5h mov 53h,#0d3h mov 54h,#25h mov 55h,#78h mov 56h,#72h mov 57h,#18h mov 58h,#09h mov 59h,#69h mov 5ah,#88h DORDE:
MOV SP,#60H
MOV R3,#50H MOV R0,A MOV R7,#0AH CLR 00H MOV A,@R0 MOV R2,A CLR C MOV 22H,@R0 CJNE
A,22H,DORDE3 SETB C
end
N N
DORDE3: MOV A,R2
JC DORDE4 SETB 00H XCH A,@R0 DEC R0 XCH A,@R0 INC R0 DJNZ R7,DORDE2 JB 00H,DORDE1
DORDE5: SJMP DORDE5
DORDE1: MOV A,R3
DORDE2: INC R0
DORDE4: MOV A,@R0
5、实验报告:完成从大到小排序的程序框图,程序编写及调试调试过程。要写出实验结论
或实验体会收获。
实验三 汇编语言编写多位数加法程序
1、 实验目的:通过本次试验,熟练掌握51单片机汇编语言指令系统,同时初步掌握汇编
语言的程序设计方法。 2、 实验内容:利用单字节加法指令,完成多位无符号十进制加法运算。要求完成6位数以
上的加法。
3、 程序框图:(4位加法)
清进位标志c 存放被加数高位存R1,低位存R0 存放加数高位存R3,低位存R2 加数与被加数低位相加 结果进行BCD调整后存在R4中 加数与被加数高位带进位相加 结果进行BCD调整后存在R5中 进位调整
4、 程序示例:被加数以BCD码格式存放在R0、R1中,加数也以BCD码格式存放在R2、
R3中,和值以BCD码格式存放在R4、R5、R6。(4位加法)
org 1000h CLR C mov r0,#88h mov r1,#34h mov r2,#78h mov r3,#96h mov a,r0 add a,r2 da a mov r4,a mov a,r1 addc a,r3 da a
mov r5,a mov r6,#00h clr a addc a,r6 mov r6,a nop end