《用单片机设计流水灯的方法和程序编写.docVIP

《用单片机设计流水灯的方法和程序编写.doc

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

 S51增强型单片机实验板上有8个高亮度发光二极管(见图1所示),可以用来做单片机流水灯、跑马灯。。。等实验,电路原理图见下图3。 图3单片机流水灯设计方法   从原理图可以看出,如果我们想让接在P1.0口的LED1亮起来,那么我们只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平就可以;同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭方法方法同LED1。因此,要实现流水灯功能,我们只要将LED2~LED8依次点亮、熄灭,依始类推,8只LED变会一亮一暗的做流水灯了。   实现8个LED流水灯程序用中文表示为:P1.0低、延时、P1.0高、P1.1低、延时、P1.1高、P1.2低、延时、P1.2高、P1.3低、延时、P1.3高、P1.4低、延时、P1.4高、P1.5低、延时、P1.5高、P1.6低、延时、P1.6高、P1.7低、延时、P1.7高、返回到开始、程序结束。   从上面中文表示看来实现单片机流水灯很简单,但是我们不能说P1.0你变低,它就变低了。因为单片机听不懂我们的汉语的,只能接受二进制的“1、0......”机器代码。我们又怎样来使单片机按我们的意思去工作呢?为了让单片机工作,只能将程序写为二进制代码交给其执行;早期单片机开发人员就是使用人工编写的二进制代码交给单片机去工作的。今天,我们不必用烦人的二进制去编写程序,完全可以将我们容易理解的“程序语言”通过“翻译”软件“翻译”成单片机所需的二进制代码,然后交给单片机去执行。这里的“程序语言”目前主要有汇编语言和C语言两种;在这里我们所说的“翻译”软件,同行们都叫它为“编译器”,将“程序语言”通过编译器产生单片机的二进制代码的过程叫编译。前面说到,要想使LED1变亮,只需将对应的单片机引脚电平变为低电平就可以了。现在让我们将上面提到的8只LED流水灯实验写为汇编语言程序。 实现8个LED流水灯汇编语言源程序 liu01.asm ?     ;----- 主程序开始 ----- START: CLR   P1.0       ;P1.0输出低电平,使LED1点亮     ACALL  DELAY      ;调用延时子程序     SETB  P1.0       ;P1.0输出高电平,使LED1熄灭     CLR   P1.1       ;P1.1输出低电平,使LED2点亮     ACALL  DELAY      ;调用延时子程序     SETB  P1.1       ;P1.1输出高电平,使LED2熄灭     CLR   P1.2       ;P1.2输出低电平,使LED3点亮     ACALL  DELAY      ;调用延时子程序     SETB  P1.2       ;P1.2输出高电平,使LED3熄灭     CLR   P1.3       ;P1.3输出低电平,使LED4点亮     ACALL  DELAY      ;调用延时子程序     SETB  P1.3       ;P1.3输出高电平,使LED4熄灭     CLR   P1.4       ;P1.4输出低电平,使LED5点亮     ACALL  DELAY      ;调用延时子程序     SETB  P1.4       ;P1.4输出高电平,使LED5熄灭     CLR   P1.5       ;P1.5输出低电平,使LED6点亮     ACALL  DELAY      ;调用延时子程序     SETB  P1.5       ;P1.5输出高电平,使LED6熄灭     CLR   P1.6       ;P1.6输出低电平,使LED7点亮     ACALL  DELAY      ;调用延时子程序     SETB  P1.6       ;P1.6输出高电平,使LED7熄灭     CLR   P1.7       ;P1.7输出低电平,使LED8点亮     ACALL  DELAY      ;调用延时子程序     SETB  P1.7       ;P1.7输出高电平,使LED8熄灭     ACALL  DELAY      ;调用延时子程序     AJMP  START      ;8个LED流了一遍后返回到标号START处再循环     ;----- 延时子程序 ----- DELAY: MOV   R0,#255     ;延时一段时间 D1:   MOV   R1,#255     DJNZ  R1,$     DJNZ  R0,D1     RET            ;子程序返回     END           ;

文档评论(0)

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

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

1亿VIP精品文档

相关文档