姓名:学号:班级:同组人:指导老师:报告日期:软件设计实验1:清零实验实验目的:掌握汇编语言设计和调试方法。实验内容:使用AT89C52单片机对单片机内部RAM进行清零操作,实验内容如下:1.把90H-AFH的内容置为#55H;2.把90H-9FH的内容清零。实验问答:1.清零之后,90H-9FH的内容是什么?A0H-AFH的内容是什么?90H-9FH的内容是#00H,A0H-AFH的内容是#55H2.累加器A、堆栈指针SP的初始状态是什么?A的初始状态为00H,SP的初始状态是07H实验程序:================================================$NOMOD51$INCLUDE(80C52.MCU);===============================================;DEFINITIONS;===============================================;===============================================;VARIABLES;===============================================;===============================================;RESETandINTERRUPTVECTORS;===============================================;ResetVectororg0000hjmpStart;===============================================;CODESEGMENT;===============================================org0100hStart:MOVR1,#20HMOVR0,#90HLOOP1:MOV@R0,#55HINCR0DJNZR1,LOOP1MOVR0,#90HMOVR2,#10HLOOP2:MOV@R0,#00HINCR0DJNZR2,LOOP2Loop:jmpLoop;===============================================END**单个实验报告内容限制在两页之内,采用双面打印,所有报告统一装订;表头内容需要手工签写。姓名:学号:班级:同组人:指导老师:报告日期:软件设计实验2:拆字拼字实验实验目的:进一步掌握汇编语言设计和调试方法。实验内容:使用AT89C52单片机对单片机内部RAM存储的数据进行拆字和拼字实验,实验内容如下:1.将40H地址的内容设置为#8AH;2.将40H地址的内容进行拆分,高字节保存在31H,低字节保存在32H;3.将31H、32H地址的内容进行合并,保存在30H。实验问答:1.运行程序后30H和40H的最终内容是?运行程序后40H的最终内容是8AH2.如果欲使30H内容为0A8H,程序应如何修改?将30H内容移入A,然后交换A的高低字节,最后将A的内容移入30H实验程序:================================================$NOMOD51$INCLUDE(80C52.MCU);===============================================;DEFINITIONS;===============================================;===============================================;VARIABLES;===============================================;===============================================;RESETandINTERRUPTVECTORS;===============================================;ResetVectororg0000hjmpStart;===============================================;CODESEGMENT;===============================================org0100hStart:MOV40H,#8AHMOVA,40HSWAPAANLA,#0FHMOV31H,AMOVA,40HANLA,#0FHMOV32H,AMOVA,31HSWAPAMOVR6,AMOVA,32HORLA,R6MOV30H,ALoop:jmpLoop;===============================================END姓名:学号:班级:同组人:指导老师:报告日期:软件设计实验3:查找相同数个数实验实验目的:熟悉汇编语言编程,掌握判断与跳转语句的使用。实验内容:使用AT89C52单片机对单片机内部RAM进行查找相同数,输出其个数的实验,实验内容如下:1.初始化后,B0H-BFH地址的内容为#00H,将B9H的内容赋值为#01H,将BBH的内容赋值为#01H;2.在B0H-BFH中查找有几个单元存放的内容是#00H,把个数放在R7中。实验问答:1.如需使用第2组工作寄存器的R7,需如何修改程序?将程序状态字中的RS1RS0赋值为102.如需从B0H单元开始,查32个单元的内容,需修改程序哪个语句,如何修改?应将MOVR1,#10H中的10H改为20H实验程序:================================================$NOMOD51$INCLUDE(80C52.MCU);===============================================;DEFINITIONS;===============================================;===============================================;VARIABLES;===============================================;===============================================;RESETandINTERRUPTVECTORS;===============================================;ResetVectororg0000hjmpStart;===============================================;CODESEGMENT;===============================================org0100hStart:CLRAMOVR0,#10HMOVR1,#0B0HLP1:MOV@R1,#00HINCR1DJNZR0,LP1;MOVR0,#0B9H;MOVA,#01H;MOV@R0,A;MOVR0,#0BBH;MOVA,#01H;MOV@R0,A;MOVR0,#10H;MOVR1,#0B0H;MOVR7,#00H;CLRA;LP2:CJNE@R1,#00H,LP3;ADDA,#01H;LP3:INCR1;DJNZR0,LP2;MOVR7,ALoop:jmpLoop;===============================================END姓名:学号:班级:同组人:指导老师:报告日期:软件设计实验4:二进制转ASCII实验实验目的:熟悉ASCII的编码原理,学习其与二进制之间的转换。实验内容:1.将#9FH转为相应的ASCII;2.将结果存放到30H、31H地址;3.查表的方式实现。实验问答:1.简述ASCII、BCD码与二进制之间的关系。BCD码是用二进制表示十进制数的方法,ASCII十进制数在电脑中用二进制的表示方法。ASCII是用16进制数表示一些规定的常用的字符代码的一种编码表,由ASCII编码表可知,数字0-9的ASCII码分别是30H-39H;英文大写字母A-F的ASCII码分别是41H-46H。BCD码是用三位二进制码表示一位十进制数的方法,BCD与二进制,(d3d2d1d0)BCD=((d3*10+d2)*10+d1)*10+d0,而di+1*10+di运算可以编成子程序。2.简述MOVC两条指令,并说明其作用及区别。MOVCA,@A+DPTR;这条指令以DPTR作为基址寄存器,A的内容作为无符号数和DPTR的内容相加得到一个16位的地址,该地址指出的程序存储单元的内容送到累加器A。MOVCA,@A+PC;这条指令以PC作为基址寄存器,A的内容作为无符号数和PC内容(下一条指令第一字节地址)相加得到一个16位的地址,该地址指出的程序存储单元的内容送到累加器A。实验程序:================================================$NOMOD51$INCLUDE(80C52.MCU);===============================================;DEFINITIONS;===============================================;===============================================;VARIABLES;===============================================;===============================================;RESETandINTERRUPTVECTORS;===============================================;ResetVectororg0000hjmpStart;===============================================;CODESEGMENT;===============================================org0100hStart:MOVR0,#09FHMOVA,R0SWAPAANLA,#0FHMOV30H,AACALLSQRMOV30H,AMOVA,R0ANLA,#0FHACALLSQRMOV31H,ASJMP$SQR:INCAMOVCA,@A+PCRETTAB:DB30H,31H,32H,33H,34H,35H,36H,37H,38H,39HDB41H,42H,43H,44H,45H,46HLoop:jmpLoop;===============================================END姓名:学号:班级:同组人:指导老师:报告日期:软件设计实验5:数据块传送实验实验目的:掌握外部扩展RAM中的数据操作。实验内容:1.对2040H地址开始的100个字节进行赋值,值为#5AH;2.将2040H地址开始的20个字节传送到以0030H开始的目的地址。实验问答:3.简述MOVX两组指令,并说明其作用及区别以DPTR为片外数据存储器16位地址寻址地址达64KB,其功能是在DPTR所指定的片外数据存储器与累加器A之间传送数据。以R0和R1作为低八位地址指针,由P0口输出,完成以R0和R1为地址指针的片外数据存储器与A之间的数据传送。。4.单片机访问外部RAM时,使用了哪几个控制信号引脚?RD片外数据存储器读选通控制输出PSEN片外程序存储器选通控制信号端WR片外数据存储器写选通控制输出实验程序:=================