我们知道,依次只能让一个数码管/led灯亮起来,但是我们可以通过高频动态扫描得到8位数码管同时亮起来,这里介绍如何实现。

一、八位数码管

1、八位数码管原理图

下图为原理图:

段选信号:P0[7…0]
位选信号:P2[2…0]
译码使能:P2.3 (图中已用蓝色框圈出)


2、控制信号
段选信号:一位数码管包含8个二极管,a-g,如图:

8个二极管共阴极,以位选信号作为使能信号
位选信号:位选信号为SEL P2[2…0],如果位选信号为101,结果译码器译码得到0001 0000(单热点编码方式),选择第五位数码管

显示数字:在位选有效时,通过设置段选信号来设置数值,如段选为P0=10111110时,ABCDEFG对应为10111110,此时显示数字6


3、点亮一位数码管
通电:每一位数码管的8个二极管阳极姐P0[7…0],共阴极,P0置1
使能:位选信号有效,3-8译码器使能有效,即P2.3=1
模式:I/O模式设置为推挽输出模式(设置P0M1、P0M0、P2M1和P2M0)


二、扫描频率

  8位数码管不可能同时亮起来,我们需要设置扫描频率,使数码管类似流水灯诸葛亮起,知识此时扫描频率很高,我们可以定义一个空循环,在主函数中设置n值来得到合适的扫描频率。

void Delay(int n)        //延时函数
{while(n--);
}

三、流水灯实现

Init()函数:定义常量 & 设置P0M0 P0M1 P2M0 P2M1 寄存器的值

#define uint unsigned int
#define uchar unsigned char// 定义位选段选信号的十六进制常量
uchar duanxuan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f};  //段选信号
uchar weixuan[]={0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07};  //位选信号void Init()
{P2M0=0xff;                    //ÉèÖÃÍÆÍìÊä³öP2M1=0x00;P0M0=0xff;P0M1=0x00;
}

main()函数:控制动态扫描:

uint i = 0;
void main()
{Init();while(1){for(i=0;i<8;i++){P0=0;P2=weixuan[i];       //位选信号P2[2..0],下一周期扫描下一个数码管P0=duanxuan[i+1];   //段选,设置下一个数码管显示的数值Delay(600);}}
}

描述:主函数中,i值在0-7范围内变化,刚好是8个数字。根每一个循环中,根据每个i值设置位选信号额段选信号,使得在下一扫描周期里下一个数码管被点亮,显示的数值加一。


第三篇单片机学习笔记完结,cheers ! ??

单片机学习笔记 —— 8位数码管动态扫描相关推荐

  1. 数字系统实验—第13周任务(3位数码管动态扫描显示实验含工程与优化)

    数字系统实验--第13周任务 任务书 0.简介 1. 实验操作:1周 2. 完成并在线提交文档(100%) 日志(系统功能描述) 报告(目的 设计 实现 总结) 3. 三位数码管数据显示实验在线验收 ...

  2. 【Proteus仿真】8位数码管动态扫描显示变化数据

    [Proteus仿真]8位数码管动态扫描显示变化数据 Proteus仿真 示例代码 /*-----------------------------------------------名称:8位数码管动 ...

  3. 【蓝桥杯——单片机学习笔记】五.数码管显示(STC15F2K60S2)

    一.原理图 二.原理图分析 如上图,U7锁存器控制数码管的段选(即每个数字的7个短横和1个点),U6锁存器控制数码管的位选(即8个数字).具体锁存器的输出端对应数码管的哪个输入端可看上图.控制锁存器的 ...

  4. 【萌新向】STC8A8K64S4A12开发学习(三)——数码管动态扫描

    数码管动态扫描 一.多位一体数码管 开发板上使用的是两个四位一体数码管,并且带有小数点,一个四位一体数码管共有12个引脚,各个位数码管共用一组a,b,c,d,e,f,g,dp引脚,通过另外4个引脚进行 ...

  5. 瑞萨单片机之定时器中断实现数码管动态扫描(四)

    目录 一.实现原理 二.具体实现 三.例子 一.实现原理 数码管的驱动方式很简单,图中的A B C D E F G Dp (8个段 含点)分别代表的数码管的每个段(笔画),需要显示什么就把相应的段点亮 ...

  6. [蓝桥杯单片机]学习笔记——共阳数码管的静态与动态显示

    一.理论部分 共阳数码管引脚可以分为两个部分,一是段码,一个是位码.段码指的是一个数码管的7个段加dp小数点,一共8个,通过P0控制其亮灭使得数码管显示出不同效果.譬如亮afedcg表示的是6形状.位 ...

  7. 【蓝桥杯—单片机学习笔记(四)】共阳数码管的动态显示

    一.要求 在CT107D单片机训练综合平台上,实现数码管的动态显示,在8位数码管中,前面4位显示年份"2022",接着是2个分隔符"--",最后两位是月份,从1 ...

  8. 【蓝桥杯-单片机学习笔记(六)】矩阵键盘控制数码管显示0~F

    一.要求 在CT107D单片机训练平台上,首先将J5处的跳线帽接到1~2引脚,使按键S4~S19组成4*4的矩阵键盘.在扫描按键的过程中,发现有按键触发信号后,待按键松开后,数码管显示相应的数字.按键 ...

  9. 单片机学习笔记-数码管的显示

    单片机学习笔记-数码管的显示 数码管的显示 1.首先我们来看一下开发板的原理图 由管脚分配可知,数码管的末端(也就是LED端),是由74138译码器来控制的. 2.下面是数码管显示的函数 这里我们使用 ...

最新文章

  1. 【 Verilog HDL 】寄存器数据类型(reg)与线网数据类型(wire,tri)
  2. 【NOIP2015模拟10.22】矩形
  3. 使用vm server 虚拟机上安装oracle-rac 共享磁盘错误解决
  4. ccleaner无法更新_CCleaner正在静默更新关闭自动更新的用户
  5. js 读取外部的本地json文件
  6. excel常用公式--数据清洗类
  7. Linux系统密码忘记教程
  8. 0.96寸OLED屏幕控制器SSD1306详解
  9. CTFshow—Misc入门1—23以及41(基础操作+信息附加)
  10. matlab画心形线
  11. Terms-level Query之Fuzzy Query
  12. 计算机发展初期 承载信息的媒体,多媒体习题与答案(1).doc
  13. 黑客丛林之旅 第十关
  14. TCP延迟确认机制和SACK
  15. CentOS 7 从下载到安装
  16. 惠普测试c语言,HP的分院测试转自HP超话
  17. 计算机性能过低配色方案,系统之家windows7提示更改配色方案提高性能的方法
  18. Docker-三剑客之machine、compose、swam集群、visualizer监控、stack部署集群、Portainer可视化
  19. 【华为2023届校招】集团IT秋招进行中!机会多!专人跟进!欢迎投递!
  20. RealDWG加载DWG文件

热门文章

  1. MATLAB嵌套函数
  2. C#DBHelper_FactoryDB_GetConn
  3. 现代逻辑在计算机科学与人工智能中的应用,谓词逻辑在人工智能中的应用
  4. [机缘参悟-22]:鬼谷子-闭藏之术,适时收藏自己的锋芒,在职场、商务、商业活动中保护自己
  5. zabbix自定义监控项-统计AP在线、离线数量(AC:H3C WX5540H)
  6. 【python爬虫专项(10)】去哪儿网景点数据采集
  7. vue 创建项目并添加路由(Vue路由入门教学,图文详解)
  8. 云迁移实践:VMware虚拟机迁移到OpenStack
  9. SpringBoot如何打包项目?
  10. Sentinel流控规则