1,目标

使用51单片机控制8位数码管,分别滚动显示单个数字0~7,程序运行之后,单片机先控制最左边的第一位数码管显示0,其他的熄灭,延时一段时间之后,控制左边第二个数码管显示1,其它熄灭,以此类推,反复循环上述过程。

2,设计方式

使用P0输出段码,P2输出位码,因为单片机的电流不足以点亮数码管,因此,我们可以通过使用由8个NPN型三极管组成的位驱动电路来对数码管进行位驱动和位控制扫描,话不多说,上程序

3,代码如下

#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned intuchar code dis_code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8};//共阳数码管段码表 01234567//0xf8,0x82,0x92,0x99,0xb0,0xa4,0xf9,0xc0  7~0
void  delay(uint t)     //延时子函数
{uchar i;while(t--) for(i=0;i<200;i++);
}void  main()
{   uchar i,j=0x80;//10000000while(1){for(i=0;i<8;i++){j=_crol_(j,1);           //_crol_(j,1)——将j循环左移1位 P0=dis_code[i];            //P0口输出段码P2=j;                 //P2口输出位控码  delay(200); P0=0x00;}}
}

4,仿真图如下

5,小结

由于数码管的余晖和人眼的“视觉暂留”,只要控制好数码管的显示时间并减小延时时间,即可实现8位数码管“同时点亮”的效果。

三、51单片机 使用Proteus仿真实现8位数码管滚动显示(仿真及代码)相关推荐

  1. 51单片机定时器累加计数(000-999)+4位数码管(循环显示)+Proteus仿真

    51单片机定时器累加计数(000-999)+4位数码管(循环显示)+Proteus仿真 说明:为什么采用4位的数码管,因为Proteus里面没有3位的数码管器件可选,也可以采用2+1,或者1+1+1, ...

  2. 基于51单片机定时器计数+74HC595移位寄存器+8位数码管时钟

    基于51单片机+74HC595移位寄存器+8位数码管时钟 Proteus仿真 实例代码 #include "at89x52.h" sbit SHCP =P0^1; // 移位寄存器 ...

  3. 数码管显示1到8c语言,单片机控制八只数码管滚动显示1~8 附PROTEUS软件仿真图

    数码管显示是每一个单片机初学者都必须学的,而单片机驱动数码管的数字循环显示实验,又是单片机基础中的基础,同时也是学好C语言编程的关键,此实验在硬件上可以弄清楚单片机驱动原理和数码管的显示原理,在软件上 ...

  4. 51单片机 玩转按键加减切换+数码管+Proteus仿真

    51单片机 玩转按键加减切换+数码管+Proteus仿真 实例代码 /* 实验说明:实验接线:1,动态数码管模块-->单片机管脚2,独立按键模块-->单片机管脚 K1-->P10K2 ...

  5. 51单片机:proteus仿真1602LCD的显示

    51单片机:proteus仿真1602LCD的显示 这是我自己用proteus仿真学习了1602的中英文显示后自己的一些感悟和经验总结,欢迎讨论交流. 工程文件下载 1602lcd的介绍 1.引脚定义 ...

  6. 《电子DIY》之《单片机实践项目》之(51单片机)proteus中带编码信号的电机的详细讲解及电路图绘制(motor encoder)

    此课程主要讲解如何使用51单片机进行实战应用,分为多次课,每次课都会分别围绕一个课程设计或毕业设计(实践项目)展开.手把手叫你学51单片机."Proteus仿真","电子 ...

  7. 51单片机八位数码管1到F动态滚动显示仿真及程序

    51单片机八位数码管1到F动态滚动显示仿真及程序 动态滚动显示仿真及程序 #include<reg51.h> #define uchar unsigned char #define uin ...

  8. 51单片机IIC 12864 OLED屏幕滚动显示仿真

    51单片机IIC 12864 OLED屏幕滚动显示仿真 程序代码接着前面文章<STC15W408AS单片机IIC驱动0.96寸OLED显示> 这里不再贴出代码了,前面有一篇有实物效果演示, ...

  9. 51单片机:中断实现按键按一下数码管从00加到99循环(C语言)

    51单片机:中断实现按键按一下数码管从00加到99循环(C语言) 题目要求: 在51单片机上通过C语言编写代码,使用中断,按键按一下数码管上面的数字从00开始加1,实现00--99的循环 准备工作: ...

最新文章

  1. DBUtils 笔记
  2. php虚拟内存设置,虚拟内存有什么用
  3. 2016-09-09
  4. 从URI中获取实际的文件path
  5. 深度学习总结:tensorflow和pytorch关于RNN的对比,tf.nn.dynamic_rnn,nn.LSTM
  6. OpenFOAM中slip和noslip介绍(滑移条件无滑移条件)【翻译】
  7. Struts2源码阅读(六)_ActionProxyActionInvocation
  8. 科普文:服务器上如何 Node 多版本共存 #31
  9. toj 4597 字符识别?
  10. 在windows环境中关于 pycharm配置 anaconda 虚拟环境
  11. 大道至简:微众银行区块链全栈技术体系纵览
  12. C语言将字符串转json
  13. Call to your teacher(深度搜索)
  14. DateUtils封装
  15. flash+xml 制作电子相册教程
  16. python ssim代码
  17. 锁定计算机后 360wifi,电脑中360路由器WiFi密码忘记了的四种解决方法
  18. java创建word并设置基本属性,Java 生成word如何将word设置为只读属性
  19. 微信小程序怎么安装使用WeUI组件
  20. Ubuntu 18.04 LTS系统主题美化

热门文章

  1. 外包岗退退退!坚决不能选的三点理由:简历有污点,稳定性极差,福利待遇差!...
  2. 【笔记篇】11仓管系统WCS系统——之《实战供应链》
  3. 求经过两点的直线的表达式(Leetcode.149)
  4. C#控件之OpenFileDialog选择图片文件并在picturebox里面显示
  5. i9x系列是服务器CPU吗,i9-10920X和i9-10940X性能实测 CPU性能并不算十分令人满意
  6. 一头扎进Maven3 (二)
  7. 71页大数据治理运营整体解决方案(附下载)
  8. 英语计算机主板接口有,i/o(计算机接口)_百度百科
  9. Flash(NandFlashNorFlash)基本原理
  10. 2015acm区域赛北京