一.原理图

二.原理图分析

如上图,U7锁存器控制数码管的段选(即每个数字的7个短横和1个点),U6锁存器控制数码管的位选(即8个数字)。具体锁存器的输出端对应数码管的哪个输入端可看上图。控制锁存器的原理与之前相同。当段选输入为低电平时,对应数字的段亮(此数码管为共阳极)。当位选输入为高电平时,对应数字亮。

控制逻辑:若想使第一个数字为零。
(1).令P2.7、P2.6、P2.5为1、1、1,使能段选锁存器。然后令P0为0xc0,即段选输出为0.失能段选锁存器。
(2).令P2.7、P2.6、P2.5为1、1、0,使能位选锁存器。然后令P0为0x01,即打开第一个数码管.失能位选锁存器。

三.代码

//数码管动态扫描显示01234567
#include "stc15.h"//共阴极数码管段选码,需要取反
unsigned char code smgduan[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
//数码管位选码
unsigned char code smgwei[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};void Timer0Init(void)       //1毫秒@11.0592MHz
{AUXR |= 0x80;     //定时器时钟1T模式TMOD &= 0xF0;       //设置定时器模式,16位自动重装载TL0 = 0xCD;       //设置定时初值TH0 = 0xD4;        //设置定时初值TF0 = 0;       //清除TF0标志TR0 = 1;      //定时器0开始计时
}void main()
{Timer0Init();EA=1;    //打开总中断ET0=1;  //打开定时器0中断while (1);                      //loop
}//定时器0中断
void Time0_Int() interrupt 1 using 1
{static unsigned char i;static unsigned char smg_count;smg_count++;if (smg_count == 2)  //2ms               {       smg_count=0;//消隐,每次显示前先清除所有数字显示P2=(P2&0x1f)|0xc0;P0=0x00;P2&=0x1f;//段选P2=(P2&0x1f)|0xe0;P0=~smgduan[i];P2&=0x1f;//位选P2=(P2&0x1f)|0xc0;P0=smgwei[i];P2&=0x1f;i++;if(i==8)i=0;}
}

Tips:
1.注意此数码管为共阳极。
2.要注意消影,防止数码管有残影导致显示不清楚。

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

  1. 【蓝桥杯——单片机学习笔记】十二.LCD1602(STC15F2K60S2)

    一.原理图及引脚说明 可由Rb1电位器控制LCD的对比度 编号 引脚名 引脚说明 编号 引脚名 引脚说明 1 VSS 电源地 9 D2 Data I/O 2 VDD 电源正极 10 D3 Data I ...

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

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

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

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

  4. 【蓝桥杯-单片机学习笔记(三)】共阳数码管的静态显示

    一.要求 在CT107D单片机综合训练平台上,8个数码管分别单独依次显示0~9的值,然后所有数码管一起同时显示0~F的值,如此往复. 二.数码管 1.七段数码管 七段数码管,其实内部由8个发光二极管构 ...

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

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

  6. 【蓝桥杯-单片机学习笔记(十七)】24C02原理及其读写操作

    一.24C02 24C02是一个2K Bit的串行EEPROM存储器,内部含有256个字节.在24C02里面有一个8字节的页写缓冲器.24C02支持I2C总线协议.I2C是一种双向.两线串行通信接口, ...

  7. 51单片机学习笔记-2数码管显示

    2 数码管显示 [toc] 注:笔记主要参考B站江科大自化协教学视频"51单片机入门教程-2020版 程序全程纯手打 从零开始入门". 注:工程及代码文件放在了本人的Github仓 ...

  8. 【蓝桥杯-单片机学习笔记(十五)】NE555频率测量

    一.要求 在CT107D平台上测量NE555产生方波的频率值并显示在数码管上.频率数据显示用5位数码管,单位是Hz,数码管最左边显示"F".改变滑动变阻器Rb3可以改变频率大小. ...

  9. 【蓝桥杯-单片机学习笔记(十四)】DS1302

    一.DS1302介绍 1.功能介绍 DS1302包括时钟/日历寄存器和31字节(8位)的数据暂存寄存器,数据通信仅通过一条串行输入输出口,实时时钟/日历提供包括秒.分.时.日期.月份和年份信息.闰年可 ...

最新文章

  1. 高可用架构设计之无状态服务
  2. Java的知识点31——封装拷贝、封装释放、实现放大器对声音的放大功能
  3. 概率整形 Peobabilistic Shaping PS
  4. 统计字符串中的英文字母的个数C++代码实现
  5. oracle逻辑备份和物理备份,oracle数据库物理备份和逻辑备份区别
  6. 【Java代码】道格拉斯-普克 Douglas-Peucker 抽稀算法(算法流程图解+使用JDK8方法实现+详细注解源码)
  7. Pycharm用鼠标滚轮控制字体大小
  8. 使用自定义RadioButton和ViewPager实现TabHost效果和带滑动的页卡效果。
  9. Eclipse的Mockito模板
  10. 页面传值的方法 和JSON与字符串和对象之间的转换
  11. WPF TextBox 正则验证 大于等于0 小于等于1 的两位小数
  12. 欧几里德算法+拓展欧几里德算法
  13. 极限编程 Extreme Programming (中英文对照)图形解释
  14. 多人操作sqlite3数据库冲突问题解决方法
  15. Hadoop在master查看live nodes为0解决方案
  16. 宏碁4752G换CPU和显卡导热硅脂步骤
  17. wamp mysql_wamp中如何打开mysql
  18. 如何给PDF文件添加页码
  19. android ios能否用cocos2d js开发,cocos2d-x支持c++、js、lua开发
  20. WEB自动化-(RFS)RobotFramework+Selenium框架介绍测试流程详解

热门文章

  1. 直播系统开发技术细节分享
  2. 【论文笔记】Segmenting Transparent Object in the Wild with Transformer
  3. 华为哪些型号的手机有NFC功能?
  4. PHP 一句话木马 @eval($_POST[‘hack‘]); 语句解析及靶机演示
  5. 推石磨机器人_您见过机器人豆腐西施吗?七旬老人发明出来了,能推石磨添料揽客...
  6. 西施果蔬彩色保健豆腐
  7. python中xlrd模块的使用详解
  8. Slick2D游戏引擎基础知识和开发环境搭建
  9. C# 六种方案打印PDF文档
  10. 关于OSCE 的安装部署视频教程