51单片机(4)—数码管

1.数码管介绍

LED数码管:数码管是一种简单,价格便宜的显示器,是由多个发光二极管封装在一起组成“8”字型的器件

 2.数码管引脚定义:

(1)单位

公共端:阳极接高电频,阴极接低电频能发光

 

 

3.练习:编写代码

       单个数码管显示数字

#include <REGX52.H>

void main()
{
	P2_4=1;
	P2_3=0;
	P2_2=1;
	P0=0x7D;
	while(1)
	{

	}
}

由上图,点亮第三位的数码管,为LED6接口,对应138译码器中的横杠Y5,所以需要根据8421转换一下变成101,即4+1=5,接通横杠Y5,再传到对应的数码管引脚上。

(1)数码管的A~G段和小数点依次点亮

(2)数码管依次显示0~9

(3)重复(1)步骤反复循环

#include <REGX52.H>
unsigned char SMGNoDot_CA[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x99};

void Deplay(unsigned int t)
{
	while(t--);
}

//移位操作
// 0xff << 2, 原来:1111 1111 ,--->左移两位-->1111 1100 
void DisPlaySMG()
{
	char i;
	for(i=1; i<=8; i++)
	{
		P1=0xff <<i;
		Deplay(4000);  //让每个字段依次显示
	}
	for(i=0;i<10;i++)
	{
		P1=SMGNoDot_CA[i];
		Deplay(4000);		//依次显示0-9
	}
}

void main()
{
	while(1)
	{
		DisPlaySMG();
		
	}

}

(2)四位一体

 有12个引脚,相较于一位的数码管,多分出来几个单元,它们的公共端单独的引出来(上图的12 9 8 6)未选的端口全部连在一起 A段连在一起 B段连在一起 C段连在一起 D段连在一起

数码管不能在同一时刻显示多个数字,要想达到多个数字的效果需要靠显示频率来制造一种视觉残留的效果(动态数码管显示)。即数码管直接扫描,会占用较多cpu

需要靠延时函数进行消影

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

绝迹刻本

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

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

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

打赏作者

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

抵扣说明:

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

余额充值