51单片机快速入门之 LED点阵 结合74hc595 的应用 2024/10/16

51单片机快速入门之 LED点阵 结合74hc595 的应用

74HC595是一种常用的数字电路芯片,具有串行输入并行输出的功能。它主要由两个部分组成:一个8位的移位寄存器和一个8位的存储寄存器。数据通过串行输入管脚(DS)逐位输入,然后通过并行输出管脚(Q0-Q7)并行输出。74HC595还具有一个使能控制管脚(OE),用于控制输出的使能和禁用状态。

以下是74HC595的一些主要特点和功能:

  1. 串行输入并行输出:74HC595可以将串行数据转换为并行数据输出,适用于需要扩展输出端口的应用场合。

  2. 级联功能:通过级联多个74HC595,可以扩展输出端口的数量,从而实现更多的输出功能。

  3. 节省单片机引脚资源:使用74HC595可以减少单片机的引脚使用数量,提高系统的可靠性和稳定性。

  4. 简化电路设计:使用74HC595可以简化电路设计,减少电路中的逻辑门数量和电路复杂度。

  5. 提高数据传输效率:通过串行方式输入数据,然后通过并行方式输出,可以提高数据传输的效率。

取模软件为STC官网下载工具内的

程序代码:

复制代码
#include <STC89C5xRC.H>
sbit dspH =P1^6   ;
sbit mcpH= P1^7   ;
sbit scpH =P1^5   ;
sbit dspL= P1^1    ;
sbit mcpL= P1^0    ;
sbit scpL= P1^2     ;
void delay(unsigned int t);
void pH(unsigned char date);//控制行
void pL(unsigned char dateL);//控制列
void pHPL(unsigned char datH,unsigned char datL);//同时控制行和列


void main()
{
    unsigned char y[]= {0xC3,0xBD,0x7E,0x7E,0x7E,0x7E,0xBD,0xC3,   //0
                        0xE7,0xC7,0xE7,0xE7,0xE7,0xE7,0x81,0x81,      //1
                        0xC1,0xDD,0xF9,0xE3,0xCF,0x9F,0xBF,0x81,        //2
                        0x83,0xFB,0xFB,0x83,0xFB,0xFB,0x83,0xFF,          //3
                        0xFF,0xB7,0xB7,0xB7,0xB7,0x81,0xF7,0xF7,            //4
                        0xFF,0xC3,0xDF,0xC3,0xFB,0xFB,0xC3,0xFF,              //5
                        0xF7,0xEF,0xDF,0xBF,0x83,0xBB,0xBB,0x83,               //6
                        0x83,0xFB,0xFB,0xFB,0xFB,0xFB,0xFB,0xFF,                //7
                        0xC1,0xDD,0xDD,0xC1,0xC1,0xDD,0xDD,0xC1,                 //8
                        0xC1,0xDD,0xDD,0xC1,0xFD,0xFD,0xFD,0xC1                   //9
                       };
    unsigned char x=0,j=0;
    unsigned char datt=0x80;

    while(1) {

        for(; j<8; j++) {
            pHPL(datt,y[x]) ;    //第一行
            delay(1000);
            pHPL(0x00,0XFF);//复位
            datt>>=1;
            x+=1;

        }
        if(j==8) {
            datt=0x80;
            j=0;
        }
        if(x==80) {
            x=0;
        }









    }
}

void pH(unsigned char date)
{
    unsigned char i;
    for(i=0; i<8; i++) {
        mcpH=0;
        dspH=date&0x80;
        mcpH=1;
        date<<=1;


    }
    scpH=0;
    delay(100);
    scpH=1;
}

void pL(unsigned char dateL)
{
    unsigned char i;
    for(i=0; i<8; i++) {
        mcpL=0;
        dspL=dateL&0x80;
        mcpL=1;
        dateL<<=1;


    }
    scpL=0;
    delay(100);
    scpL=1;



}

void pHPL(unsigned char datH,unsigned char datL)
{

    pH(datH);//行
    pL(datL);//列


}



void delay(unsigned int t)
{
    while(t--);

}
相关推荐
Hello_Embed4 小时前
STM32HAL 快速入门(二十):UART 中断改进 —— 环形缓冲区解决数据丢失
笔记·stm32·单片机·学习·嵌入式软件
一起搞IT吧6 小时前
嵌入式ARM SOC开发中文专题分享一:ARM SOC外围资源介绍
arm开发·嵌入式硬件
研华嵌入式6 小时前
如何在高通跃龙QCS6490 Arm架构上使用Windows 11 IoT企业版?
arm开发·windows·嵌入式硬件
矢志不移7927 小时前
裸机开发 时钟配置,EPIT
单片机·嵌入式硬件
清风6666667 小时前
基于STM32的APP遥控视频水泵小车设计
stm32·单片机·mongodb·毕业设计·音视频·课程设计
物随心转10 小时前
RTC驱动原理
嵌入式硬件
BAGAE10 小时前
MODBUS 通信协议详细介绍
linux·嵌入式硬件·物联网·硬件架构·iot·嵌入式实时数据库·rtdbs
风_峰11 小时前
Petalinux相关配置——ZYNQ通过eMMC启动
嵌入式硬件·ubuntu·fpga开发
风_峰11 小时前
【ZYNQ开发篇】Petalinux和电脑端的静态ip地址配置
网络·嵌入式硬件·tcp/ip·ubuntu·fpga开发
月阳羊12 小时前
【硬件-笔试面试题-95】硬件/电子工程师,笔试面试题(知识点:RC电路中的时间常数)
java·经验分享·单片机·嵌入式硬件·面试