4个74HC595级联控制16x16点阵横向滚动带仿真(二)

发布者:心连心意最新更新时间:2024-07-23 来源: cnblogs关键字:74HC595  级联控制  16x16点阵 手机看文章 扫描二维码
随时随地手机看文章

                        cache[1] = temp[0] >> j | temp[1] << (8 - j);

                    }


                    displayBuff[0] =  ROW_NUM[2 * i];        //上8行码值,上为高位

                    displayBuff[1] =  ROW_NUM[2 * i + 1];    //下8行码值,上为高位

                    displayBuff[2] = ~cache[0];                //每一行对应的左8列码值,左为高位

                    displayBuff[3] = ~cache[1];                //每一行对应的右8列码值,左为高位


                    InputTo595(displayBuff, 4);

                    _nop_();

                    OutputFrom595();

                    DelayX10us(5);//显示时间延时,太长会引起闪烁感

                }

            }

        }


        mode = ~mode;    //移位8次后模式反转,下一半汉字第一行码值的地址即将存到基准指针


        if (mode == 0) num++; //mode再次为0时,即屏幕已显示到下一个字

        if (num == wordsCount)

        {

            num = 0;

            moveLeft = ~moveLeft;    //反向滚动

        }

    }


}


/**

 * 将displayBuff数组输入级联的595芯片,最后一个元素先输入,从低位到高位顺序输入

 * @param displayBuff 输入数组地址

 * @param len      要输入的数组元素个数,从数组第一个元素开始计

 */

void InputTo595(uchar *displayBuff, uchar len)

{

    uchar i, j;


    for (j = len; j > 0; j--)

    {

        for (i = 0; i < 8; i++)

        {

            DS_595 = displayBuff[j - 1] & 0x01 ;    //先输入最低位

            displayBuff[j - 1] >>= 1;


            SHCP_595 = 0;

            _nop_();

            SHCP_595 = 1;    //上升沿,输入到移位寄存器

        }


    }

}


void OutputFrom595()    //595输出

{

    STCP_595 = 0;

    _nop_();

    STCP_595 = 1;

    STCP_595 = 0;

}


//延时10us的倍数,误差5us

void DelayX10us(uchar multi)

{

    do

    {

        _nop_(); _nop_(); _nop_(); _nop_();

        _nop_(); _nop_(); _nop_(); _nop_();

    } while (--multi);

}


[1] [2]
关键字:74HC595  级联控制  16x16点阵 引用地址:4个74HC595级联控制16x16点阵横向滚动带仿真(二)

上一篇:8051系列单片机软件精确延时研究(一)
下一篇:4个74HC595级联控制16x16点阵横向滚动带仿真(一)

推荐阅读最新更新时间:2026-03-21 16:16

