基于PRECHIN普中51-实验板学习—静态数码管相关学习(3)

目录

概要

数码管显示方式

数码管码表

基础练习

进阶练习


概要

学习静态数码管的显示原理,以及如何让数码管选择数字

数码管显示方式

  • 共阴显示        /*    低电平输出点亮----动态数码管使用*/
  • 共阳显示       /*     高电平输出点亮----静态数码管使用*/

显示原理:

               a到dp   可以通过设置16进制的八位数值来使对应字母点亮从而形成各种参数,

例如:显示数字零   ~0x3f(静态数码管显示,低电平位点亮)

DPHGFEDCBA段码
共阳1100000000xC0
共阴0011111110x3f

dp为右下角的点。  a~dp  由低位到高位

数码管码表

  • 共阴数码管码表
0x3f0x060x5b0x4f0x660x6d
012345
0x7d0x070x7f0x6f0x770x7c
6789AB
0x390x5e0x790x710x00
CDEF无显示
  • 共阳数码管码表
0xc00xf90xa40xb00x990x92
012345
0x820xf80x800x900x880x83
6789AB
0xc60xa10x860x8e0xff
CDEF无显示

基础练习

实现在静态数码管显示一个数字‘0’

代码实现:

        

#include "reg52.h"

#define led P0

typedef unsigned char u8;

/*共阴极数码管显示数字
		code定义编码时,直接分配到程序空间中*/
u8 code c[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
				0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};


void main()
{
	led = ~c[0];	//静态数码管显示字符0,因为静态数码管是低电平亮,g和点亮,所以要取反让其他位置亮,则出现数字零
	while(1)
	{

	};

}


进阶练习

使用静态数码管,显示数字‘0-9’循环,间隔1s

代码实现:

#include "reg52.h"

#define led P0

typedef unsigned char u8;
typedef unsigned int u16;
/*共阴极数码管显示数字
		code定义编码时,直接分配到程序空间中*/
u8 code c[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
				0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

/*	延时函数*/
void Delay_10us(u16 ten_us)
{
	while(ten_us--);
}


/*	循环显示数字*/
void show_()
{		
		u16 i;
		for(i=0;i<10;i++)
		{	
				led = ~c[i];				//共阴极取反显示数字
				Delay_10us(100000);
		}
}

void main()
{
		while(1)
		{
			show_();
		}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值