当前位置: 首页 > news >正文

51单片机:数码管

数码管简介

image-20241127175917258点击并拖拽以移动

数码管每段其本质就是个LED灯,只需要控制特定的LED灯亮就能显示数据。普中开发版所使用的是两个并在一起共阴极连接的“4位数码管”,可以同时显示8个数字。数码管的显示可以分成静态显示和动态显示,这里先介绍最简单的静态显示。

image-20241127180727836点击并拖拽以移动编辑

数码管分为共阴极连接和共阳极连接,顾名思义共阴极就是把所有的数码管阴极连接在一起,共阳极就是把数码管所有的阳极连接在一起,之所以这么做是为了节省单片机I/O口。

图(a)是数码管段选位图,以普中51单片机开发版为例,它的数码管采用共阴极(低电平0)连接,所以如果我们想让一个数码管显示数字6,就应当在相应段选位设置为高电平(1),其余设置为低电平(0),如图所示:

image-20241127184928608点击并拖拽以移动编辑

下图是共阴极数码管显示0-F对应的编码(表中省略了dp段0):

image-20241127185200447点击并拖拽以移动编辑

74HC138译码器简介

作用:节省单片机I/O口

image-20241127185807057点击并拖拽以移动编辑

//这里结合两张图片一起介绍
// P2_4 = 1;P2_3 = 1;P2_2 = 1;  控制LED8 
// P2_4 = 1;P2_3 = 1;P2_2 = 0;  控制LED7 
// P2_4 = 1;P2_3 = 0;P2_2 = 1;  控制LED6 
// P2_4 = 1;P2_3 = 0;P2_2 = 0;  控制LED5 
// P2_4 = 0;P2_3 = 1;P2_2 = 1;  控制LED4 
// P2_4 = 0;P2_3 = 1;P2_2 = 0;  控制LED3 
// P2_4 = 0;P2_3 = 0;P2_2 = 1;  控制LED2 
// P2_4 = 0;P2_3 = 0;P2_2 = 0;  控制LED1

点击并拖拽以移动

image-20241127190621212点击并拖拽以移动编辑

到此知识准备结束,现在可以编写第一个程序了。

静态数码管显示

#include<regx52.h>unsigned char Table[] = {0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F}; // 数组,定义数字0~9段选void SMG(unsigned char Location,Number) // 定义函数,参数Location是位选,Number段选控制显示的数字。
{switch(Location) // 位选{case 1 : P2_4 = 1;P2_3 = 1;P2_2 = 1;break;case 2 : P2_4 = 1;P2_3 = 1;P2_2 = 0;break;case 3 : P2_4 = 1;P2_3 = 0;P2_2 = 1;break;case 4 : P2_4 = 1;P2_3 = 0;P2_2 = 0;break;case 5 : P2_4 = 0;P2_3 = 1;P2_2 = 1;break;case 6 : P2_4 = 0;P2_3 = 1;P2_2 = 0;break;case 7 : P2_4 = 0;P2_3 = 0;P2_2 = 1;break;case 8 : P2_4 = 0;P2_3 = 0;P2_2 = 0;break;}P0 = Table[Number]; // 段选
}void main()
{
//	P2_2 = 1;  // 这是我做的小实验,不要过多关注
//	P2_3 = 1;
//	P2_4 = 0;
//	P0 = 0X7D; // 这块板子共阴极数码管,38译码器和SMG都是从下往上数	while(1){SMG(5,6); // 第五位显示数字6}
}

点击并拖拽以移动

实验现象:(Proteus仿真中P0端口要有个上拉电阻,这里没截到)

image-20241127202746210点击并拖拽以移动编辑

动态数码管显示

原理:快速扫描逐个显示,利用人眼的余辉效应显示多个数码管,实际上在一个时刻内只有一个数码管点亮。

