8路LED彩灯,要求效果(从左到右依次亮,从右到左依次亮,全灭全亮),最好有具体电路图,拜谢!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了8路LED彩灯,要求效果(从左到右依次亮,从右到左依次亮,全灭全亮),最好有具体电路图,拜谢!相关的知识,希望对你有一定的参考价值。

本人基础学的不行,所以希望电路图能够具体,谢谢!

参考技术A 电路狠简单。就不画了。说一下吧。 采用8个共阴二极管。 接单片机P1.0-P1.7
程序如下:
从左到右
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN:MOV SP,#50

MOV A,#80H
MOV P1,A
LCALL DELAY
T1: RR A 从左到右依次亮
LCALL DELAY
LJMP T1
延时一秒程序:
DELAY:MOV R5,#200
D1: MOV R6,#250
D2:DJNZ R6,D2
DJNZ R5,D1
RET
END

如果想从右到左依次亮一开始那改成MOV A,#01H RR A 改成RL A就可以了。别的一样
全灭的话直接赋值 MOV P1,#00H
全亮的话直接赋值MOV P1,#0FFH
纯粹手打。希望采纳。追问

你个能用Proteus7画个电路图看看,因为你说的话我也不知道怎么连

追答

找了个现成的。你把LED灯那极性反过来。然后接+VCC那改成接地就可以了

追问

恩恩,谢谢了啊!

追答

把二极管极性反过来。然后把二极管接+VCC那改成接地就OK了。别的都一样

本回答被提问者采纳

AndroidAndroid开发可以手动进行控制的跑马灯效果,包括从左到右,以及从右到左,

作者:程序员小冰,GitHub主页:https://github.com/QQ986945193
新浪微博:http://weibo.com/mcxiaobing
首先给大家看一下我们今天这个最终实现的效果图:

这个主要是用到的自定义TextView,然后里面开一个线程进行,进行滚动效果。
我这里写了两个自定义TextView,分别是从左到右,以及从右到左。利用滚动
的偏移量,进行设置滚动的位置。然后利用一个变量,进行区分是否是滚动状态。
我这里给大家看一下代码吧,只给大家看一下其中一个自定义View的。

package davidmarqueecontrolproject.qq986945193.davidmarqueecontrolproject;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.widget.TextView;

/**
 * @author :程序员小冰
 * @新浪微博 :http://weibo.com/mcxiaobing
 * @GitHub: https://github.com/QQ986945193
 * @CSDN博客: http://blog.csdn.net/qq_21376985
 * @码云OsChina :http://git.oschina.net/MCXIAOBING
 * <p/>
 * 从左到右 滚动自定义TextView
 */
public class AutoText extends TextView implements Runnable 
    private int currentScrollX;// 当前滚动的位置
    private boolean isStop = false;
    private int textWidth;
    private boolean isMeasure = false;

    public AutoText(Context context) 
        super(context);
        // TODO Auto-generated constructor stub
    

    public AutoText(Context context, AttributeSet attrs) 
        super(context, attrs);
    

    public AutoText(Context context, AttributeSet attrs, int defStyle) 
        super(context, attrs, defStyle);
    

    @Override
    protected void onDraw(Canvas canvas) 
        // TODO Auto-generated method stub
        super.onDraw(canvas);
        if (!isMeasure) // 文字宽度只需获取一次就可以了
            getTextWidth();
            isMeasure = true;
        
    

    /**
     * 获取文字宽度
     */
    private void getTextWidth() 
        Paint paint = this.getPaint();
        String str = this.getText().toString();
        textWidth = (int) paint.measureText(str);
    

    // 重写setText 在setText的时候重新计算text的宽度
    @Override
    public void setText(CharSequence text, BufferType type) 
        // TODO Auto-generated method stub
        super.setText(text, type);
        this.isMeasure = false;
    

    @Override
    public void run() 
        currentScrollX -= 2;// 滚动速度
        scrollTo(currentScrollX, 0);
        if (isStop) 
            return;
        
        if (getScrollX() <= -(this.getWidth())) 
            scrollTo(textWidth, 0);
            currentScrollX = textWidth;
            // return;
        
        postDelayed(this, 5);
    

    // 开始滚动
    public void startScroll() 
        isStop = false;
        this.removeCallbacks(this);
        post(this);
    

    // 停止滚动
    public void stopScroll() 
        isStop = true;
        // textWidth=currentScrollX; //随时停止
    

    // 从头开始滚动
    public void startFor0() 
        currentScrollX = 0;
        startScroll();
    

布局我就不写了,直接引用这个view就行了。然后java类中看一下吧,其实
也是直接调用它的方法。

package davidmarqueecontrolproject.qq986945193.davidmarqueecontrolproject;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;

import davidmarqueecontrolproject.qq986945193.davidmarqueecontrolproject.MarqueeText;
import davidmarqueecontrolproject.qq986945193.davidmarqueecontrolproject.R;
/**
 * @author :程序员小冰
 * @新浪微博 :http://weibo.com/mcxiaobing
 * @GitHub: https://github.com/QQ986945193
 * @CSDN博客: http://blog.csdn.net/qq_21376985
 * @码云OsChina :http://git.oschina.net/MCXIAOBING
 */
public class MainActivity extends Activity 
    private MarqueeText test;
    private AutoText auto_text;

    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        test = (MarqueeText) findViewById(R.id.test);
        auto_text = (AutoText) findViewById(R.id.auto_text);
    

    public void start(View v) 
        test.startScroll();
//      auto_text.startScroll();
    

    public void stop(View v) 
        test.stopScroll();
//      auto_text.stopScroll();
    

    public void startFor0(View v) 
        test.startFor0();
//      auto_text.startFor0();
    


好了。到此结束吧,不懂得请留言或者私信。源代码需要的可以去
(AndroidStudio版)github下载地址:
https://github.com/QQ986945193/DavidMarqueeControlProject

以上是关于8路LED彩灯,要求效果(从左到右依次亮,从右到左依次亮,全灭全亮),最好有具体电路图,拜谢!的主要内容,如果未能解决你的问题,请参考以下文章

verilog HDL 实现十六路彩灯的控制 谢谢大神

AndroidAndroid开发可以手动进行控制的跑马灯效果,包括从左到右,以及从右到左,

vue组件弹框过渡效果,如,点击显示为从左到右滑动,收回隐藏为从右到左滑动

需要从左到右再从右到左改变segue过渡

从左到右和从右到左移动标签

如何将 TextBox 中的书写从右到左更改为从左到右?