4个74HC595级联控制16x16点阵横向滚动带仿真(一)
前言:   淘宝买了个51开发板学习用,其16*16点阵屏是4个74HC595级联控制,这种方式方便更改行、列刷新模式,但每显示一行或一列时都有32bit数据串行输入再一起并行输出,速度较慢,容易产生闪烁感。而且配套教程太垃圾,。。太多槽点就不吐槽了,全靠自力更生,新手初学,个中辛苦就不谈了。   教程没有横向滚动的例程,于是自己写了一个,记录一下。也画了个Protues的原理图,供没有这款开发板的朋友研究。   软件环境:Keil uvsion 4, Protues 7.8   本例采用列扫描模式,只实现了向左滚动。需要向右滚动的朋友请自行更改或参见   《4个74HC595级联控制16x16点阵横向滚动带仿真(二)》。 原理
[单片机]
4个<font color='red'>74HC595</font><font color='red'>级联</font><font color='red'>控制</font><font color='red'>16x16</font><font color='red'>点阵</font><font color='red'>横向</font><font color='red'>滚动</font>带仿真(一)
4个74HC595级联控制16x16点阵横向滚动带仿真(二)
废话   续上篇   《4个74HC595级联控制16x16点阵横向滚动带仿真(一)》   将横向滚动的程序分享给QQ群里后,群内的晚秋兄弟提出了另一种思路——采用行扫描、移位方式做滚动,于是熬夜将其实现了一下。仿真程序还是跟前篇一样,不再赘述。 效果预览    /** ********************************************************** ****** Copyright(C), 2010-2016,吐泡泡的虾 ****** ********************************************************** *@T
[单片机]
4个<font color='red'>74HC595</font><font color='red'>级联</font><font color='red'>控制</font><font color='red'>16x16</font><font color='red'>点阵</font><font color='red'>横向</font><font color='red'>滚动</font>带仿真(二)
STM32与16X16点阵屏设计指南:Proteus仿真文件详解
先上文件:https://pan.baidu.com/s/1pB9HZkxn0LEM-tDX2qDNtA 提取码: 4nra 最近单片机课程要做课设,于是本人决定设计一款用STM32F103C8T6驱动的点阵屏,目前方案还在完善,先发一版方案(附简单驱动代码及仿真) 1. 点阵屏 16X16点阵屏需要由四个8X8点阵屏组成,我用的是共阴极,原理如下: COL与ROW分别控制点阵屏的列与行,可以看出,COL置1、ROW置0可以点亮,例如将第一列置1,第一行置0,则左边第一个LED亮。 如果用IO直接控制点阵屏,4个点阵屏需要占用64个引脚,而且驱动电流也不够。因此本文用74HC595移位寄存器控制列,用74HC138
[单片机]
单片机控制4个8X8点阵拼接成的16X16点阵滚动显示汉字
题目要求: 控制16X16大点阵滚动显示:中国加油! 仿真电路图: 仿真效果: 电路关键元件介绍: 74LS138: ================================================================ 引脚说明: A0~A2:地址输入端 STA(E1):选通端 /STB(/E2)、/STC(/E3):选通端(低电平有效) /Y0~/Y7:输出端(低电平有效) VCC:电源正 GND:地 ================================================================ 功能说明: ①当一个选通端(E1)为高电平,另两个选通端
[单片机]
单片机<font color='red'>控制</font>4个8X8<font color='red'>点阵</font>拼接成的<font color='red'>16X16</font>的<font color='red'>点阵</font><font color='red'>滚动</font>显示汉字
51单片机16X16点阵上移C语言程序
前面已经分享了,点阵汇编语言,想信大家大部分用C语言较多了,下面我就将16X16点阵上移C语言程序分享出来,希望能帮到需要的朋友!本人此程序有经过实物测试的。并非随意弄出来的。并且有配视频效果,可以点击查看的视频祥见: http://www.tudou.com/programs/view/D0SCJyO4RBQ/ 下面是原理图,请大家祥细看看,不懂的帖子留言! #include reg52.h #define uchar unsigned char #define uint unsigned int #define LINE P0//定义行线IO口,即74HC154控制端 #define shudu 20//字移动的
[单片机]
51单片机<font color='red'>16X16</font><font color='red'>点阵</font>上移C语言程序
基于梯级联合调度的汛限水位动态控制在红水河梯级的应用
1红水河梯级概述 红水河流域是珠江流域西江水系的上游河段,在珠江流域占据重要地位,梯级流域规划开发10级电站,龙滩是第4级电站,调节库容111.5亿m3,具有年调节性能,装机容量490万kw,龙滩是控制西江洪水的关键工程,是南方电网的骨干电源,具有防洪、发电、航运等综合功能。岩滩是第5级,调节库容10.56亿m3,具有季调节性能,装机容量181万kw,是广西电网的主要调峰电源。龙滩、岩滩在珠江流域防洪、发电、供水、航运等方面发挥了重要作用,两库的运行方式对红水河梯级乃至整个广西电网均有重要影响。 2龙滩、岩滩单库汛限水位动态控制研究历程与成果 2.1岩滩 岩滩水电站正常蓄水位223m,为了减少库区淹没损失,设计汛期娥5月一9月
[嵌入式]
基于梯<font color='red'>级联</font>合调度的汛限水位动态<font color='red'>控制</font>在红水河梯级的应用
基于H桥级联型逆变器PWM控制策略的研究
1 引言   H桥级联型多电平变换器采用多个功率单元串联的方法来实现高压输出,其输出多采用多电平移相式PWM控制方式,以实现较低的输出电压谐波,较小的dv/dt和共模电压及较小的转矩脉动。为实现高压,只需简单的增加单元数即可,该种实现方式的技术难度小。每个功率单元都是分离的直流电源,之间是彼此独立的,对一个单元的控制不会影响其他单元。H桥级联型逆变器与单桥逆变器的实现方式主要区别在于PWM的控制方式上,本文对H桥级联型逆变器的PWM控制方式进行探讨。 2 H桥级联型逆变器结构   每个功率单元都是一个独立的直流电源,其设计方式如下图1所示: 图1 功率单元结构框图   根据上图对功率单元的描述可知,此种实现方式的功
[工业控制]
基于H桥<font color='red'>级联</font>型逆变器PWM<font color='red'>控制</font>策略的研究
IO扩展(74HC595)_单片机_普中
1 介绍 1.1 74HC595芯片简述   74HC595是一个8位串行输入、并行输出的位移缓存器:并行输出为三态输出。在SCK 的上升沿,串行数据由SER输入到内部的8位位移缓存器,并由QA~QH'输出,而并行输出则是在SCK的上升沿将在8位位移缓存器的数据存入到8位并行输出缓存器。当串行数据输入端OE的控制信号为低使能时,并行输出端的输出值等于并行输出缓存器所存储的值。 芯片主要功能多用为:扩展端口,减小单片机芯片端口的压力。 2 功能要求:通过 74HC595 模块控制 LED 点阵以一行循环滚动显示。 3 硬件设计: 3.1 系统框图 3.2 74HC595原理图和LED8x8原理图 4 软件设
[单片机]
IO扩展(<font color='red'>74HC595</font>)_单片机_普中
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved