树莓派滚动显示

使用实验板实现lcd(或者七段数码管)的滚动显示,基本要求:编程控制Lcd(或者七段数码管)能滚动显示程序 中自定义的字符串,并且能够用按钮停止/开始滚动

设计电路:

实物连接:

代码:

#include <wiringPi.h>
#include <stdio.h>
#include <stdlib.h>

#define DIGIT1 9
#define DIGIT2 13
#define DIGIT3 12
#define DIGIT4 8
#define BTN0 10
#define BTN1 11

#define true 1

char loop[4][8] =   //the loop-running bar in the left windows
    {
        {1,1,1,1,0,0,1,0},//L
        {0,0,0,1,0,0,1,0},//O
        {1,0,0,1,0,0,1,0},//V
        {0,1,1,1,0,0,0,0}//E
    };

void main()
{
    int pin;
    //int m = 0, n = 0;
    //int flag = 1;
    int chip = 0;
    int chip0,chip1,chip2,chip3;
    int run = 0;
    unsigned int time0 = 0, time1 = 0;

    if (wiringPiSetup () == -1) //test the install status of wiringPi
    {
        exit (1) ;
    }

    for (pin = 0 ; pin < 8 ; ++pin)
    {
        pinMode (pin, OUTPUT) ;
        digitalWrite(pin, HIGH);
   }

    pinMode(DIGIT1, OUTPUT);
    pinMode(DIGIT2, OUTPUT);
    pinMode(DIGIT3, OUTPUT);
    pinMode(DIGIT4, OUTPUT);
   // pinMode(BTN0, INPUT); //The start button
    pinMode(BTN1, INPUT); //The stop/stop button

    while (true)
    {
        time1 = millis();

        if (digitalRead(BTN1) && run == 0)
        {
            puts("Start!");
            run = 1;    //change the running state
           // m = 0;
            //n = 0;
            chip = 0;

            time0 = millis();
        }
        else if (digitalRead(BTN0) && run == 1)
        {
            puts("Stop!");
            run = 0;
       // chip = m =n = 0;
        }

        if (time1 - time0 >= 300 && run == 1)
        {
            time0 = time1;
//            printf("%d\n", n);
            //m = ++m % 10;
            //n = ++n % 10;

            chip = ++chip % 4;
            //printf("%d\n", n);
        }

        for (pin = 0; pin < 8; pin++)
        {
            digitalWrite(pin, loop[chip][pin]);
        }
        switch(chip){
            case 0:
            digitalWrite(DIGIT1,1);
            break;
            case 1:
            digitalWrite(DIGIT2,1);
            break;
            case 2:
            digitalWrite(DIGIT3,1);
            break;
            case 3:
            digitalWrite(DIGIT4,1);
            break;
        }

        delay(180);
        digitalWrite(DIGIT1,0);
        digitalWrite(DIGIT2,0);
        digitalWrite(DIGIT3,0);
        digitalWrite(DIGIT4,0);
        //delay(30);
    }

}
时间: 2024-08-11 04:47:06

树莓派滚动显示的相关文章

利用定时器延时输出和滚动显示

在刚到公司让用Java做一个抽奖系统.要用到滚动显示参与的人员名单,和延时输出的效果.没有接触过,经摸索还是做出来了但是前台的页面布局不好显示效果还是不怎么好的.下面来说明一下我们遇到的题和解决办法. 1.滚动显示: 2.延时输出: 3.js获取回台的list数据: 1.滚动显示 <marquee  behavior="scroll" direction="up" width="310px" height="180px"

页面滚动显示或隐藏元素Headroom.js插件帮助你实现滚动效果

Headroom.js 是什么? Headroom.js 是一个轻量级.高性能的JS小工具(不依赖任何工具库!),它能在页面滚动时做出响应.此页面顶部的导航条就是一个鲜活的案例,当页面向下滚动时,导航条消失,当页面向上滚动时,导航条就出现了. Headroom.js 有什么用? 固定页头(导航条)可以方便用户在各个页面之间切换.但是这也会带来些问题…本文原创博客地址:http://www.cnblogs.com/unofficial官网地址:www.pushself.com) 大屏幕一般都是宽度

【转】重写ScrollView实现两个ScrollView的同步滚动显示

我们首先想到使用ScrollView的类似与setOnScrollChangedListener的方法来实现,当一个ScrollView滚动时,触发该方法进而使另外一个ScrollView滚动.不过很遗憾,谷歌没有提供该方法.通过查询相应的源代码,我们发现该方法的原型 protected void onScrollChanged(int x, int y, int oldx, int oldy) 该方法是protected类型,不能直接调用,于是需要重新实现ScrollView 首先,定一个一个

jquery 页眉单行信息滚动显示

JSP: 以下是控制滚动的样式,将滚动的内容查询出来,放在一个div 或者别的容器里面,我这里使用的是<dt> <style> #newCglist{width:300px;height:14px;line-height:14px;overflow:hidden} #newCglist li{height:14px;padding-left:10px;} </style> 以下是滚动内容展示的容器 <dt class="positionrel"

vc 在edit控件中动态插入数据滚动显示

内存从网上论坛摘抄整理 思路:给控件设置多行属性,设置垂直滚动条,Auto Vscroll设置为true,放入文本后把插入点设置到末尾 pEdit->LineScroll(pEdit->GetLineCount()); 滚动条滚动到最下端 int len  = pEdit->GetWindowTextLength(); pEdit->SetSel(len,-1,true); //定位光标到内容末尾pEdit->ReplaceSel("12121212");

Jquery控制滚动显示欢迎字幕

Jquery控制滚动显示欢迎字幕: 参考代码: <!DOCTYPE html> <html> <head> <title>Colin Marquee Welcome</title> <meta name="description" content=" Colin Marquee Welcome" /> <meta charset="utf-8" /> <me

公告滚动显示插件

公告滚动显示插件(jQuery插件编写) 插件代码: /** * 2014年11月13日 * 公告滚动显示插件 */ (function ($) { $.fn.scrollNews = function (width) { var ulWidth = 0; var currentMarginLeft = 0; var scrollStart = true; //初始化div属性 this.parent().width(width); this.parent().css("overflow&quo

tail实时滚动显示log文件内容

Linux shell中有一个tail命令,常用来显示一个文件的最后n行文档内容 但更多情况下,我们要在服务器端运行程序,并且需要实时监控运行日志,这时候有什么办法实时滚动显示log文件内容? 这里可以利用tail命令加参数f实现,具体用法如下: tail -f ***.log 参数说明-f, --follow[={name|descriptor}]:output appended data as the file grows; -f, --follow, and --follow=descri

滚动显示友情链接

1.原理:利用  overflow: hidden;属性只显示一行,调整scrollTop达到滚动目的 <style type="text/css"> .linkDiv {   width: 870px;   height: 20px;   line-height: 20px;   float: left;   overflow: hidden; } </style> <div class="friendLink">     &l