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--);

}
相关推荐
来自晴朗的明天16 分钟前
13、NMOS 电源防反接电路
单片机·嵌入式硬件·硬件工程
17(无规则自律)1 小时前
深入浅出 Linux 内核模块,写一个内核版的 Hello World
linux·arm开发·嵌入式硬件
芯岭技术1 小时前
PY32MD310单片机:高性能、低功耗的32位电机控制微控制器
单片机·嵌入式硬件
wotaifuzao2 小时前
STM32 + FreeRTOS 的订阅通知组件架构
stm32·嵌入式硬件·架构·freertos·事件驱动·嵌入式架构
小龙报2 小时前
【51单片机】深度解析 51 串口 UART:原理、配置、收发实现与工程化应用全总结
c语言·开发语言·c++·stm32·单片机·嵌入式硬件·51单片机
Lester_11019 小时前
STM32 高级定时器PWM互补输出模式--如果没有死区,突然关闭PWM有产生瞬间导通的可能吗
stm32·单片机·嵌入式硬件·嵌入式软件
小李独爱秋11 小时前
“bootmgr is compressed”错误:根源、笔记本与台式机差异化解决方案深度指南
运维·stm32·单片机·嵌入式硬件·文件系统·电脑故障
梁洪飞13 小时前
内核的schedule和SMP多核处理器启动协议
linux·arm开发·嵌入式硬件·arm
进击的小头13 小时前
实战案例:51单片机低功耗场景下的简易滤波实现
c语言·单片机·算法·51单片机
宵时待雨17 小时前
STM32笔记归纳8:时钟
笔记·stm32·单片机·嵌入式硬件