51单片机手把手教学(三)—— 数码管

本文章 来自原创专栏《51单片机手把手教学》,讲解如何使用 Keil uVision 构建 51单片机 程序,发布文章并 会持续为已发布文章添加新内容! 每篇文章都经过了精打细磨!

↓↓↓通过下方对话框进入专栏主页↓↓↓
CSDN 请求进入专栏       _ O x

是否进入《51单片机手把手教学》?

       确定


一、数码管简介

又称LED数码管(LED Segment Displays)是由多个发光二极管封装在一起组成一个“8”字型的发光器件。

二、静态数码管 —— 显示数字

1. 原理

常见的数码管如上图,这是一个三位八段数码管。八段指的是数码管上有8个发光体(数字“8”上有7个段 + 右下角一个小数点)

使数码管显示数字的方法就是控制不同的发光体来发光,达到显示不同数字的目的。方法与上节流水灯一致。八段数码管中八个LED发光体有两种接法:共阴极共阳极。所谓共阴极,即8个LED灯的负极接在一起作为数码管的公共端,如下图。

对于共阴极数码管,公共极接地,其余对应极接高电平时,对应发光体被点亮。如上图,数码管将要显示数字7
数码管内部原理图简化如下:

2. 使用方法及代码示例

假设数码管的a,b,c,d,e,f,g,dp分别接到了P0.0, P0.1, P0.2, P0.3, P0.4, P0.5, P0.6, P0.7则代码如下

(1)方法一:

以数字 "7"为例:

#include "reg52.h"

sbit smg_a = P0^0;
sbit smg_b = P0^1;
sbit smg_c = P0^2;
sbit smg_d = P0^3;
sbit smg_e = P0^4;
sbit smg_f = P0^5;
sbit smg_g = P0^6;
sbit smg_dp = P0^7;

void main(){
   
	smg_a = 1;		// 点亮a段
	smg_b = 1;		// 点亮b段
	smg_c = 1;		// 点亮c段
	smg_d = 0;		// 如下,其余全熄灭
	smg_e = 0;
	smg_f = 0;
	smg_g = 0;
	smg_dp = 0;
	while(1);
}

或者(仍以数字 "7"为例:)

#include "reg52.h"

sbit smg_a = P0^0;
sbit smg_b = P0^1;
sbit smg_c = P0^2;
sbit smg_d 
  • 8
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Augtons正(单片机)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值