#include<regx52.h>unsigned char Table[] = {0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F};void Delay(unsigned int n)  // 延时函数
{unsigned char j;while(n--){for(j = 0; j< 113; j++);}
}void SMG(unsigned char Location,Number)
{switch(Location) // 段选{case 1 : P2_4 = 1;P2_3 = 1;P2_2 = 1;break;case 2 : P2_4 = 1;P2_3 = 1;P2_2 = 0;break;case 3 : P2_4 = 1;P2_3 = 0;P2_2 = 1;break;case 4 : P2_4 = 1;P2_3 = 0;P2_2 = 0;break;case 5 : P2_4 = 0;P2_3 = 1;P2_2 = 1;break;case 6 : P2_4 = 0;P2_3 = 1;P2_2 = 0;break;case 7 : P2_4 = 0;P2_3 = 0;P2_2 = 1;break;case 8 : P2_4 = 0;P2_3 = 0;P2_2 = 0;break;}P0 = Table[Number];			// 位选Delay(1);					// 数码管显示1ms后关闭P0 = 0X00;					// 消影清零,防止上次的数据窜位重影
}
void main()
{while(1){SMG(1,1); // 位选 段选SMG(2,2);SMG(3,3);}
}

点击并拖拽以移动

实验现象:

动画点击并拖拽以移动编辑

http://www.zskr.cn/news/79919.html

相关文章:

  • 江西过碳酸钠生产厂、浙江过碳酸钠生产厂名单精选
  • 江西成膜助剂生产厂、浙江成膜助剂生产厂家精选名单
  • 华为fusion-compute-8.x安装
  • 2025年必备:全国优质租车公司联系电话榜单,包头市租车需要多少钱技术领航,品质之选
  • 「Fire Ball」
  • 102302133陈佳昕作业4
  • 2025年12月哈尔滨艺考培训机构标杆推荐:众艺艺考,播音主持|表演|导演|空乘|舞蹈|个性化教学新标准
  • 雅思培训班怎么选?2025高分上岸攻略+避坑指南
  • 独占锁和共享锁唤醒机制
  • 2025年12月天津金蝶软件代理商最新推荐:天津鹏越软件,金蝶云星空、金蝶云星晨、金蝶云星翰、助力企业高效落地ERP系统与全场景管理升级
  • iOS 知识点 - 一篇文章带你串通「操作系统 内存模型 文件系统」
  • 多业态连锁环境管理系统:AI + 机器人闭环,坪效提升 16%
  • 2025雅思培训班怎么选?这5家高性价比机构帮你高效提分
  • 实用指南:「腾讯云NoSQL」技术之向量数据库篇:自研分布式向量数据库,实现毫秒级时序一致备份的挑战和实践
  • py-lambda-map-list随笔
  • 2025年12月水上乐园设备厂家最新推荐:昊至泉充气水上乐园设备、室内水上乐园设备、户外水上乐园设备、大型水上乐园设备、漂流河水上乐园设备、打造安全创新个性化水上娱乐新标准
  • Qt 文本转语言(QTextToSpeech类)详解 - 实践
  • AWS发布网络扫描指南:构建更安全云环境的守则
  • # 题解#洛谷P2880 Balanced Lineup #ST表#
  • 2025最值得报的雅思封闭班:高性价比/冲高分/打基础三类优选清单
  • church函数与区间算术
  • 最短路径 - Dijkstra(堆优化)中优先队列的懒删除如何理解?
  • 2025年12月注浆工程厂家推荐:安徽林固,道路注浆、空鼓注浆、公路注浆、路基注浆、地基注浆、厂房注浆、地坪注浆、矿山注浆、多场景注浆解决方案服务商
  • 解码生命蓝图,预见健康未来:北京守嘉健康基因检测业务介绍
  • day30-AgentRag应用开发
  • 116.Java深入学习之JVM二
  • 【纯干货分享】计算机毕业设计必看必学(springboot二手车租赁管理专业的系统)原创的定制软件,java、PHP、python、C#小程序、文案全套、毕设程序定制/毕设成品等等.
  • 开放式互联互通的路上,希望畅联云越走越顺
  • 吴恩达深度学习课程四:计算机视觉 第一周:卷积基础知识(二)卷积参数
  • 2025年法式高端家具TOP10榜(东莞深圳广州惠州专向版)