【蓝桥杯——单片机学习笔记】五.数码管显示(STC15F2K60S2)
一.原理图
二.原理图分析
如上图,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)相关推荐
- 【蓝桥杯——单片机学习笔记】十二.LCD1602(STC15F2K60S2)
一.原理图及引脚说明 可由Rb1电位器控制LCD的对比度 编号 引脚名 引脚说明 编号 引脚名 引脚说明 1 VSS 电源地 9 D2 Data I/O 2 VDD 电源正极 10 D3 Data I ...
- 【蓝桥杯—单片机学习笔记(四)】共阳数码管的动态显示
一.要求 在CT107D单片机训练综合平台上,实现数码管的动态显示,在8位数码管中,前面4位显示年份"2022",接着是2个分隔符"--",最后两位是月份,从1 ...
- 【蓝桥杯-单片机学习笔记(六)】矩阵键盘控制数码管显示0~F
一.要求 在CT107D单片机训练平台上,首先将J5处的跳线帽接到1~2引脚,使按键S4~S19组成4*4的矩阵键盘.在扫描按键的过程中,发现有按键触发信号后,待按键松开后,数码管显示相应的数字.按键 ...
- 【蓝桥杯-单片机学习笔记(三)】共阳数码管的静态显示
一.要求 在CT107D单片机综合训练平台上,8个数码管分别单独依次显示0~9的值,然后所有数码管一起同时显示0~F的值,如此往复. 二.数码管 1.七段数码管 七段数码管,其实内部由8个发光二极管构 ...
- [蓝桥杯单片机]学习笔记——共阳数码管的静态与动态显示
一.理论部分 共阳数码管引脚可以分为两个部分,一是段码,一个是位码.段码指的是一个数码管的7个段加dp小数点,一共8个,通过P0控制其亮灭使得数码管显示出不同效果.譬如亮afedcg表示的是6形状.位 ...
- 【蓝桥杯-单片机学习笔记(十七)】24C02原理及其读写操作
一.24C02 24C02是一个2K Bit的串行EEPROM存储器,内部含有256个字节.在24C02里面有一个8字节的页写缓冲器.24C02支持I2C总线协议.I2C是一种双向.两线串行通信接口, ...
- 51单片机学习笔记-2数码管显示
2 数码管显示 [toc] 注:笔记主要参考B站江科大自化协教学视频"51单片机入门教程-2020版 程序全程纯手打 从零开始入门". 注:工程及代码文件放在了本人的Github仓 ...
- 【蓝桥杯-单片机学习笔记(十五)】NE555频率测量
一.要求 在CT107D平台上测量NE555产生方波的频率值并显示在数码管上.频率数据显示用5位数码管,单位是Hz,数码管最左边显示"F".改变滑动变阻器Rb3可以改变频率大小. ...
- 【蓝桥杯-单片机学习笔记(十四)】DS1302
一.DS1302介绍 1.功能介绍 DS1302包括时钟/日历寄存器和31字节(8位)的数据暂存寄存器,数据通信仅通过一条串行输入输出口,实时时钟/日历提供包括秒.分.时.日期.月份和年份信息.闰年可 ...
最新文章
- 高可用架构设计之无状态服务
- Java的知识点31——封装拷贝、封装释放、实现放大器对声音的放大功能
- 概率整形 Peobabilistic Shaping PS
- 统计字符串中的英文字母的个数C++代码实现
- oracle逻辑备份和物理备份,oracle数据库物理备份和逻辑备份区别
- 【Java代码】道格拉斯-普克 Douglas-Peucker 抽稀算法(算法流程图解+使用JDK8方法实现+详细注解源码)
- Pycharm用鼠标滚轮控制字体大小
- 使用自定义RadioButton和ViewPager实现TabHost效果和带滑动的页卡效果。
- Eclipse的Mockito模板
- 页面传值的方法 和JSON与字符串和对象之间的转换
- WPF TextBox 正则验证 大于等于0 小于等于1 的两位小数
- 欧几里德算法+拓展欧几里德算法
- 极限编程 Extreme Programming (中英文对照)图形解释
- 多人操作sqlite3数据库冲突问题解决方法
- Hadoop在master查看live nodes为0解决方案
- 宏碁4752G换CPU和显卡导热硅脂步骤
- wamp mysql_wamp中如何打开mysql
- 如何给PDF文件添加页码
- android ios能否用cocos2d js开发,cocos2d-x支持c++、js、lua开发
- WEB自动化-(RFS)RobotFramework+Selenium框架介绍测试流程详解
热门文章
- 直播系统开发技术细节分享
- 【论文笔记】Segmenting Transparent Object in the Wild with Transformer
- 华为哪些型号的手机有NFC功能?
- PHP 一句话木马 @eval($_POST[‘hack‘]); 语句解析及靶机演示
- 推石磨机器人_您见过机器人豆腐西施吗?七旬老人发明出来了,能推石磨添料揽客...
- 西施果蔬彩色保健豆腐
- python中xlrd模块的使用详解
- Slick2D游戏引擎基础知识和开发环境搭建
- C# 六种方案打印PDF文档
- 关于OSCE 的安装部署视频教程