杭电单片机实验报告一.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
杭电单片机实验报告一

单片机原理与应用技术实验报告实验题目:Keil软件使用及汇编语言编程姓名:* * *学号:********实验日期: 2017.4.15指导教师:高惠芳1.Keil软件的简介和使用1.1KeiluVision4的简介最新的Keil uVision4 IDE,旨在提高开发人员的生产力,实现更快,更有效的程序开发。uVision4引入了灵活的窗口管理系统,能够拖放到视图内的任何地方,包括支持多显示器窗口。uVision4在μVision3 IDE的基础上,增加了更多大众化的功能:多显示器和灵活的窗口管理系统·系统浏览器窗口的显示设备外设寄存器信息·调试还原视图创建并保存多个调试窗口布局·多项目工作区简化与众多的项目1.2KeiluVision4的使用①,打开Keil 4应用软件,其初始界面如下:②、点击菜单项“Project”下的“New uVisionProject”,如下图所示。③、选择文件夹,并输入工程名。④、输入工程名并保存后会弹出选择芯片界面⑤、这里我们选择Atmel公司的AT89S51单片机,选择后,点击“OK”,即创建完工程。⑥、单击点击下图所示圆圈圈起的部分建立一个文件。也可以点击菜单“File”下面的“NEW”来新建一个文件。⑦、之后输入程序的代码后,单击File—Save as,根据代码语言的格类型,可保存为后缀为.asm(汇编语言)和.c(C语言)的文件。⑧、单击“Target1”前面的“+”号,并用鼠标右键点击“SourceGroup1”,界面如图10所示。在用鼠标左键点击“Add Files to Group Source Group1...”即可把刚刚的代码文件添加到工程。最后点击左上角的编译按钮即可完成编译。之后即可进行程序的调试了。2.实验内容使用汇编语言完成课本P95的(2)、(5)、(8)三道题以及一个跑马灯程序。2.1 P95-(2)设内部RAM 5AH单元中有一个变量X,请编写计算下述函数式的程序,结果存入5BH。设计思路:显然本题要使用分支语句,不妨使用JZ, JNB等,并通过X-10,X-15综合判断X处于哪个区间。代码如下:ORG 0000HJMP STARTORG 1000HSTART: MOV A, 5AH;直接寻址,将5AH地址上的数据X存入寄存器AMOV B, 5AH;直接寻址,将5AH地址上的数据X再一次存入寄存器BSUBB A, #0FH;将A中数据X先减去15,初步判断X所属区间JNB ACC.7, DO3;若A的第7位不为1(X=15)则程序跳到DO3,否则顺序执行MOV A, 5AH;若X比15小,再次将X存入累加器A中CLR C;清零进位CSUBB A, #0AH;将X减去10JNB ACC.7, DO1;若A的第7位不为1,(X=10),跳到DO1JMP DO2;剩下的情况就是:X10,跳到DO2DO1:MOV A, 5AH ;10=X=15MUL AB;相当于X*X,结果的低八位存入AADD A, #08H;即X*X+8→AMOV 5BH,A;即X*X+8→BJMP DONE;跳到程序结束段DO2:MOV A,5AH ;X10MUL AB;X*X→ACLR C;进位C清零SUBB A, #01H;X*X-1→AMOV 5BH,A;X*X-1→BJMP DONE;跳到程序结束段DO3:MOV A, #29H ;41→AMOV 5BH, A;41→BJMP DONE;跳到程序结束段DONE:SJMP $END程序截图:程序结果:①、当X=12时,Y=12*12+8=152②、当X=8时,Y=8*8-1=63③、当X=18时,Y=412.2 P95-(5)设有两个长度均为15的数组,分别存放在以2000H和2100H为首的存储区中,试编程求其对应项之和,结果存放到以2200H为首的存储区中。设计思路:本题需要用到LOOP进行15次的求和及存放。并且由于地址过高,应采用DPTR进行访问。代码如下:ORG 0000HJMP STARTORG 1000HSTART:MOV R1,#00H;求和寄存器,初始清零MOV R2,#0FH;循环次数为15次MOV DPL,#00H;类似段内偏移地址地址LOOP: MOV DPH,#20H;DPTR的高八位,可理解为段地址,这里先指向第一个数组的首;地址2000HMOVX A,@DPTR ;A←((DPTR))MOV R1,A ;R1←(A)INC DPH;DPH改成指向高8位是21H的存储区MOVX A,@DPTR ;A←((DPTR))ADD A,R1 ;两数组对应项求和INC DPH;DPH改成指向高8位是22H的存储区MOVX @DPTR,A ;求和结果送入上述地址区INC DPL;低8位地址自增DJNZ R2,L

文档评论(0)

rovend + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档