单片机实验报告_第1页
单片机实验报告_第2页
单片机实验报告_第3页
单片机实验报告_第4页
单片机实验报告_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《微机实验》报告实验名称KeilC的使用与汇编语言上机操作指导教师专业班级_姓名—学号序号联系方式一、任务要求实验目的:熟悉KeilC环境,通过在KeilC环境下调试字节拆分、合并程序、数据块清零程序、加法程序,掌握汇编语言程序的调试方法,加深对BCD码、ASCII码、堆栈、寄存器、数据指针、汇编语言指令、机器码等基本概念的理解,为后续程序编制和调试打下基础。实验内容:1.掌握KeilC环境的使用1)字节拆分、合并:调试e421.asm程序,观察相关寄存器和单元的内容。2)数据块填充:调试fill.asm程序,观察相关寄存器和单元的内容。编写两个十六位数的加法程序。有两个十六位无符号数,分别存放在从20H和30H开始的数据区中,低八位先存,高八位在后,和存于R3(高八位)和R4(低八位),进位位存于R2。二、设计思路掌握KeilC环境的使用1)字节拆分、合并:字节拆分要将BCD码转换为2字节ASCII,需将BCD码拆为两部分,分别加30H。具体先用XCHD语句将BCD码与00H交换低位,“高位”需先用SWAP语句将高低位交换,再加30H;“低位”直接加30H。字节合并同理,需减30H再合并。2)数据块填充:指针在7000H,利于循环语句递增填充,A寄存器中存放要填充的数据,DPTR数据指针指向片外,R0计数。用CJNE构成循环,循环中A、DPTR、R0都加1编写两个十六位数的加法程序两数低位分别存于20H、30H,高位存于21H、31H。用ADD语句将低位相加,存于R4;用ADDC语句将高位和进位Cy相加,存于R3;存进位需先将A寄存器清零,再用ADDC语句将A、00H和Cy相加,存于R2。三、资源分配本程序数据均存于片内RAM中,有两个十六位无符号数,低位分别存于20H、30H中,高位分别存于21H、31H中。高八位和存于R3中,低八位和存于R4中,进位位存于R2中。四、流程图开始A—(20H)AjA+(30H)五、源代码ORG0000HMAIN:MOVR0,#20H;设置第一个数地址指针MOVR1,#30H;设置第二个数地址指针MOVA,@R0;取低位ADDA,@R1;两数低位相加MOVR4,A;存“和”低位INCR0INCR1MOVA,@R0;取高位ADDCA,@R1;两数高位相加MOVR3,A;存“和”高位CLRAADDCA,#0MOVR2,A;存进位HERE:SJMPHERE;踏步END;结束ProgramSize:data=8.0xdata=0code=18精简后ORG0000HMAIN:MOVA,20H;取低位ADDA,30H;两数低位相加MOVR4,A;存“和”低位MOVA,21H;取高位ADDCA,31H;两数高位相加MOVR3,A;'存“和''高位CLRAADDCA,#0

HERE:MOVR2,A存进位SJMPHERE踏步ENDProgramSize:data=8.0xdata=0code=16六、程序测试方法与结果、软件性能分析HERE:MOVR2,A存进位SJMPHERE踏步1.1字节拆分、合并调试拆分时,如图31H、32H中内容为34和39,正常合并时,如图33H中内容又变为了49合并时,如图33H中内容又变为了49D:0x30:0:493433登00000000DODODO00D:0x^3:3:000000000000000000000000D:0x60:0:0QQQQQQOQ0000000QOQOQ0QQIMemory1D:0x30:0:43京39WM00000000000000M00D:0^3:£:00000000叫000000加00000。叫QQD:Ojl60:0:0000GO丸M加000000也00丸M加!>■.口.nn1.2数据块填充调试执行完改程序后片外7000H到70FFH中的数据如下图X0x007000OO010203040507OS09ggDCODOEOF10111213宜15X0x0070171713191AIBIDIEIF20212223242526272-3292A方2C2DX0x00702E2E2F303132333435363733393A33丈3D3E3F404143为X0x007045454647454?4A4E4D4E4F5051525354555-65753595A53X0xO0705C5C5D5E5F606162&364砧56676869£A&Bec6D6E&F707172X0x00707373¥757G77至737A有K7D7E7F■30■31■32■33■34■35■36叩mm■33XOxOOTOSA3AS3-zC3D•5E3F909192939495369793999A939C3D9E9FAOX0xO07QAlAlA2A3A4ASA6A7A8A9AAABACADAEAFBOBlB罢B3B4B5B6手X0XD070B8mm39BA33BCBDBEBFCOClC2C3FC5C6C7C3C9CACBCDCEXOx0070CFCFDODID2D3D4D5D€D7D8D9DADEDCDDDEDFEOElE2E3E4E5X0xO070E6E6E7E3E?EAESECEDEEEFFOFlF2F3F4F5网F7F3F3FAFSFCXaz0070FDFDFEFFg00000000000000000000000000g0000000000Address:|i:7M2H

