单片机原理与应用技术实验报告--Keil软件使用及汇编语言编程 

单片机原理与应用技术实验报告--Keil软件使用及汇编语言编程 

ID:35555006

大小:1.79 MB

页数:12页

时间:2019-03-28

单片机原理与应用技术实验报告--Keil软件使用及汇编语言编程 _第1页
单片机原理与应用技术实验报告--Keil软件使用及汇编语言编程 _第2页
单片机原理与应用技术实验报告--Keil软件使用及汇编语言编程 _第3页
单片机原理与应用技术实验报告--Keil软件使用及汇编语言编程 _第4页
单片机原理与应用技术实验报告--Keil软件使用及汇编语言编程 _第5页
资源描述:

《单片机原理与应用技术实验报告--Keil软件使用及汇编语言编程 》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、单片机原理与应用技术实验报告实验题目:Keil软件使用及汇编语言编程姓名:***学号:********实验日期:2017.4.15指导教师:高惠芳1.Keil软件的简介和使用1.1KeiluVision4的简介最新的KeiluVision4IDE,旨在提高开发人员的生产力,实现更快,更有效的程序开发。uVision4引入了灵活的窗口管理系统,能够拖放到视图内的任何地方,包括支持多显示器窗口。uVision4在μVision3IDE的基础上,增加了更多大众化的功能:·多显示器和灵活的窗口管理系统·系统浏览器窗口的显示设备外设寄存器

2、信息·调试还原视图创建并保存多个调试窗口布局·多项目工作区简化与众多的项目1.2KeiluVision4的使用①,打开Keil4应用软件,其初始界面如下:②、点击菜单项“Project”下的“NewuVisionProject”,如下图所示。③、选择文件夹,并输入工程名。④、输入工程名并保存后会弹出选择芯片界面⑤、这里我们选择Atmel公司的AT89S51单片机,选择后,点击“OK”,即创建完工程。⑥、单击点击下图所示圆圈圈起的部分建立一个文件。也可以点击菜单“File”下面的“NEW”来新建一个文件。⑦、之后输入程序的代码后,

3、单击File—Saveas,根据代码语言的格类型,可保存为后缀为.asm(汇编语言)和.c(C语言)的文件。⑧、单击“Target1”前面的“+”号,并用鼠标右键点击“SourceGroup1”,界面如图10所示。在用鼠标左键点击“AddFilestoGroupSourceGroup1...”即可把刚刚的代码文件添加到工程。最后点击左上角的编译按钮即可完成编译。之后即可进行程序的调试了。2.实验内容使用汇编语言完成课本P95的(2)、(5)、(8)三道题以及一个跑马灯程序。2.1P95-(2)设内部RAM5AH单元中有一个变量X

4、,请编写计算下述函数式的程序,结果存入5BH。设计思路:显然本题要使用分支语句,不妨使用JZ,JNB等,并通过X-10,X-15综合判断X处于哪个区间。代码如下:ORG0000HJMPSTARTORG1000HSTART:MOVA,5AH;直接寻址,将5AH地址上的数据X存入寄存器AMOVB,5AH;直接寻址,将5AH地址上的数据X再一次存入寄存器BSUBBA,#0FH;将A中数据X先减去15,初步判断X所属区间JNBACC.7,DO3;若A的第7位不为1(X>=15)则程序跳到DO3,否则顺序执行MOVA,5AH;若X比15小

5、,再次将X存入累加器A中CLRC;清零进位CSUBBA,#0AH;将X减去10JNBACC.7,DO1;若A的第7位不为1,(X>=10),跳到DO1JMPDO2;剩下的情况就是:X<10,跳到DO2DO1:MOVA,5AH;10<=X<=15MULAB;相当于X*X,结果的低八位存入AADDA,#08H;即X*X+8→AMOV5BH,A;即X*X+8→BJMPDONE;跳到程序结束段DO2:MOVA,5AH;X<10MULAB;X*X→ACLRC;进位C清零SUBBA,#01H;X*X-1→AMOV5BH,A;X*X-1→BJ

6、MPDONE;跳到程序结束段DO3:MOVA,#29H;41→AMOV5BH,A;41→BJMPDONE;跳到程序结束段DONE:SJMP$END程序截图:程序结果:①、当X=12时,Y=12*12+8=152②、当X=8时,Y=8*8-1=63③、当X=18时,Y=412.2P95-(5)设有两个长度均为15的数组,分别存放在以2000H和2100H为首的存储区中,试编程求其对应项之和,结果存放到以2200H为首的存储区中。设计思路:本题需要用到LOOP进行15次的求和及存放。并且由于地址过高,应采用DPTR进行访问。代码如下

7、:ORG0000HJMPSTARTORG1000HSTART:MOVR1,#00H;求和寄存器,初始清零MOVR2,#0FH;循环次数为15次MOVDPL,#00H;类似段内偏移地址地址LOOP:MOVDPH,#20H;DPTR的高八位,可理解为段地址,这里先指向第一个数组的首;地址2000HMOVXA,@DPTR;A←((DPTR))MOVR1,A;R1←(A)INCDPH;DPH改成指向高8位是21H的存储区MOVXA,@DPTR;A←((DPTR))ADDA,R1;两数组对应项求和INCDPH;DPH改成指向高8位是22H

8、的存储区MOVX@DPTR,A;求和结果送入上述地址区INCDPL;低8位地址自增DJNZR2,LOOP;若循环次数-1后不为0,则跳转到LOOP处进行循环END程序截图:程序结果:首先分别在2000H和2100H存入15数,这里我都存入了1,2,3,…,14,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。