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点阵横向滚动带仿真(一)

推荐阅读最新更新时间:2024-11-05 20:28

PIC16F72 -74HC595控制程序
PIC16F72控制4个74HC595程序 /*************PIC16F72单片机程序******************************/ /*********************************************************************/ /*****File Function : 74HC595控制程序 *****/ /*****Program Author : ZhengWen(ClimberWin) *****/ /*****MCU : PIC16F72 外部晶振12MHZ *****/ /*****Compile Date
[单片机]
74HC595走马灯演示程序
;================================================ SDATA_595 EQU P1.0 ;串行数据输入 SCLK_595 EQU P1.1 ;移位时钟脉冲 RCK_595 EQU P1.2 ;输出锁存器控制脉冲 ;================================================ ORG 0000H LJMP MAIN ORG 0030H ;================================================ MAIN: MOV SP,#60H MOV R0,#0FEH MAIN1: CALL OUT_595 CALL DE
[单片机]
使用74HC595驱动LED流水灯实验
本次实验系统环境 Matlab 版本: 2021b 系统环境 :Win10专业版 模型与原理图 本次实验的 simulink 模型如图5.2所示,实验现象可以通过改变控制PC6引脚的“constant2”变量实现 LED 流水灯效果,如图5.1所示,本次实验 电路原理 如图5.3所示, STM32 引脚与74HC595的连接方式为PC6- DS, PC7- STCP, PC8- SHCP,采用两片74HC595极联,共用DS,STCP,SHCP引脚,实验所使用的 下载 器为STLINK 2V1版本,自带一个串口。 图5.1 74HC595流水灯实验现象 图5.2 74HC595流水灯驱动模型 图5.3 74HC5
[单片机]
使用<font color='red'>74HC595</font>驱动LED流水灯实验
单片机芯片之——图解74HC595
第一部部分用于快速查阅使用,详细的使用见文章第二部分 引脚图 14脚:DS(SER),串行数据输入引脚 13脚:OE, 输出使能控制脚,它是低电才使能输出,所以接GND 12脚:RCK,存储寄存器时钟输入引脚。上升沿时,数据从移位寄存器转存带存储寄存器。 11脚:SCK,移位寄存器时钟引脚,上升沿时,移位寄存器中的bit 数据整体后移,并接受新的bit(从SER输入)。 10脚:MR,低电平时,清空移位寄存器中已有的bit数据,一般不用,接 高电平即可。 9 脚 :串行数据出口引脚。当移位寄存器中的数据多于8bit时,会把已有的bit“挤出去”,就是从这里出去的。用于595的级联。 Qx:并行输出引脚 使用参数 VCC:
[单片机]
单片机芯片之——图解<font color='red'>74HC595</font>
74hc595驱动串行led显示
串行驱动LED显示 本文引用地址: http://embed.21ic.com/hardware/drivers/201801/50390.html //一个74hc595位移寄存器驱动三极管驱动led位 , //两个74hc595驱动led段,方式位5位x8段x2=10个数码管 //5分频,每次扫描时间位1.25ms //定义特殊符号 #define nul 0xf #define qc 0xc #define qb 0xb #define q_ 0xa #define q__ 0xd #define q___ 0xe #define qp 0x10 #define qe 0x11 #define qj 0x12 #define
[嵌入式]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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