找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3020|回复: 5
打印 上一主题 下一主题
收起左侧

求大神!用汇编和C语言实现方向可控的跑马灯!

[复制链接]
跳转到指定楼层
楼主
ID:314751 发表于 2018-4-23 19:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用八个LED发光二极管实现跑马灯(8个灯一次轮流发光,每次只亮一个灯),系统启动后,跑马灯右向流转,按下K1键,则反向流转,再按则再反向。有大神哥哥出手相救吗!!抱拳。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:315879 发表于 2018-4-25 02:30 | 只看该作者
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV A,#7FH
CLR 00H
LOOP:
JB 00H,LOOP1
MOV P0,A
RR A
LCALL DELAY
LOOP2:
JB P1.0,LOOP
CPL 00H
SJMP LOOP
CPL 00H
SJMP LOOP
DELAY:
MOV R2,#200
DLY:
MOV R3#250
DJNZ R3,$
DJNZ R2,DLY
RET
END

评分

参与人数 1黑币 +70 收起 理由
admin + 70 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:315079 发表于 2018-4-25 10:11 | 只看该作者
c语言的


#include "reg52.h"
#include "intrins.h"

void Delay100ms()                //@11.0592MHz
{
        unsigned char i, j, k;

        _nop_();
        _nop_();
        i = 5;
        j = 52;
        k = 195;
        do
        {
                do
                {
                        while (--k);
                } while (--j);
        } while (--i);
}


void main()
{
        unsigned char i;
        P2=0x80;P0=~0x00;P2=0x00;
        while(1)
        {
                P2=0x80;P0=~(0x01<<i);P2=0x00;   //右移:P2=0x80;P0=~(0x80>>i);P2=0x00;
                i++;
                if(i==8)i=0;
                Delay100ms();
        }
}
       
       
回复

使用道具 举报

地板
ID:317982 发表于 2018-4-27 18:18 | 只看该作者
天凉好个秋1 发表于 2018-4-25 02:30
ORG 0000H
LJMP MAIN
ORG 0030H

JB 00H,LOOP1
MOV R3#250怎么报错啊大神
回复

使用道具 举报

5#
ID:304171 发表于 2018-4-27 22:39 | 只看该作者
阿达阿尔法 发表于 2018-4-27 18:18
JB 00H,LOOP1
MOV R3#250怎么报错啊大神

里面汇编没有LOOP1,应该是笔误。你改成LOOP或者LOOP2试试,我在去看下程序,给你确定一下
回复

使用道具 举报

6#
ID:304171 发表于 2018-4-27 22:44 | 只看该作者
阿达阿尔法 发表于 2018-4-27 18:18
JB 00H,LOOP1
MOV R3#250怎么报错啊大神

你改成LOOP2,  JB00h,意思是00h为高电平就跳转,低电平继续执行,所以应该是跳转LOOP2的循环
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表