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

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

ID:8846654

大小:57.00 KB

页数:10页

时间:2018-04-09

用单片机设计流水灯的方法和程序编写_第1页
用单片机设计流水灯的方法和程序编写_第2页
用单片机设计流水灯的方法和程序编写_第3页
用单片机设计流水灯的方法和程序编写_第4页
用单片机设计流水灯的方法和程序编写_第5页
资源描述:

《用单片机设计流水灯的方法和程序编写》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、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变会一亮一暗的

2、做流水灯了。  实现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......”机器代码。我们又怎样来使单片机按我们的意思去工作呢?为了让

3、单片机工作,只能将程序写为二进制代码交给其执行;早期单片机开发人员就是使用人工编写的二进制代码交给单片机去工作的。今天,我们不必用烦人的二进制去编写程序,完全可以将我们容易理解的“程序语言”通过“翻译”软件“翻译”成单片机所需的二进制代码,然后交给单片机去执行。这里的“程序语言”目前主要有汇编语言和C语言两种;在这里我们所说的“翻译”软件,同行们都叫它为“编译器”,将“程序语言”通过编译器产生单片机的二进制代码的过程叫编译。前面说到,要想使LED1变亮,只需将对应的单片机引脚电平变为低电平就可以了。现在让我们将上面提到的8只

4、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输出高

5、电平,使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 

6、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熄灭

7、    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,$    

8、DJNZ  R0,D1    RET          ;子程序返回    END           ;程序结束   在上面主程序中用到了五条汇编语言指令:CLR、ACALL、SETB、LJMP、END。CLR:是将其后面指定的位清为0,程序中使对应端口输出低电平  ACALL:是子程序

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

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

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