单片机学习笔记 —— 8位数码管动态扫描
我们知道,依次只能让一个数码管/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位数码管动态扫描相关推荐
- 数字系统实验—第13周任务(3位数码管动态扫描显示实验含工程与优化)
数字系统实验--第13周任务 任务书 0.简介 1. 实验操作:1周 2. 完成并在线提交文档(100%) 日志(系统功能描述) 报告(目的 设计 实现 总结) 3. 三位数码管数据显示实验在线验收 ...
- 【Proteus仿真】8位数码管动态扫描显示变化数据
[Proteus仿真]8位数码管动态扫描显示变化数据 Proteus仿真 示例代码 /*-----------------------------------------------名称:8位数码管动 ...
- 【蓝桥杯——单片机学习笔记】五.数码管显示(STC15F2K60S2)
一.原理图 二.原理图分析 如上图,U7锁存器控制数码管的段选(即每个数字的7个短横和1个点),U6锁存器控制数码管的位选(即8个数字).具体锁存器的输出端对应数码管的哪个输入端可看上图.控制锁存器的 ...
- 【萌新向】STC8A8K64S4A12开发学习(三)——数码管动态扫描
数码管动态扫描 一.多位一体数码管 开发板上使用的是两个四位一体数码管,并且带有小数点,一个四位一体数码管共有12个引脚,各个位数码管共用一组a,b,c,d,e,f,g,dp引脚,通过另外4个引脚进行 ...
- 瑞萨单片机之定时器中断实现数码管动态扫描(四)
目录 一.实现原理 二.具体实现 三.例子 一.实现原理 数码管的驱动方式很简单,图中的A B C D E F G Dp (8个段 含点)分别代表的数码管的每个段(笔画),需要显示什么就把相应的段点亮 ...
- [蓝桥杯单片机]学习笔记——共阳数码管的静态与动态显示
一.理论部分 共阳数码管引脚可以分为两个部分,一是段码,一个是位码.段码指的是一个数码管的7个段加dp小数点,一共8个,通过P0控制其亮灭使得数码管显示出不同效果.譬如亮afedcg表示的是6形状.位 ...
- 【蓝桥杯—单片机学习笔记(四)】共阳数码管的动态显示
一.要求 在CT107D单片机训练综合平台上,实现数码管的动态显示,在8位数码管中,前面4位显示年份"2022",接着是2个分隔符"--",最后两位是月份,从1 ...
- 【蓝桥杯-单片机学习笔记(六)】矩阵键盘控制数码管显示0~F
一.要求 在CT107D单片机训练平台上,首先将J5处的跳线帽接到1~2引脚,使按键S4~S19组成4*4的矩阵键盘.在扫描按键的过程中,发现有按键触发信号后,待按键松开后,数码管显示相应的数字.按键 ...
- 单片机学习笔记-数码管的显示
单片机学习笔记-数码管的显示 数码管的显示 1.首先我们来看一下开发板的原理图 由管脚分配可知,数码管的末端(也就是LED端),是由74138译码器来控制的. 2.下面是数码管显示的函数 这里我们使用 ...
最新文章
- 【 Verilog HDL 】寄存器数据类型(reg)与线网数据类型(wire,tri)
- 【NOIP2015模拟10.22】矩形
- 使用vm server 虚拟机上安装oracle-rac 共享磁盘错误解决
- ccleaner无法更新_CCleaner正在静默更新关闭自动更新的用户
- js 读取外部的本地json文件
- excel常用公式--数据清洗类
- Linux系统密码忘记教程
- 0.96寸OLED屏幕控制器SSD1306详解
- CTFshow—Misc入门1—23以及41(基础操作+信息附加)
- matlab画心形线
- Terms-level Query之Fuzzy Query
- 计算机发展初期 承载信息的媒体,多媒体习题与答案(1).doc
- 黑客丛林之旅 第十关
- TCP延迟确认机制和SACK
- CentOS 7 从下载到安装
- 惠普测试c语言,HP的分院测试转自HP超话
- 计算机性能过低配色方案,系统之家windows7提示更改配色方案提高性能的方法
- Docker-三剑客之machine、compose、swam集群、visualizer监控、stack部署集群、Portainer可视化
- 【华为2023届校招】集团IT秋招进行中!机会多!专人跟进!欢迎投递!
- RealDWG加载DWG文件
热门文章
- MATLAB嵌套函数
- C#DBHelper_FactoryDB_GetConn
- 现代逻辑在计算机科学与人工智能中的应用,谓词逻辑在人工智能中的应用
- [机缘参悟-22]:鬼谷子-闭藏之术,适时收藏自己的锋芒,在职场、商务、商业活动中保护自己
- zabbix自定义监控项-统计AP在线、离线数量(AC:H3C WX5540H)
- 【python爬虫专项(10)】去哪儿网景点数据采集
- vue 创建项目并添加路由(Vue路由入门教学,图文详解)
- 云迁移实践:VMware虚拟机迁移到OpenStack
- SpringBoot如何打包项目?
- Sentinel流控规则