两个十六位数的加法程序测试方法:修改片上RAM中20H、21H、30H、31H数据,查看R2、R3、R4数据。

如图,令20H上为09H、21H上为90H、30H上为40H、31H上为81HAddress:|D:uDhD0x00000000111弗00000000QQ000000000000D0x1-3m0000000000OQ000009SODO0000GO0000D0x30040SI0000000000000000DOOO00000000D0x43pw000000OQQQQQ000000QQ000000000000D0x^000000OD000000g000000DO0000000000D0x7880000000000000000FF07DOOO00000000D0x^00FF0000000000000000000000M0000D0xA88000Q000000OQ0000FFQQDO0000GO00001—111—r1运行结果:如图R2=01H,R3=11H,R4=49HRegisterValue-R&gsrO0x00rlOkOOr20x01r3Oxll:r40x49:r5OmOOr&OmOOrT0x00-Sys0x01-bOwOOOwOTSJ|_E;对OkOYdptr0x0000FC$C:OxOOOEstates9s&c000000450+pswOmOI性能分析精简前ProgramSize:data=8.0xdata=0code=18运行时间t1=0.00000650s精简后ProgramSize:data=8.0xdata=0code=16运行时间t1=0.00000450s七、思考题1.怎样查看工作寄存器、SFR、片内RAM、片外RAM及程序代码空间内容?Disassembly窗口有何作用?按Start/stopDebugSession编译程序点击ViewfRegistersWindow,查看工作寄存器点击ViewfMemoryWindows,选择Memoryl,弹出Memoryl窗口,在Address栏中介入d、x、c分别查看片内RAM、片外RAM及程序代码空间内容Disassembly窗口显示编译之后对应的汇编代码。2.字节拆分、合并还有哪些方法,举一例说明。还可以用与运算拆分利用XCHD语句合并ORG0000HLJMPMAINORG0100HMAIN:MOV30H,#49HMOVA,30HANLA,#F0H;取高位SWAPAORLA,#30H;高位转换为ASCII码MOV31H,A;结果存于31H单元MOVA,30HANLA,#0FH;取低位ORLA,#30H;低位转换为ASCII码MOV32H,A;结果存于32H单元MOVA,31HSWAPAMOVRO,32HXCHDA,@R0MOV30H,A;合并存于30HHERE:SJMPHERE;踏步END

4.若按递减1规律填充数据块,应如何修改程序?ORG0000HLJMPMAINORG0100HMAIN:MOVSP,#40HFILL:MOVA#FFHMOVR0,#00H;设循环计数器MOVDPTR,#7000H;设数据指针FILL1:MOVX@DPTR,A;传送到片外RAMDECA;A内容减1INCDPTR;修改数据指针INCR0;修改循环计数器CJNER0,#00H,FILL1;判断是否结束HERE:SJMPHERE;原地踏步END5.若从7010H单元开始,连续填充20个字节,应该如何修改程序?ORG0000HLJMPMAINORG0100HMAIN:MOVSP,#40HFILL:CLRA;A寄存器清零MOVR0,#00H;设循环计数器MOVDPTR,#7010H;设数据指针FILL1:MOVX@DPTR,A;传送到片外RAMINCA;A内容加1INCDPTR;修改数据指针INCR0;修改循环计数器CJNER0,#14H,FILL1;判断是否结束HERE:SJMPHERE;原地踏步END6.若完成双字节BCD码加法,应如何修改程序?需要在ADD和ADDC后加上DA,进行十进制修正八、实验小结通过本次

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论