直接上图:

这款LED显示是比较常见的,tao包和并夕夕上都有的卖的,价格便宜。他有5个引脚,两个电源(Vcc和GND),剩下来3个引脚接单片机。此款为共阳数码管。

3个接单片机引脚的分别是:DO、RCK、SCK。

DO:串行数据输入引脚,也就是说你想显示的数据只从这一根线上走,其他两根线是作控制使用。数据是8位的。

RCK:存储寄存器时钟输入引脚。上升沿有用(程序中赋值给单片机引脚为1时模拟一个上升沿),数据从移位寄存器转入到存储寄存器。

SCK:移位寄存器时钟引脚。上升沿时,移位寄存器中的bit数据整体后移,并接受新的数据。

注意:共阳数码管如果要点亮,对应的74HC595输出引脚需要给0。

程序如下:

#include<reg51.h>
unsigned char code LED_0F[ ] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,
                               0x90,0x8C,0xBF,0xC6,0xA1,0x86,0xFF,0xbf};//共阳数码管码表

unsigned char code  smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
                                0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示0~F的值

// 函数原形定义
#define uchar unsigned char
#define uint unsigned int
//能够使用unsigned char /unsigned int 尽量使用最原始的变量类型名字

void main (void);                          // 主函数
void LED4_Display (void);            // LED数码管显示
void LED_OUT(uchar X);             // LED数码管单字节串行移位函数

unsigned char code LED_0F[ ];      // LED字模表
/* 端口引脚定义*/
sbit DIO   =   P1^0;                   //串行数据输入
sbit RCLK  =   P1^1;                //时钟脉冲信号――上升沿有效
sbit SCLK  =   P1^2;                //打入信号――――上升沿有效

// 全局变量
unsigned char LED[8];    //用于LED的8位显示缓存

//*****************************************************************************
// 主程序
//
void main (void) 
{
    LED[3]=2;    //最高位
    LED[2]=0;
     LED[1]=1;
     LED[0]=9;   //最低位

while(1)
    {
        LED4_Display ();
    } 
}

// ****************LED数码管显示函数***********************
void LED4_Display (void)
{
    unsigned char code  *led_table;          // 查表指针
    unsigned char i;
    //显示第1位
    led_table = LED_0F + LED[0];
    i = *led_table;

LED_OUT(i);            
    LED_OUT(0x01);    //0x01显示在第一位

RCLK = 0;
    RCLK = 1;
    //显示第2位
    led_table = LED_0F + LED[1];
    i = *led_table;

LED_OUT(i);        
    LED_OUT(0x02);    //0x02显示在第2位

RCLK = 0;
    RCLK = 1;
    //显示第3位
    led_table = LED_0F + LED[2];
    i = *led_table;

LED_OUT(i);            
    LED_OUT(0x04);    //0x04显示在第3位

RCLK = 0;
    RCLK = 1;
    //显示第4位
    led_table = LED_0F + LED[3];
    i = *led_table;

LED_OUT(i);            
    LED_OUT(0x08);    //0x08显示在第4位

RCLK = 0;
    RCLK = 1;
}

// ****************************LED数码管单字节串行移位函数*****************************
void LED_OUT(unsigned char number)
{
    unsigned char i;
    for(i=8;i>=1;i--)
    {
     if (number & 0x80)
          {
               DIO=1;
          } 
          else
          {
              DIO=0;
          }
        number<<=1;
        SCLK = 0;
        SCLK = 1;
    }
}

