51数码管显示

今天我们来了解51单片机中的数码管,数码管其实在生活中的应用十分广泛,下图中的数码管都是生活中十分常见的

 然后是单片机上的数码管

 可以看到单片机上的数码管是四位一体,共两块,一共八个。了解他的工作原理我们首先从单独的一个入手,

 可以看到数码管分为共阴极和共阳极两种,其工作原理也是类似的,每一个数码管分成八个led

分别用A,B,C,D,E,F,G,DP表示,通过分别控制其状态来达到我们想要实现的结果,例如想要显示0,那就让G,DP不亮,即赋值为0,其余的全亮,即赋值为0,就可以显示0.

而单片机中四位一体的数码管也是同理

 想要实现单独显示就需要进行扫描显示,首先对其共阴(阳)级进行单独赋值,即确定数码管要在哪一位显示,然后在进行单独以为数码管的操作,即确定要显示的内容。

程序代码如下

#include <REGX52.H>
unsigned char NixieTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
void Nixie(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=NixieTable[Number];
}
void main()
{
		while(1)	
		{
				Nixie(2,4);
		}				
}

在NixieTable[]数组内存储的是显示数字0~9需要对P0赋的值,而中间的switch选择结构则是确定在那一位显示。

这个程序实现的就是在第二个数码管显示4.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值