51汇编单片机学习(三)八路流水灯

这篇具有很好参考价值的文章主要介绍了51汇编单片机学习(三)八路流水灯。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本帖继续展示关于51单片机的汇编学习,本期为流水灯

本帖使用keil5软件进行程序编写,使用proteus进行仿真

此链接为proteus中的基础设置https://blog.csdn.net/weixin_62311904/article/details/128823381?spm=1001.2014.3001.5502

建立keil5工程请转至此链接

https://blog.csdn.net/weixin_62311904/article/details/128823101?spm=1001.2014.3001.5502

流水灯主要是在小灯闪烁的基础上对小灯进行移动

八路流水则为赋值一组引脚并对引脚进行定义,在上一篇文章我们能知道当引脚置1时为高电平,此时小灯不亮,引脚置0时,低电平,小灯亮,所以可知在一组引脚中,可设置小灯初始位置从“01111111”开始亮起,而十六进制的“01111111”为“0FEH”,然后正在写一个小循环一直执行左流水这样程序就完成了。

当然,如果想要右流水的话就设置初始状态为“7FH”在调用“RR A”指令即可实现。

在keil5中编写好程序之后勾选魔术棒中Output中的.HEX输出

51汇编单片机学习(三)八路流水灯

流水灯代码

        ORG 0000H          
         
START:  MOV A,#0FEH        ;设置流水初始位置
        
LOOP:   MOV P1,A           ;八路流水,所以赋值一组引脚
        LCALL DELAY        ;调用延时函数,小灯亮的时间
        RL A               ;左移指令
        LJMP LOOP
        
        
DELAY:  MOV R5,#20        ;延时函数
D1:     MOV R6,#20
D2:     MOV R7,#255
        DJNZ R7,$
        DJNZ R6,D2
        DJNZ R5,D1
        RET

         
        END

proteus的配置链接在最开始,这个是最终定稿,画图完毕,双击AT89C51,点击此处,找到之前建立的文件夹,点击Objects,找到编译后输出的.hex文件,点击确认

51汇编单片机学习(三)八路流水灯
51汇编单片机学习(三)八路流水灯

最后进行仿真即可,以上就是本帖内容。

二编,写了个双向流水的小程序,主要是DJNZ指令的使用,有兴趣可以试试,有趣的代码文章来源地址https://www.toymoban.com/news/detail-465114.html

        ORG 0000H
            
        
START:     MOV A,#0FEH
        MOV B,#7FH
        MOV R2,#8
        MOV R3,#8
        
LEFT:   MOV P1,A
        LCALL DELAY
        RL A
        DJNZ R2,LEFT
        
RIGHT:    RR A    
        LCALL DELAY    
        MOV P1,A
        DJNZ R3,RIGHT
        LJMP START
        
DELAY:    MOV R5,#20
D1:        MOV R6,#25
D2:        MOV R7,#255
        DJNZ R7,$
        DJNZ R6,D2
        DJNZ R5,D1
        RET
        END

到了这里,关于51汇编单片机学习(三)八路流水灯的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 51单片机实现流水灯

    我们之前说过可以控制管脚口电平来控制LED的亮灭,低电平灯亮,高电平灯灭,具体可以看我之前的博客。 P20~P27可以用八位二进制数来表示每一位的电平,第八位是P20,第一位是P27,那么11111110就代表P20亮,其他灭,11101111就代表P24亮,其他灭。流水灯的代码就可以写成这样

    2024年02月11日
    浏览(47)
  • 51单片机入门流水灯

    上次已经实现了LED的点亮了,这篇文章将带大家实现流水灯。 要想实现流水灯首先就得知道什么是延时函数,延时函数的作用就是等待。比如延时一毫秒就是让程序在这里等待一毫秒。延时函数的本质就是执行一些空指令,因为执行指令需要耗费时间,所以执行一定数量的空

    2024年02月04日
    浏览(44)
  • 【51单片机】键控流水灯

    设置k3作为启动键,只有先按下k3才能开始控制流水灯,按下k3后LED闪烁提示开始成功。 在按下k3后,其余键即可控制流水灯。其中k1执行从右到左,k2执行从左到右。 按下k4,执行外部中断,立马中止流水灯运行,需重新按下启动键重启。

    2024年02月06日
    浏览(40)
  • 51单片机按键控制流水灯

    1独立按键的原理图 按键所对应的引脚为P3的0、1、2、3引脚口,并且这里总共有四个独立按键,它们公共的一段都接到了 GND 电源的负极。这样我们就知道按键上电的默认电平为高电平。所以我们只需要控制按键按下时给一个低电平0,不按下时默认高电平1就行。  2按键控制

    2024年02月11日
    浏览(55)
  • 单片机c51中断 — 中断键控流水灯

    项目文件 文件 关于项目的内容知识点可以见专栏单片机原理及应用 的第五章,中断   在第4章的实例2中,按键检测是采用查询法进行的,其流程图如图所示 问题是这样的:由于查询法 -按键查询、标志位修改及彩灯循环几个环节是串联关系,当CPU运行于彩灯时,将因不能及

    2024年02月08日
    浏览(60)
  • 51单片机流水灯三种实现方法

    流水灯可以用三种方法实现 一.通过移位函数  _crol_()  和  _cror_() 二.位移实现流水灯 三.数组流水灯实现 首先说一下流水灯的原理 让0从左往右位移或者从右往左位移 从而实现流水灯依次点亮 电路图如下,使用软件是project 使用左移函数代码如下  ///运行结果是LED灯从上到

    2023年04月09日
    浏览(55)
  • 【51单片机】按键操作(单个灯闪烁&&流水灯)

    🎊专栏【51单片机】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【如愿】 大一同学小吉,欢迎并且感谢大家指出我的问题🥰 目录 ⭐注意 🍔同一个灯  🏳️‍🌈效果 🏳️‍🌈代码 🏳️‍🌈问题分析 ⭐注意 ⭐P3_1=0,表示按下按键  ⭐为什么while(

    2024年02月01日
    浏览(73)
  • 51单片机通过两个按键控制流水灯方向

    按键一接单片机P3_1,按键2接P3_0 8个流水灯接P2口 以下是代码:

    2024年02月11日
    浏览(48)
  • 基于51单片机的51单片机的LED彩灯霓虹灯控制器(心形流水灯)设计

    基于51单片机的51单片机的LED彩灯霓虹灯控制器(心形流水灯)设计 必看!!视频讲解 基于51单片机的LED彩灯霓虹灯心形流水灯设计 仿真图:proteus8.9以上 程序代码:KEIL4/KEIL5 原理图:AD 设计编号:A0005 结合实际情况,基于51单片机设计一个LED彩灯控制器设计。该系统应满足的功能要

    2024年02月02日
    浏览(50)
  • 【51单片机】:闪灯、流水灯(从左往右)、流水灯(从右往左)、蜂鸣器。

            言归正传,一切都回归本源,从51再来一次,首先就是最简单的点灯大师。         这么些年从51 到  32  再到  arduino  再到  ESP  等等,都是从点灯大师开始的。 于是介绍如下: 闪灯 流水灯(从左往右) 流水灯(从右往左) 蜂鸣器         LED灯的原理:LED是发

    2024年02月11日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包