关于双74HC595芯驱动4段数码管的介绍--51单片机相关推荐

  1. Arduino与Proteus仿真实例-74HC595驱动7段数码管仿真

    74HC595驱动7段数码管仿真 74HCT595 是一个 8 位串行输入/串行或并行输出移位寄存器,带有一个存储寄存器和三态输出.移位寄存器和存储寄存器都有独立的时钟.该器件具有串行输入 (DS) ...

  2. IIC驱动0.96寸OLED屏幕显示(51单片机)

    这篇文章得用到IIC驱动,大家如果不会IIC通信,可以看这篇文章,也是我写的,是有关IIC通信的,有什么不理解的可以在看一下:https://blog.csdn.net/m0_58832575/art ...

  3. 单片机c语言数码管显示5,51单片机数码管显示实验报告(5页)-原创力文档

    51单片机数码管显示实验 实验内容: 编写程序让8只数码管初始显示0,每隔大约1s加1显示(可以用延时函数实现),到数码管显示9后,再从0开始显示,如此循环反复. C语言程序 #include #de ...

  4. 51单片机DS18B20温度传感器及数码管显示温度

    51单片机DS18B20温度传感器及数码管显示温度 大家好,今天给大家带来的代码及原理解释是,在51单片机在接收DS18B20温度传感器数据,并且在数码管上实时显示温度 DS18B20及数码管显示温度 ...

  5. 51单片机数码管滚动显示学号_数协微课 | LED数码管与51单片机应用

    遇见工学,学在工学 停课不停学 数协电子组教学微课 它又来了 让我们开始学起来吧! 本期学习内容 LED数码管的结构与工作原理及相关原理图介绍 51单片机的应用:静态数码管显示.动态数码管显示 LED ...

  6. ST7735-TFT屏幕驱动(整理有stm32/51单片机/arduino等驱动代码)

    ST7735-TFT屏幕驱动 & 整理有stm32/51单片机/arduino等驱动代码 前言 关于ST7735 stm32驱动 引脚接线 代码移植 文件复制 端口修改 显示函数 中文汉字数组 ...

  7. 如何使用keil进行编译并且用proteus进行51单片机仿真实现0~F的数码管字符显示

    文章目录 一.目的: 二.在keil中进行程序编译 三.在proteus上画出电路图 四.将keil中编译的hex文件在proteus电路图中进行仿真运行 一.目的: 使用keil进行编译并且用pro ...

  8. GC9A01-TFT屏幕驱动(整理有stm32/51单片机/arduino等驱动代码)

    GC9A01-TFT屏幕驱动 & 整理有stm32/51单片机/arduino等驱动代码 前言 关于GC9A01 stm32驱动 引脚接线 代码移植 文件复制 端口修改 显示函数 中文汉字数组 ...

  9. STM32F1与STM32CubeIDE编程实例-74HC595驱动4位7段数码管

    74HC595驱动4位7段数码管 1.74HC595介绍 74HCT595 是一个 8 位串行输入/串行或并行输出移位寄存器,带有一个存储寄存器和三态输出.移位寄存器和存储寄存器都有独立的时钟.该器件 ...

最新文章

  1. 如何将传统OA移动化?
  2. SAP Workload Monitor
  3. 前后端分离开发模式下后端质量的保证 —— 单元测试
  4. 10折交叉验证(10-fold Cross Validation)与留一法(Leave-One-Out)、分层采样(Stratification)
  5. org.apache.hadoop 的jar包下载地址
  6. word文档设置页眉页脚的技巧
  7. java“的注脚_百度得到的数据如何写脚注
  8. Pycharm 恢复到默认设置
  9. html5视频播放器 知乎,6款让人赞不绝口的电脑软件,知乎超10W人推荐,建议悄悄收藏...
  10. vue前端项目基于淘宝lib-flexible做手机端适配
  11. 数据对接利用hutool工具类进行xml解析,xml转换成map,然后进行数据入库
  12. [附源码]Python计算机毕业设计SSM基于Internet快递柜管理系统(程序+LW)
  13. 【超图】SuperMap iClient3D 11i for WebGL新产品食用指南(一)
  14. pbcms 文章新增 修改 实现自动百度推送
  15. 武林秘籍之设计模式迷你手册
  16. 技术水平的确很高,正规公司为什么还是不录用这些人(技术水平不高的更不可能)
  17. Python(第一章)版本介绍,环境准备及IDLE使用
  18. Python爬虫:史上最详细的Python爬虫库urllib讲解,绝对经典,值得收藏
  19. 商业分析 —— 有赞零售
  20. Windows入门(一)

热门文章

  1. 关于证书那点事---把一个p7b格式证书转换成cer格式证书。
  2. 创始人“姬十三”说,科学和教育都能让果壳赚到钱
  3. 衡师11月月赛web题目wp
  4. Go程序(Grpc服务)协程数暴涨的原因排查分析
  5. 解决鼠标指针移动时出现停顿卡的原因
  6. 一种绝对安全的跳转单点登陆方法
  7. 视频变漫画软件叫什么?这篇文章来告诉你
  8. 接口_新浪财经期货行情新查询接口API[博]
  9. 同时删除多个 PPT 文档前几页
  10. JAVA程序设计:数组中的最长山脉(LeetCode:845)