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

前言:  淘宝买了个51开发板学习用,其16*16点阵屏是4个74HC595级联控制,这种方式方便更改行、列刷新模式,但每显示一行或一列时都有32bit数据串行输入再一起并行输出,速度较慢,容易产生闪烁感。而且配套教程太垃圾,。。太多槽点就不吐槽了,全靠自力更生,新手初学,个中辛苦就不谈了。  教程没有横向滚动的例程,于是自己写了一个,记录一下。也画了个Protues的原理图,供没有这款开...
摘要由CSDN通过智能技术生成

前言:

  淘宝买了个51开发板学习用,其16*16点阵屏是4个74HC595级联控制,这种方式方便更改行、列刷新模式,但每显示一行或一列时都有32bit数据串行输入再一起并行输出,速度较慢,容易产生闪烁感。而且配套教程太垃圾,。。太多槽点就不吐槽了,全靠自力更生,新手初学,个中辛苦就不谈了。

  教程没有横向滚动的例程,于是自己写了一个,记录一下。也画了个Protues的原理图,供没有这款开发板的朋友研究。

  软件环境:Keil uvsion 4, Protues 7.8

  本例采用列扫描模式,只实现了向左滚动。需要向右滚动的朋友请自行更改或参见

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


 

原理图:

DSN文件下载地址链接

 

代码:

 

/**
 **********************************************************
 ******     Copyright(C), 2010-2016, 吐泡泡的虾       ******
 **********************************************************

 *@Tittle        :    16x16点阵滚动显示汉字——横向滚动
 *@Version       :    v1.0
 *@Author        :    吐泡泡的虾
 *@Dat           :    2016-08-04 14:23:59
 *@Desctription  :    16x16点阵采用4个74HC595移位寄存器控制,
 *                    4个移位寄存器采用串联方式。
 *                    本例采用列刷新模式。
 *                    取模方式:纵向取模,字节不倒序。
 *                注意:
 *                    由于采用4个595级联方式,输入数据速度太慢,
 *                    导致闪烁感较强。可改用6T或1T模式,改善很多。
 *@History       :
 *
 *
 **********************************************************
 **********************************************************
 */


#include <reg52.h>
#include <intrins.h>


#define uchar unsigned char
#define uint unsigned int


sbit DS_595 = P3 ^ 4;        //P3^4: 595的数据输入管脚
sbit SHCP_595 = P3 ^ 6;        //P3^6: 595的移位寄存器时钟管脚 SCK
sbit STCP_595 = P3 ^ 5;        //P3^5: 595的输出寄存器时钟管脚 RCK
// sbit MR_595 = P2 ^ 3;    //P0^3: 595的输出输出寄存器重置管脚 MR

void InputTo595(uchar *displayBuff, uchar len);
void OutputFrom595();
void Init_IO();
void DelayX10us(uchar multi);

//列扫描模式下的列序号,两两一组。如0x80, 0x00为点亮第一列,0x40, 0x00为第二列
uchar code COL_CODE[] = {
    0x80, 0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00<
  • 6
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值