标题: 求大神!用汇编和C语言实现方向可控的跑马灯! [打印本页]

作者: 张谢呀~    时间: 2018-4-23 19:47
标题: 求大神!用汇编和C语言实现方向可控的跑马灯!
用八个LED发光二极管实现跑马灯(8个灯一次轮流发光,每次只亮一个灯),系统启动后,跑马灯右向流转,按下K1键,则反向流转,再按则再反向。有大神哥哥出手相救吗!!抱拳。

作者: 天凉好个秋1    时间: 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
作者: 5968682    时间: 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();
        }
}
       
       
作者: 阿达阿尔法    时间: 2018-4-27 18:18
天凉好个秋1 发表于 2018-4-25 02:30
ORG 0000H
LJMP MAIN
ORG 0030H

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

作者: 小糖人    时间: 2018-4-27 22:39
阿达阿尔法 发表于 2018-4-27 18:18
JB 00H,LOOP1
MOV R3#250怎么报错啊大神

里面汇编没有LOOP1,应该是笔误。你改成LOOP或者LOOP2试试,我在去看下程序,给你确定一下
作者: 小糖人    时间: 2018-4-27 22:44
阿达阿尔法 发表于 2018-4-27 18:18
JB 00H,LOOP1
MOV R3#250怎么报错啊大神

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




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1