安徽大学历次单片机作业与课程设计精选.doc

安徽大学历次单片机作业与课程设计精选.doc

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
安徽大学历次单片机作业与课程设计精选

单片机原理与应用第一次作业 学号:_______  姓名:_______ 目录 一、题目 二、软件 三、硬件 一、题目 §题目:广告灯控制系统 §内容:做宣传广告时,为了使广告内容醒目,引人注意,往往用灯光闪烁或明暗对比等手段。设有8个广告字,每次亮一个字,亮10ms,依次左移,然后依次右移,循环不止。 §要求:以LED发光二极管代替广告字,程序延时。 §硬件:画出硬件电路原理图,考虑LED的驱动问题。 §软件:画出程序流程图,编写源程序。 §调试:记录调试过程,分析调试结果。 二、软件 1.源程序: ORG 0000H ;定义起始地址 MOV A,#B ;将二进制立即数B放到累加器A中 LJMP START ;长转移到START函数 ORG 0100H ;定义START函数的起始地址 START: MOV R0,#7 ;将十进制立即数7放到寄存器R0中 MOV R1,#7 ;将十进制立即数7放到寄存器R1中 LEFT: MOV P1,A ;将A中的内容送到P1口,只有P1.7为低电平,该处二极管被点亮 LCALL DEL10ms ;延时10ms RR A ;将A中的内容右移一位,相应地,低电平所处位置左移一位 DEC R0 ;将R0中的内容减1 CJNE R0,#0,LEFT ;判断R0是否为0,若不是则转移到LEFT函数起始位置,若是则程序顺序执行 RIGHT: MOV P1,A ;将A中的内容送到P1口,此时只有P1.0为低电平,该处二极管被点亮 LCALL DEL10ms ;延时10ms RL A ;将A中的内容左移一位,相应地,低电平所处位置右移一位 DEC R1 ;将R1中的内容减1 CJNE R1,#0,RIGHT ;判断R1是否为0,若不是则转移到RIGHT函数起始位置,若是则程序顺序执行 LJMP START ;长转移到START函数 DEL10ms: MOV R7,#25 ;将十进制立即数25放到寄存器R7中 DEL1: MOV R6,#200 ;将十进制立即数200放到寄存器R6中 DEL2: DJNZ R6,DEL2 ;将R6中的内容减1,判断R6是否为0,若否则转移到DEL2函数起始位置,否则程序顺序执行 DJNZ R7,DEL1 ;将R7中的内容减1,判断R7是否为0,若否则转移到DEL1函数起始位置,否则程序顺序执行 RET ;返回到调用DEL10ms函数的语句的下一条语句 END ;程序结束的标志,因为上述程序中有死循环,所以目标程序执行不到这一步 注:上述程序已用Proteus 7.8中调试过,能满足题目要求。调试方法为设置执行指定时间分别为10ms,20ms,30ms等整十毫秒,看执行完毕后发光的那个二极管符不符合预期。 收获: (1)其实此次作业若在上完第四单元后布置会更好,因为第三章只教了一些指令,第四章教的才是单片机汇编语言程序设计,不过提前布置可以督促大家预习第四单元。 (2)写程序的过程中,我深切的感受到了汇编语言指令中的标号带来的便利,其功能实际上与C语言的函数名相同,是为了方便调用或转移。 (3)51单片机所有I/O口上电之后全部默认为高电平,想让某一发光二极管发光,就要用程序来使其一端为高电平,另一端为低电平。 (4)上述程序中延时10ms的延时程序是由教材第65面例4-14的延时50ms的延时程序改编而来,我在照搬书上的延时程序,并下载到单片机中或用Proteus 7.8进行仿真时发现只有最右边的二极管发光。认真研究后知道SJMP $其实就是HERE;SJMP HERE的意思,是一个死循环,将其删除后才能正常调用

您可能关注的文档

文档评论(0)

gz2018gz + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档