MCS51单片机软件实验题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MCS51单片机软件实验

一、数据传送

1.实验目的

(1)熟悉51单片机的开发环境Keil C51

(2)掌握8051单片机内部数据存储器、外部数据存储器的数据传送特点和应用(3)掌握MOV, MOVX和MOVC类指令的用法及区别

2.实验内容

(1)将内部数据存储器20H为首地址的十六个字节传送到30H为首地址的数据区,即:20H~2FH送30H~3FH。

(2)将外部数据存储器2000H~200FH单元的十六个数传送至内部数据存储器的30H~3FH。

(3)建立一个数字0~9的ASCII码表,表格放在程序存贮器区首址为1000H 的十个单元内,编程根据R0中的内容来查表,所得结果存放在寄存器B 中,注意R0中的内容不在0~9范围时的处理。

二、加减法运算

1.实验目的

(1)正确使用单片机的加减运算指令

(2)掌握不同指令对于程序状态字的影响及程序状态字的意义、用处

(3)掌握ADD,ADDC,SUBB和DA A等指令的用法

(4)学习模块化程序设计方案

2.实验内容

(1)编写3字节二进制加法子程序,并用主程序调用不同的加数和被加数来检测该子程序的正确性。需考虑有进位和无进位情况。

程序入口为:加数:22H,21H,20H三字节,22H为最高位

被加数:32H,31H,30H三字节,32H为最高位程序出口为:23H,22H,21H,20H四字节,23H为最高位

(2)编写3字节二进制减法子程序,用主程序调用多组数据来调试,需考虑无借位和有借位两种情况。

入口:被减数:52H,51H,50H,50H为最低位

减数:42H,41H,40H,40H为最低位

出口:差:外部数据存贮器2003H~2000H(2003H为最高位)

(3)编写10位十进制加法子程序(十进制数采用压缩BCD码存放)入口:加数:24H-20H,低地址放低字节

被加数: 29H-25H,低地址放低字节

要求调用多组数据调试,注意观察PSW的变化,理解DA A指令的含义。

三、乘法运算

1.实验目的

(1)掌握MUL指令的用法

(2)掌握无符号整数的乘法设计思路

2.实验内容

(1)无符号二进制双字节乘法

入口:R1(高位)R0(低位),内放被乘数

R3(高位)R2(低位),内放乘数

出口:33H~30H内放乘积,33H为最高位

设置多组程序来验证程序的正确性

四、代码转换

1.实验目的

(1)掌握代码转换的方法

(2)进一步熟悉51单片机指令系统

2.实验内容

(1)将内部RAM中30H~37H单元的16个拼装4位二进制数0~F转换成ASCⅡ码,并存入内部数据RAM以40H为首地址的区域中。

例如:转换前:地址:30H 31H 32H 33H 34H 35H 36H 37H

数据:01H 23H 45H 67H 89H 0ABH 0CDH 0EFH 转换后:

地址:40H 41H 42H 43H 44H 45H 46H 47H 48H 49H 4AH 4BH 4CH 4DH 4EH 4FH 数据:30H 31H 32H 33H 34H 35H 36H 37H 38H 39H 41H 42H 43H 44H 45H 46H

(2)将R0中的8位二进制数转换成3位BCD码,结果存入外部RAM的1002H~1000H(从高位到低位)单元中

例如:地址:R0 执行后:1002H 1001H 1000H

数据:81H 01 02 09

五、逻辑运算和位操作

1.实验目的

(1)掌握位操作指令

(2)掌握字节逻辑运算和位逻辑运算的区别

2.实验内容

(1)有布尔表达式为Y=A(B+/C)+D(E+/F)

•设A为累加器ACC,B为寄存器B,C为R0,D为R1,E为R2,F为R3,Y 为R7。编程实现并调试。

•设A为P1.0,B为P1.4,C为TF1,D、E、F分别为20H.0、20H.3和20H.5,Y为P1.5。编程实现并调试。

(2)读程序:先自己人工读程序,看看程序执行完成后,各单元的变化,再通过编程调试来验证。

MOV R0,20H

MOV A,#21H

MOV @R0,A

POP 30H

PUSH 22H

CPL C

MOV 20H,C

注:第一、二大题为必做题

相关文档
最新文档