关于双74HC595芯驱动4段数码管的介绍--51单片机
直接上图:
这款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单片机相关推荐
- Arduino与Proteus仿真实例-74HC595驱动7段数码管仿真
74HC595驱动7段数码管仿真 74HCT595 是一个 8 位串行输入/串行或并行输出移位寄存器,带有一个存储寄存器和三态输出.移位寄存器和存储寄存器都有独立的时钟.该器件具有串行输入 (DS) ...
- IIC驱动0.96寸OLED屏幕显示(51单片机)
这篇文章得用到IIC驱动,大家如果不会IIC通信,可以看这篇文章,也是我写的,是有关IIC通信的,有什么不理解的可以在看一下:https://blog.csdn.net/m0_58832575/art ...
- 单片机c语言数码管显示5,51单片机数码管显示实验报告(5页)-原创力文档
51单片机数码管显示实验 实验内容: 编写程序让8只数码管初始显示0,每隔大约1s加1显示(可以用延时函数实现),到数码管显示9后,再从0开始显示,如此循环反复. C语言程序 #include #de ...
- 51单片机DS18B20温度传感器及数码管显示温度
51单片机DS18B20温度传感器及数码管显示温度 大家好,今天给大家带来的代码及原理解释是,在51单片机在接收DS18B20温度传感器数据,并且在数码管上实时显示温度 DS18B20及数码管显示温度 ...
- 51单片机数码管滚动显示学号_数协微课 | LED数码管与51单片机应用
遇见工学,学在工学 停课不停学 数协电子组教学微课 它又来了 让我们开始学起来吧! 本期学习内容 LED数码管的结构与工作原理及相关原理图介绍 51单片机的应用:静态数码管显示.动态数码管显示 LED ...
- ST7735-TFT屏幕驱动(整理有stm32/51单片机/arduino等驱动代码)
ST7735-TFT屏幕驱动 & 整理有stm32/51单片机/arduino等驱动代码 前言 关于ST7735 stm32驱动 引脚接线 代码移植 文件复制 端口修改 显示函数 中文汉字数组 ...
- 如何使用keil进行编译并且用proteus进行51单片机仿真实现0~F的数码管字符显示
文章目录 一.目的: 二.在keil中进行程序编译 三.在proteus上画出电路图 四.将keil中编译的hex文件在proteus电路图中进行仿真运行 一.目的: 使用keil进行编译并且用pro ...
- GC9A01-TFT屏幕驱动(整理有stm32/51单片机/arduino等驱动代码)
GC9A01-TFT屏幕驱动 & 整理有stm32/51单片机/arduino等驱动代码 前言 关于GC9A01 stm32驱动 引脚接线 代码移植 文件复制 端口修改 显示函数 中文汉字数组 ...
- STM32F1与STM32CubeIDE编程实例-74HC595驱动4位7段数码管
74HC595驱动4位7段数码管 1.74HC595介绍 74HCT595 是一个 8 位串行输入/串行或并行输出移位寄存器,带有一个存储寄存器和三态输出.移位寄存器和存储寄存器都有独立的时钟.该器件 ...
最新文章
- 如何将传统OA移动化?
- SAP Workload Monitor
- 前后端分离开发模式下后端质量的保证 —— 单元测试
- 10折交叉验证(10-fold Cross Validation)与留一法(Leave-One-Out)、分层采样(Stratification)
- org.apache.hadoop 的jar包下载地址
- word文档设置页眉页脚的技巧
- java“的注脚_百度得到的数据如何写脚注
- Pycharm 恢复到默认设置
- html5视频播放器 知乎,6款让人赞不绝口的电脑软件,知乎超10W人推荐,建议悄悄收藏...
- vue前端项目基于淘宝lib-flexible做手机端适配
- 数据对接利用hutool工具类进行xml解析,xml转换成map,然后进行数据入库
- [附源码]Python计算机毕业设计SSM基于Internet快递柜管理系统(程序+LW)
- 【超图】SuperMap iClient3D 11i for WebGL新产品食用指南(一)
- pbcms 文章新增 修改 实现自动百度推送
- 武林秘籍之设计模式迷你手册
- 技术水平的确很高,正规公司为什么还是不录用这些人(技术水平不高的更不可能)
- Python(第一章)版本介绍,环境准备及IDLE使用
- Python爬虫:史上最详细的Python爬虫库urllib讲解,绝对经典,值得收藏
- 商业分析 —— 有赞零售
- Windows入门(一)