51单片机数码管显示

1.原理:

1.我们常用的数码管有两种:共阴极数码管和共阳极数码管。
2.一般数码管有8个段,分别是a,b,c,d,e,f,g,dp(小数点)。
3.我们通过段选和位选来控制数码管的显示,段选来控制要显示的数据,
  而位选是来选择让哪一个数码管显示。
4.动态数码管现实的原理就是:利用位选线不同时选择通断,改变段选数据来实现的。
5.数码管显示,仅靠单片机 IO 口来驱动是不行的,这里就需要增加外部驱动芯片74HC245
  此外,还可以用138译码电路来控制位选。

 2.原理图:(普中A2开发板)

 

 

 3.程序说明:

我们使用4位数码管来动态显示数字2030

 4.源程序:

#include <reg51.h>

sbit LA=P2^2;
sbit LB=P2^3;
sbit LC=P2^4;

unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阴极
/*延时函数*/
void delay(unsigned int i)
{
	while(i--);
}

/*显示函数*/
void show(unsigned int n)
{
	int i;
	for(i=1;i<=4;i++){
	switch(i)
	 {
		case 1:
			LA=0;LB=0;LC=0;P0=table[n%10];break;
		case 2:
			LA=1;LB=0;LC=0;P0=table[n%1000%100/10];break;
		case 3:
			LA=0;LB=1;LC=0;P0=table[n%1000/100];break;
		case 4:
			LA=1;LB=1;LC=0;P0=table[n/1000];break;
	 }
		delay(100);
	}
	i=1;
}
	

void main()
{
	unsigned int d=2030;
	while(1)
	{
	show(d);
	}
}
	

 5.开发板运行结果:

 光线太亮,看不太清,但的确地是数字2030


以上就是51单片机的数码管实验了 

想要了解更多的单片机实验,请查看我的51单片机专栏

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值