STC89C52单片机 数码管静态显示
数码管显示原理
数码管根据内部连接不同分为共阴极和共阳极。八段数码管内部有8颗LED组成,如果想要显示特定字形只需控制相应的LED亮起,其他LED熄灭即可。
静态与动态显示
静态显示:
LED显示器工作方式有两种:静态显示方式和动态显示方式。静态显示的特点是每个数码管的段选必须接一个9位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。
缺点:使用的IO口比较多。
动态显示
动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余晖和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。
74HC573锁存器的工作原理
芯片文档查询网址: https://www.alldatasheet.com/
上拉电阻的作用
上拉就是将不确定的信号通过一个电阻钳位在高电平,电阻同时起限流作用。下位同理,也是将不确定的信号通过一个电阻钳位在低电平。
当P0口作为输入、输出口时,上电复位后处于开漏模式。P0口内部无上拉电阻,所以作I/0口必须外接10K-4.7K的上拉电阻。
点亮一位数字"1"
#include <reg52.h>
#include <intrins.h>#define uint unsigned int
#define uchar unsigned charsbit DU = P2^6;//数码管段选
sbit WE = P2^7;//数码管段选void main(){ // main函数自身会循环WE = 1; // 打开位选锁存器P0 = 0XFE; // 1111 1110 选通第一位数码管
// P0 = 0X00; // 0000 0000 表示选通所有位数码管WE = 0; // 锁存位选数据DU = 1; // 打开段选锁存器P0 = 0X06; // 0000 0110 显示“1”DU = 0; // 锁存段选数据while(1){// P0 = 0X01; // 当锁存器中的数值被锁定后,无法直接修改数码管的值,需要打开位选锁存器才能进行修改}
}
点亮两位数字"2"
#include <reg52.h>
#include <intrins.h>#define uint unsigned int
#define uchar unsigned charsbit DU = P2^6;//数码管段选
sbit WE = P2^7;//数码管段选void main(){ // main函数自身会循环WE = 1; // 打开位选锁存器P0 = 0XFC; // 1111 1100 选通第一位和第二位数码管
// P0 = 0X00; // 0000 0000 表示选通所有位数码管WE = 0; // 锁存位选数据DU = 1; // 打开段选锁存器P0 = 0X5B; // 0101 1011 显示“2”DU = 0; // 锁存段选数据while(1){// P0 = 0X01; // 当锁存器中的数值被锁定后,无法直接修改数码管的值,需要打开锁存器才能进行修改}
}
点亮三位数字"3"
#include <reg52.h>
#include <intrins.h>#define uint unsigned int
#define uchar unsigned charsbit DU = P2^6;//数码管段选
sbit WE = P2^7;//数码管段选void main(){ // main函数自身会循环WE = 1; // 打开位选锁存器P0 = 0XF8; // 1111 1000 选通第一位、第二位和第三位数码管
// P0 = 0X00; // 0000 0000 表示选通所有位数码管WE = 0; // 锁存位选数据DU = 1; // 打开段选锁存器P0 = 0X4F; // 0100 1111 显示“3”DU = 0; // 锁存段选数据while(1){// P0 = 0X01; // 当锁存器中的数值被锁定后,无法直接修改数码管的值,需要打开锁存器才能进行修改}
}
点亮数码管最后一位数字"8"
#include <reg52.h>
#include <intrins.h>#define uint unsigned int
#define uchar unsigned charsbit DU = P2^6;//数码管段选
sbit WE = P2^7;//数码管段选void main(){ // main函数自身会循环WE = 1; // 打开位选锁存器P0 = 0X7F; // 1111 1000 选通第八位数码管
// P0 = 0X00; // 0000 0000 表示选通所有位数码管WE = 0; // 锁存位选数据DU = 1; // 打开段选锁存器P0 = 0X7F; // 0111 1111 显示“8”DU = 0; // 锁存段选数据while(1){// P0 = 0X01; // 当锁存器中的数值被锁定后,无法直接修改数码管的值,需要打开锁存器才能进行修改}
}
使第三个(从左至右)数码管显示数字 6
#include <reg52.h>
#include <intrins.h>#define uint unsigned int
#define uchar unsigned charsbit DU = P2^6;//数码管段选
sbit WE = P2^7;//数码管段选void main(){ // main函数自身会循环P0 = 0X00; //清除断码WE = 1; // 打开位选锁存器P0 = 0X03; // 0000 0011 选通第3位、第4位、第5位、第6位、第7位、第8位数码管
// P0 = 0X00; // 0000 0000 表示选通所有位数码管WE = 0; // 锁存位选数据DU = 1; // 打开段选锁存器P0 = 0X7D; // 0111 1101 对应的数码管字母 acdefg 显示“6”DU = 0; // 锁存段选数据
}
STC89C52单片机 数码管静态显示相关推荐
- 【STC89C52】数码管静态显示和动态显示
今天我跟大家分享的是数码管静态显示和动态显示实验的学习笔记,希望对你有所帮助!!!如果有什么错误欢迎评论区留言指正!!! 目录 一.原理图分析 二.静态显示 编辑 三.动态显示 一.原理图分析 1) ...
- STC89C52单片机数码管介绍以及代码示例
目录 一,数码管介绍 二,数码管引脚定义 我们首先对单个引脚进行说明: 其次,我们对多个引脚管进行说明: 最后我们来详细说说如何进行位选还有段选 接着是段选 三,数码管段码表 四,数码管驱动方式 五, ...
- 51单片机怎么显示当前时间_51单片机数码管静态显示和动态显示原理及实验
数码管 多位数码管,即是两个或两个以上单个数码管并列集中在一起形成一体的数码管.当多位一体时,它们内部的公共端是独立的,而负责显示什么数字的段线全部是连接在一起的,独立的公共端可以控制多位一体中的哪一 ...
- STC89C52单片机 数码管动态显示
数码管动态显示 静态与动态显示 动态显示 动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效.选亮数码管采用动态扫描显示.所谓动态扫描显示即轮流向各位数码管送出字形码和相 ...
- c语言7段码静态显示 dula,51 数码管静态显示 [李园7舍_404]
对于单片机的学习我一般不按照资料的顺序学习.我是照这个步骤将新知识掌握: 1.学习过程:阅读C语言程序,查看控制变量被赋予的值-->查看跟控制变量对应的相关的电路图-->被控制电路所接收到 ...
- 51单片机之数码管静态显示
在对单片机编程以实现数码管静态显示数字之前,我们先来了解一下数码管的结构以及一些常识,对于数码管,有称八段数码管的,也有称七段数码管的,其实无非就是多在一个小数点h , 如上图所示, 我们就拿带小数 ...
- 小白上路之51单片机(STC89C52)--数码管
目录 数码管介绍 显示器及其接口(本文主要针对LED显示器来介绍) 开发板原理图 数码管是如何显示出字符的 静态数码管 数码管静态显示原理 74HC573锁存器芯片的使用 源程序--静态数码管 动态数 ...
- 单片机——C51实验含Proteus仿真(锁存器,流水灯,继电器,数码管静态显示,蜂鸣器)
文章仅为本人学习记录,如有引用部分会另加说明引用出处 代码部分 #include<reg52.h> #include<intrins.h> #define uint unsig ...
- 基于STC15W4K32S4单片机仿真《74HC595驱动数码管静态显示》
1. 编 程 软 件:keil5版本. 2.仿 真 软 件:Proteus8.12 3.单片机选型:STC15W4K32S4 4.学 习 目 标:1.学习74HC595芯片工作方式 ...
最新文章
- MySQL 数据备份与同步
- 周报速递丨北交所 SaaS 首股将出;央行等印发《金融标准化“十四五”发展规划》
- NgRx Store createSelector 返回的 selector 执行取数逻辑的单步调试
- mysql库与oracle库的区别_开源数据库Oracle与MySQL的SQL语法区别
- python批量命名文件_用python实现批量重命名文件的代码
- 毕设项目 - 基于SSM的音乐网站(含源码+论文)
- nas文件服务器 迁移,换新机器啦,超简单NAS数据迁移方法
- css立体翻页,[原创]纯CSS3打造的3D翻页翻转特效
- 365天深度学习训练营-第P5周:运动鞋识别
- 西南大学网络教育行政管理计算机答案,西南大学网络教育1056计算机基础春考试大作业答案.doc...
- 华为云MVP周峥:气象预报是个技术活,大数据、超算、AI,缺一不可
- 图像极坐标变换的研究
- 用python批量下载网络图片_使用python批量下载图片吗?怎么做?
- 27岁从业软件测试5年的我被无情的辞退了
- cf四大战区合区列表?
- VS 断点不会命中的情况
- 管道程序c语言,怎么创建管道
- 诸葛java_java - 诸葛_子房的个人空间 - OSCHINA - 中文开源技术交流社区
- 清华系ChatGPT发布!唐杰团队打造,专对中文优化,还能把握最新新闻动态
- SpringBoot修改静态资源映射
热门文章
- CHIL-ORACLE-主外键约束(primary key / foreign key)
- F# 4.0于全平台发布
- [转]MVC实用架构设计(三)——EF-Code First(3):使用T4模板生成相似代码
- 一句话评论设计模式六大原则--转
- javascript向表中添加行--浏览器兼容性问题
- 浅析Microsoft .net PetShop程序中的购物车和订单处理模块(Profile技术,异步MSMQ消息)转...
- document.getElementsByTagName()方法的返回值
- Android在Shell环境下运行Linux命令
- 底层经典书籍-编译原理
- 什么是schema?