单片机软件实验1清零实验.docx

上传人:scccc 文档编号:13935256 上传时间:2022-01-27 格式:DOCX 页数:28 大小:152.70KB
返回 下载 相关 举报
单片机软件实验1清零实验.docx_第1页
第1页 / 共28页
单片机软件实验1清零实验.docx_第2页
第2页 / 共28页
单片机软件实验1清零实验.docx_第3页
第3页 / 共28页
单片机软件实验1清零实验.docx_第4页
第4页 / 共28页
单片机软件实验1清零实验.docx_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《单片机软件实验1清零实验.docx》由会员分享,可在线阅读,更多相关《单片机软件实验1清零实验.docx(28页珍藏版)》请在三一文库上搜索。

1、单片机软件实验1-清零实验姓名:学号:班级:同组人:指导老师:报告日期:软件设计实验1:清零实验实验目的:掌握汇编语言设计和调试方法。A实验内容:使用AT89C52单片机对单片机内部RAM进行清零操作,实验内容如下:1 .把90H-AFH的内容置为#55H;2 .把90H-9FH的内容清零。实验问答:1.清零之后,90H-9FH的内容是什么? AOH-AFH的内容是什么?答:90H-9FH 内容:00H;AOH-AFH: #55H2.累加器A、堆栈指针SP的初始状态是什么?答:累加器A:OOH,堆栈指针SP:07Ho实验程序:Loop:jmp LoopEND8051 CPU Internal

2、ffDATA) Memory - UIoogoogooooggoogoooo ocoaooMgooocoaMoaocoo gococooocooocococgococ 88883888IOO888 ooooocooocooocg55ooocoooc ggoogoooooog55goo8g OOMOOMOCMOOOCSSOOOOMOO OC8OC8OCOCOCOC558OCOOOC oogoooogggoooo 0O0D0C00OC000OOC550OOO0O0O88008800885580088 0o0Q0c0o0o0o0c0c550a0o0o0o goololggooisl 四也00100;

3、 oaoaocwgooKocssoaocoooo 0C000C000C000C0C550000000C 888810010088155881008 0000OC000000OCOC5500OC00OC oogoogoooooooossgoooooo AOM0OM0OWJ0O0C55优ocoooo 现 g0cg0c000c0c5580c0cg$N0M0D51$INCLUDE(80C52. MCU);DEFINITIONS;VARIABLESRESET and INTERRUPTVECTORS;Reset Vectororg OOOOhjmp Start;CODE SEGMENTorg OlOOh

4、Start:MOV RO, #90HMOV R3, #20HL00P1:MOV RO, #55HINC RODJNZ R3, LOOP1MOV R2, #1OHMOV RI, #90HCLRO:MOV R1, #OOHINC RIDJNZ R2, CLRO;Write your code here*单个实验报告内容限制在两页之内,采用双面打印,所有 报告统一装订;表头内容需要手工签写。姓名:学号:班级:同组人:指导老师:报告日期:软件设计实验2:拆字拼字实验实验目的: 进一步掌握汇编语言设计和调试方法。A实验内容:使用AT89C52单片机对单片机内部RAM存储的数据进行拆字和拼字实验,实验内容

5、如下:1 .将40H地址的内容设置为#8AH;2 .将40H地址的内容进行拆分,高字节保存在31H,低字节保存在32H;3 .将31H、32H地址的内容进行合并,保存在30H。实验问答:1 .运行程序后30H和40H的最终内容是?答:都是#8AH2 .如果欲使30H内容为0A8H,程序应如何修改?答:将30H值赋予A,再SWAP A,然后将A赋予30H。实验程序:Loop:jmp Loop$N0M0D51$INCLUDE(80C52. MCU)f9;DEFINITIONSENDIf;VARIABLESf9RESET and INTERRUPTVECTORS;Reset Vectororg OO

6、OOhjmp Start8051 CPU Internal (IDATA) Memory - UI;CODE SEGMENT00OC 31 00 OCOO 00 DO 0000 DO 00 0000 00 OC 0010OG DO 00 OCoo oo oo oaoo do oa oodo oa oo oo20OC OO 00 OCOO 00 00 0000 00 00 0000 00 00 0020以 OO 00 OCOO 00 00 0000 DO 00 0000 00 OC 0040OO 00 OCOO 00 00 800 00 8 0000 8 OC 0050OC OO 00 OCOO

7、 00 00 oo00 00 OO 0000 OO 00 0060OC OO 00 OCOO 00 00 0000 00 00 00DO 00 00 0070OC OO 00 OCOO 00 00 800 DO 8 0000 8 OC 0080OC OD 00 OCOD 00 00 800 00 00 0000 00 OC 0090OC OO 00 OCOO 00 DO 00oo oo oa oooo oa oo ooAO00 OO 00 OCOO 00 00 0000 00 00 0000 00 00 00EOOC OO 00 OCOO 00 00 800 DO 8 0000 8 OC 00

8、COOC OD 00 OCOO 00 00 0000 00 00 0000 00 OC 00DOOC OO 00 OCOO 00 00 0000 00 00 000 00 OC 00EOOC OO 00 OCOD 00 00 0000 00 00 0000 00 OC 00FOOC OD 00 OCOO 00 00 800 00 8 00DO 8 OC 00org OlOOhStart:MOV 40H, #8AHMOV A, 40HANL31H, #OFHANL 32H, #OFHM0VR1, #32HXCHD A, R1SWAP ADEC RIXCHD A, R1 ;拆分结 束 CLR AM

