当前位置:首页 > 微机原理及应用实验指导书x
实验三 查表程序设计实验
一、 实验目的
学习查表程序的设计方法,熟悉51 的指令系统。
二、 实验设备
PC机一台,TD-NMC+教学实验系统
三、 实验内容
1. 通过查表的方法将16 进制数转换为ASCII 码;
2. 通过查表的方法实现y=x2,其中x为0~9 的十进制数,以BCD码表示,结果仍以BCD码形式输出。
四、 实验步骤
1. 采用查表的方法将16 进制数转换为ASCII 码
根据ASCII 码表可知,0~9 的ASCII 码为30H~39H,A~F 的ASCII 码为41H~46H,算 法为(假定待转换的数存放在R7 中):
当R7≤9 时,相应的ASCII 码为:R7+30H;
当R7>9 时,相应的ASCII 码为:R7+30H+07H。
实验程序:自己编写(待转换的数存放在R7 中,R6、R5存放转换结果。) 实验步骤:
(1)编写实验程序,编译、链接无误后联机调试;
(2)将待转换的数存放在R7 中,如令R7 中的值为0x86; (3)在语句行SJMP MAIN 设置断点,运行程序;
(4)程序停止后查看寄存器R6、R5 中的值,R6 中为高4 位转换结果0x38,R5 中为低4 位转换结果0x36;
(5)反复修改R7的值,运行程序,验证程序功能。
2
2. 通过查表实现y=x
x 为0~9 的十进制数,存放与R7 中,以BCD 码的形式保存,结果y 以BCD 码的形式存放于寄存器R6 中。
实验程序:自己编写 实验步骤:
(1)编写实验程序,经编译、链接无误后,进入调试状态; (2)改变R7 的值,如0x07;
(3)在语句行SJMP MAIN 处设置断点,运行程序; (4)程序停止后,查看寄存器R6 中的值,应为0x49; (5)反复修改R7 中的值,运行程序,验证程序功能。
9
实验四 数据排序实验
一、实验目的
熟悉51 的指令系统,掌握数据排序程序的设计方法。
二、 实验设备
PC机一台,TD-NMC+教学实验系统
三、 实验内容
在单片机片内RAM 的30H~39H 写入10 个数,编写实验程序,将这10 个数按照由小到大 的顺序排列,仍写入RAM 的30H~39H 单元中。
四、 实验步骤
根据实验内容要求,画出程序流程图,参考图4,编写实验程序。 实验步骤如下:
(1)编写实验程序,编译、链接无误后联机调试;
(2)为30H~39H 赋初值,如:在命令行中键入E CHAR D:30H=9, 11H, 5, 31H, 20H, 16H, 1, 1AH, 3FH, 8 后回车,可将这10 个数写入30H~39H 中;
(3)将光标移到语句行SJMP $处,点击命令,将程序运行到该行; (4)查看存储器窗口中30H~39H 中的内容,验证程序功能;
(5)重新为30H~39H 单元赋值,反复运行实验程序,验证程序的正确性。
图4 实验程序流程图
10
实验五 位操作实验
一、 实验目的
掌握位指令的使用,学习位程序的设计方法。
二、 实验设备
PC机一台,TD-NMC+教学实验系统
三、 实验内容
编写实验程序,计算Y = A⊕ B , 。
MCS-51 单片机内部有一个一位微处理器,借用进位标志Cy 作为位累加器。位操作指令的操作对象是内部RAM 的位寻址区,即字节地址为20H~2FH 单元中连续的128 位(位地址为00H~7FH),以及特殊功能寄存器中的可位寻址的位。
四、 实验步骤
程序需要实现A 与B 的异或运算,将A、B 分别存放在位地址00H、01H 中,结果Y 存放在位地址04H 中。
实验程序清单:(Asm6.asm)
QA EQU 00H QB EQU 01H QY EQU 04H
ORG 0000H LJMP MAIN ORG 0100H
MAIN: MOV C, QA
ANL C, /QB ;C=QA(QB 非) MOV QY, C MOV C, QA CPL C
ANL C, QB ;C=(QA 非)QB
ORL C, QY ;C=QA(QB 非)+(QA 非)QB MOV QY, C
SJMP MAIN ;设置断点, 观察20H 或C 中的值 END
实验步骤:
(1)编写实验程序,经编译、链接无误后,联机调试; (2)修改20H 单元的值,例如01H;
(3)在语句行SJMP MAIN 设置断点,运行实验程序; (4)程序停止运行后查看20H 中的值,应为11H;
(5)修改20H 中的值,重新运行程序,验证程序的正确性。
11
附:
在汇编语言中,除了MCS-51 指令系统所规定的指令外,还定义了一些伪指令,这些伪指 令只对汇编程序提供必要的控制信息,不产生任何代码。因此伪指令不是单片机执行的指令。 常用的伪指令有如下几条:
(1)起始地址伪指令:ORG nn(nn 表示16 位地址) (2)定义字节伪指令:DB n1, n2, ···, nN (3)定义字伪指令:DW nn1, nn2, ···, nnN (4)定义存储区伪指令:DS x
从指定的地址单元开始,预留x 个存储单元,以备程序使用。 (5)等值伪指令:字符名 EQU 数或汇编符号
将一个数(8 位或16 位二进制数)或特定的汇编符号赋予所定义的字符名。 (6)数据地址赋值伪指令:字符名 DATA nn
将16 位地址赋予所定义的字符名。通常用来定义数据地址。 (7)定义位地址符号伪指令:字符名 BIT bit
将位地址bit 赋予所定义的字符名。如果所使用的汇编程序不具备识别BIT 伪指令的能力,可以用EQU 命令来定义位地址变量。
(8)汇编结束伪指令:END
12
共分享92篇相关文档