1、采用2片595驱动数码管,需要单片机3路IO口根据数码管动态扫描原理进行显示。
2、数码管型号:0.36 4位共阳。

原理图

点亮一个数码管

定义IO口

sbit DIO  = P1^0; //串行数据口
sbit S_CLK = P1^2;//移位寄存器时钟
sbit R_CLK = P1^1;//输出锁存器时钟

发送数据

 void  main(){//第二个数码管显示0unsigned char i, dat;//i循环次数  dat需要发送的数据dat = 0xc0;//发送列值for(i=0; i<8; i++)//循环8次{S_CLK = 0;//拉低移位寄存器时钟R_CLK = 0;//拉低输出锁存器时钟//先发送高位if(dat & 0x80)//发送1 DIO = 1;else         //发送0DIO = 0;S_CLK = 1;//拉高移位寄存器时钟,数据移位dat <<= 1;//数据左移}dat = 0x02;//发送行值for(i=0; i<8; i++)//循环8次{S_CLK = 0;//拉低移位寄存器时钟R_CLK = 0;//拉低输出锁存器时钟if(dat & 0x80)//发送1DIO = 1;else       //发送0DIO = 0;S_CLK = 1;//拉高移位寄存器时钟,数据移位dat <<= 1;//数据左移}R_CLK = 1;//拉高输出锁存器时钟,并行输出数据while(1);}

点亮8位数码管

#define uchar unsigned charvoid main (void);                 // 主函数
void LED4_Display (void);           // LED显示
void LED_OUT(uchar X);              // LED单字节串行移位函数unsigned char code LED_0F[];     // LED字模表sbit DIO = P1^0;              //串行数据输入
sbit R_CLK  = P1^1;                //输出锁存器时钟——上升沿有效
sbit S_CLK = P1^2;             //移位寄存器时钟————上升沿有效//-----------------------------------------------------------------------------
// 全局变量
uchar LED[8];   //用于LED的8位显示缓存//*****************************************************************************
// 主程序
//
void main (void)
{LED[0]=1;LED[1]=2;LED[2]=3;LED[3]=4;LED[4]=5;LED[5]=6;LED[6]=7;LED[7]=8;while(1){LED4_Display ();}
} void LED4_Display (void)
{unsigned char code *led_table;          // 查表指针uchar i;//显示第1位led_table = LED_0F + LED[0];i = *led_table;LED_OUT(i);            LED_OUT(0x01);      R_CLK = 0;R_CLK = 1;//显示第2位led_table = LED_0F + LED[1];i = *led_table;LED_OUT(i);      LED_OUT(0x02);      R_CLK = 0;R_CLK = 1;//显示第3位led_table = LED_0F + LED[2];i = *led_table;LED_OUT(i);          LED_OUT(0x04);  R_CLK = 0;R_CLK = 1;//显示第4位led_table = LED_0F + LED[3];i = *led_table;LED_OUT(i);          LED_OUT(0x08);      R_CLK = 0;R_CLK = 1;//显示第5位led_table = LED_0F + LED[4];i = *led_table;LED_OUT(i);          LED_OUT(0x10);  R_CLK = 0;R_CLK = 1;//显示第6位led_table = LED_0F + LED[5];i = *led_table;LED_OUT(i);          LED_OUT(0x20);  R_CLK = 0;R_CLK = 1;//显示第7位led_table = LED_0F + LED[6];i = *led_table;LED_OUT(i);          LED_OUT(0x40);  R_CLK = 0;R_CLK = 1;//显示第8位led_table = LED_0F + LED[7];i = *led_table;LED_OUT(i);      LED_OUT(0x80);  R_CLK = 0;R_CLK = 1;
}void LED_OUT(uchar X)
{uchar i;for(i=8;i>=1;i--){if (X&0x80) DIO=1; else DIO=0;X<<=1;S_CLK = 0;S_CLK = 1;}
}unsigned char code LED_0F[] =
{// 0    1    2    3    4    5    6    7    8    9    A    b    C    d    E    F    -0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x8C,0xBF,0xC6,0xA1,0x86,0xFF,0xbf
};

单片机 74HC595 实例相关推荐

  1. 51单片机 74HC595应用实例+Proteus仿真

    51单片机 74HC595应用实例+Proteus仿真 Proteus仿真 实例代码 #include <reg52.h> #include <intrins.h> #defi ...

  2. hc05与单片机连接图_基于proteus的51单片机开发实例(13)-LED指示那个按键被按下

    1. 基于proteus的51单片机开发实例(13)-LED指示那个按键被按下 1.1. 实验目的 本实例将实现两路外部中断的检测和识别,让我们能够更好地理解51单片机的外部中断以及中断优先级的概念. ...

  3. c++程序设计_基于proteus的51单片机开发实例30-模块化程序设计

    1. 基于proteus的51单片机开发实例30-模块化程序设计 1.1. 实验目的 模块化程序设计 不知不觉我们的51单片机开发实例已经进行到第三十篇了,是时候进行一个总结和反思了,总结什么?反思什 ...

  4. c51中断优先级c语言,基于proteus的51单片机开发实例(14)中断嵌套和中断优先级...

    1. 基于proteus的51单片机开发实例(14)中断嵌套和中断优先级 1.1. 实验目的 在前面实例中我们已经学习了51单片机的定时器/计数器中断,外部中断,通过这些实例,知道了中断电路的设计,中 ...

  5. hc05与单片机连接图_基于proteus的51单片机开发实例37-DAC0832

    学习手记 1. 基于proteus的51单片机开发实例37-DAC0832 1.1. 实验目的 之前我们学习了数模转换芯片DAC0808,今天我们继续学习另一种D/A转换芯片DAC0832. 1.2. ...

  6. 无刷直流电机介绍及单片机控制实例

    无刷直流电机介绍及单片机控制实例 前言 基本概念 优势与劣势 使用寿命 基本结构 使用单片机控制实例 电子调速器(ESC) Arduino BLDC电机控制电路图 代码 前言 在机器人的结构中,往往电 ...

  7. 从头开始学51单片机之实例2:用定时中断实现流水灯

    一.仿真环境 Proteus8.9 Keil5 二.Proteus模型搭建 具体过程参考上一篇: 从头开始学51单片机之实例1:用Proteus和Keil搭建流水灯模型_Forster-C的博客-CS ...

  8. 生活中计算机应用的实例,单片机应用(生活中单片机应用实例)

    单片机应用 单片机 完整问题:什么是单片机?它有什么应用?谢谢 好评回答:什么是单片机?单片机有什么用? 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上. ...

  9. 单片机16个灯四种花样c语言,基于Proteus的MSP430单片机仿真实例5-16个花样灯控制...

    一.任务要求 利用MSP430F247单片机的P1和P4端口控制16个发光二极管D1~D16,发光二极管有8种花样显示,显示速度可调,由P2端口的三个按键控制,分别是模式按键.加速按键.减速按键.模式 ...

  10. SpiFlash同步/异步读写单片机裸机实例

    单片机裸机开发中会经常遇到外设速度过慢,长时间读忙等待,但CPU又不能长时间阻塞的问题. 这种问题可以通过实现一个状态机来异步处理. 异步状态机代码结构示例: enum {eIDLE = 0,eSTA ...

最新文章

  1. python websocket异步高并发_Python3.5异步和多个websocket服务器
  2. 详细!快速入门指南!Docker!
  3. R语言数据结构之矩阵
  4. 最新网络工程师考试大纲
  5. 【复习笔记】电力系统基础
  6. java变量名转字符串_JS中将变量转为字符串
  7. Little Alchemy 游戏 - 扒答案。。 Java
  8. atitit。获取表格的字段注释metadata的原理以及AND 字段表格描述文档方案
  9. 嵌入式设备ntp同步时间的一些笔记
  10. AI换脸APP“ZAO”刷屏并一夜爆火,它能红多久?
  11. DB2 数据库密码过期
  12. linux伊甸园论坛,Deepin2014壁纸大赛评审团——不断努力的Linux伊甸园
  13. Python 安装pytz
  14. 计算机组装与系统维护技术,计算机组装与系统维护技术.pdf
  15. 我的回忆和有趣的故事 by李维(台湾)
  16. 测试换发型用啥软件,什么软件可以测试自己适合的发型
  17. 15款android设备上的代码编辑器
  18. 从CVPR 2021的论文看计算机视觉的现状
  19. 如何注册免费的服务器和域名?如何将自己的项目部署到免费的服务器上并生成线上地址?
  20. centos7.2 搭建BugFree

热门文章

  1. 上古卷轴5捏脸php导入,上古卷轴5捏脸预设导入 上古卷轴5捏脸预设怎么导入
  2. 利用持续同调在基于深度学习的分割框架中引入显式的拓扑学约束
  3. 所以,网络工程师能从事什么工作?
  4. Oracle的sqlnet.ora文件配置
  5. csapp bomb lab (《深入理解计算机系统》lab2)
  6. python3+selenium3+ie9初体验
  7. java implode函数_PHP警告:implode():传递的参数无效
  8. 手机wifi显示连接到服务器地址,手机连接路由器wifi上网总是提示正在获取IP地址怎么办...
  9. 人员离职it检查_员工离职的IT流程
  10. luoguP2123 皇后游戏(贪心)