单片机软件实验1清零实验文档格式.docx
《单片机软件实验1清零实验文档格式.docx》由会员分享,可在线阅读,更多相关《单片机软件实验1清零实验文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
实验问答:
1.清零之后,90H-9FH的内容是什么?
A0H-AFH的内容是什么?
答:
90H-9FH内容:
00H;
A0H-AFH:
#55H
2.累加器A、堆栈指针SP的初始状态是什么?
累加器A:
00H,堆栈指针SP:
07H。
实验程序:
================================================
$NOMOD51
$INCLUDE(80C52.MCU)
;
===============================================
DEFINITIONS
VARIABLES
RESETandINTERRUPTVECTORS
;
ResetVector
org0000h
jmpStart
CODESEGMENT
org0100h
Start:
MOVR0,#90H
MOVR3,#20H
LOOP1:
MOV@R0,#55H
INCR0
DJNZR3,LOOP1
MOVR2,#10H
MOVR1,#90H
CLR0:
MOV@R1,#00H
INCR1
DJNZR2,CLR0
Writeyourcodehere
Loop:
jmpLoop
END
**单个实验报告内容限制在两页之内,采用双面打印,所有报告统一装订;
表头内容需要手工签写。
软件设计实验2:
拆字拼字实验
进一步掌握汇编语言设计和调试方法。
使用AT89C52单片机对单片机内部RAM存储的数据进行拆字和拼字实验,实验内容如下:
1.将40H地址的内容设置为#8AH;
2.将40H地址的内容进行拆分,高字节保存在31H,低字节保存在32H;
3.将31H、32H地址的内容进行合并,保存在30H。
1.运行程序后30H和40H的最终内容是?
都是#8AH
2.如果欲使30H内容为0A8H,程序应如何修改?
将30H值赋予A,再SWAPA,然后将A赋予30H。
MOV40H,#8AH
MOVA,40H
ANL31H,#0FH
ANL32H,#0FH
MOVR1,#32H
XCHDA,@R1
SWAPA
DECR1
XCHDA,@R1;
拆分结束
CLRA
MOV30H,A;
合并结束
软件设计实验3:
查找相同数个数实验
熟悉汇编语言编程,掌握判断与跳转语句的使用。
使用AT89C52单片机对单片机内部RAM进行查找相同数,输出其个数的实验,实验内容如下:
1.初始化后,B0H-BFH地址的内容为#00H,将B9H的内容赋值为#01H,将BBH的内容赋值为#01H;
2.在B0H-BFH中查找有几个单元存放的内容是#00H,把个数放在R7中。
1.如需使用第2组工作寄存器的R7,需如何修改程序?
更改起始单元地址,用位操作指令将RS0和RS1分别置为0,1
2.如需从B0H单元开始,查32个单元的内容,需修改程序哪个语句,如何修改?
将循环计数标志置为#20H
MOVR2,#0FH
MOVR1,#0B0H
INCR1
DJNZR2,LOOP1
MOVR0,#0B9H
MOV@R0,#01H
MOVR1,#0BBH
MOV@R1,#01H;
初始化结束
MOVR2,#10H;
15次循环
MOVR7,#00H
RESEARCH:
CJNE@R1,#00H,NEXT
INCR7
NEXT:
INCR1
DJNZR2,RESEARCH
软件设计实验4:
二进制转ASCII实验
熟悉ASCII的编码原理,学习其与二进制之间的转换。
1.将#9FH转为相应的ASCII;
2.将结果存放到30H、31H地址;
3.查表的方式实现。
1.简述ASCII、BCD码与二进制之间的关系。
BCD:
使用16进制的前10个进行编码,用四位二进制数表示十进制数
ASCII:
标准信息编码,用二进制表示字符的规定,每一个字符对应一个二进制数
2.简述MOVC两条指令,并说明其作用及区别。
MOVCA,@A+DPTR:
以DPTR为基址以A为变址进行寻址,用于查表
MOVCA,@A+PC:
以PC为基址以A为变址进行寻址,PC指向下一条指令,用于查表
MOVA,#9FH
ANLA,#0FH
ACALLCHECK
MOV30H,A
MOVA,#9FH
MOV31H,A
SJMP$
CHECK:
INCA
MOVCA,@A+PC
RET
TABLE:
DB30H,31H,32H,33H,34H,35H,36H,37H,38H,39H
DB41H,42H,43H,44H,45H,46H
软件设计实验5:
数据块传送实验
掌握外部扩展RAM中的数据操作。
1.对2040H地址开始的100个字节进行赋值,值为#5AH;
2.将2040H地址开始的20个字节传送到以0030H开始的目的地址。
3.简述MOVX两组指令,并说明其作用及区别。
MOVXA,@Ri:
片外RAM8位地址送入累加器
MOVXA,@DPTR:
片外RAM16位地址送入累加器
MOVX@Ri,A:
累加器送入片外RAM8位地址
MOVX@DPTR,A:
累加器送入片外RAM16位地址
4.单片机访问外部RAM时,使用了哪几个控制信号引脚?
WR,RD,ALE
MOVR0,#64H
MOVDPTR,#2040H
MOVA,#5AH
L1:
MOVX@DPTR,A
INCDPTR
DJNZR0,L1
MOVR0,#14H
MOVR1,#30H
MOVP2,#00H
L2:
MOVXA,@DPTR
MOVX@R1,A
DJNZR0,L2