9、0VR1, #32HXCHD A, R1 DEC RI SWAP A XCHD A, R1 SWAP AMOV 30H, A ;合并结 束;Write your code here姓名:学号:班级:同组人:指导老师:报告日期:软件设计实验3:查找相同数个数实验实验目的: 熟悉汇编语言编程,掌握判断与跳转语句的使用。实验内容:使用AT89c52单片机对单片机内部RAM进行查找相同数,输出其个数的实验,实验内容如下:1 .初始化后,BOH-BFH地址的内容为#00H,将B9H的内容赋值为#01H,将BBH的内容赋值为#01H;2 .在BOH-BFH中查找有几个单元存放的内容是#00H,把个数放在R

10、7中。实验问答:1 .如需使用第2组工作寄存器的R7,需如何修改程序?答:更改起始单元地址,用位操作指令将RSO和RS1分别置为0, 12 .如需从BOH单元开始,查32个单元的内容,需修改程序哪个语句,如何修改? 答:将循环计数标志置为#20H实验程序:RESET and INTERRUPT VECTORS)VARIABLES一 DEFINITIONS8NOMOD51SINCLUDE (80C52.MCU)QPQOOOQOOOQOQOQOOOOOOOOOOOOOOOQIX ODOOOOOOOOOOOOOUooooooooooooooor ooooooooooooooocQQQQQQQQQQQ

11、QQQQQ oooooooooooooooo8000000000000000Doaoooooooooooaoooooooooooooooo ooooooooooooooooQQQQQQQQQQQQQQQQ OOOOOOOOOOOOOOOO8000000000000000Dooooooooooooaaooooooooooocoooc ooooooooooooooomQOQOOOOOOOOOQOQO ooooooooooooooooooooooooooooooooOOOOROOOOOOCOOOOoooooooooooooooo ooooooooooooooooQOQOOOOOOOQOQOQO oo

12、ooooooooooooooCO05L CPU Interne- QDATMemory UIoooooooooooooooo ooooooooooooooooooooooooooooooooOOOOOOOOOOQQQQQoooooooooooooooooooooooooooooooo oooooooooooooooo;Reset Vectororg OOOOhjmp Start9;CODE SEGMENTorg OlOOhStart:MOV R2,#0FHMOV RI, #0B0HLOOP1:MOVR1, #00H INC RI DJNZR2, LOOP1 MOVRO, #0B9HMOV R0

13、, #01H MOVRI, #0BBHMOV R1, #O1H ;初始化结束MOVR2, #10H; 15 次循环MOV RI, #OBOHMOV R7,#00HRESEARCH:CJNER1, #00H, NEXTINC R7NEXT: INC RIDJNZR2, RESEARCH ;Write your code here姓名:学号:班级:同组人:指导老师:报告日期:软件设计实验4:二进制转ASCII实验实验目的:熟悉ASCII的编码原理,学习其与二进制之间的转换。A实验内容:1 .将#9FH转为相应的ASCH;2 .将结果存放到30H、31H地址;3 .查表的方式实现。实验问答:1 .简

14、述ASCH、BCD码与二进制之间的关系。BCD:使用16进制的前10个进行编码,用四位二进制数表示十进制数ASCII:标准信息编码,用二进制表示字符的规定,每一个字符对应一个二进制数2 .简述MOVC两条指令,并说明其作用及区别。MOVC A,A+DPTR:以DPTR为基址以A为变址进行寻址,用于查表MOVCA,A+PC:以PC为基址以A为变址进行寻址,PC指向下一条指令,用于查表实验程序:$N0M0D51Loop:jmp Loop$INCLUDE(80C52. MCU)END;DEFINITIONS;VARIABLES8051 CPU Internal (IDATA) Memory - UI

15、RESET and INTERRUPTVECTORS;Reset Vectororg OOOOhjmp Start;CODE SEGMENTorg OlOOhStart:MOV A, #9FHSWAP AANL A, #OFHACALL CHECKMOV 30H,AMOV A, #9FHANL A, #OFHACALL CHECKMOV 31H,ASJMP$CHECK: INC AMOVCA, A+PCRETTABLE: DB30H, 31H, 32H, 33H, 34H, 35H,36H, 37H, 38H, 39HDB41H, 42H, 43H, 44H, 45H, 46H;Write y

16、our code姓名:学号:班级:同组人:指导老师:报告日期:软件设计实验5:数据块传送实验实验目的: 掌握外部扩展RAM中的数据操作。实验内容:1 .对2040H地址开始的100个字节进行赋值,值为#5AH;2 .将2040H地址开始的20个字节传送到以0030H开始的目的地址。实验问答:3 .简述MOVX两组指令,并说明其作用及区别。答:MOVXA, Ri:片外RAM 8位地址送入累加器 MOVXA, DPTR:片外RAM 16位地址送入累加器 MOVX Ri, A :累加器送入片外RAM 8位地址 MOVX DPTR,A:累加器送入片外RAM 16位地址4 .单片机访问外部RAM时,使用

17、了哪几个控制信号引脚?答:WR, RD, ALE实验程序:Loop:jmp LoopENDRESET and INTERRUPTVECTORS回Memory Contents - U2$N0M0D51$INCLUDE (80C52. MCU);DEFINITIONS;VARIABLES;Reset VectororgjmpOOOOh;CODE SEGMENTorg OlOOh Start:MOV RO, #64HMOV DPTR, #2040H MOV A , #5AH L1:MOVX DPTR, AINC DPTR DJNZ RO, LI MOV RO, #14H MOV DPTR, S2040H MOV RI, #30H MOV P2, #00HL2:MOVX A, DPTRMOVX R1,A INC DPTR INC RI DJNZ RO, L2;Write your code here

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1