记录从零开始学习单片机之路3------数码管部分

/2023年04月25日 11:09:45

c51数组

 c51子函数

数码管段码表

 /静态数码管显示

#include <REGX52.H>

unsigned char NiXieTable[] ={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,
	0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,0x00}; //显示的数字分别对应的P0端口的值

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()
{
	NiXie (2,3);
	while(1)
	{
		
	}
}

 /动态数码管显示

#include <REGX52.H>

unsigned char NiXieTable[] ={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,0x00,}; 
void Delay(unsigned int xms)		
{	
	unsigned char i, j;
	
	while(xms--)
	{
		i = 2;
		j = 239;
		do
		{
			while (--j);
		} while (--i);
	}
}

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];
	Delay(1);	
    P0 = 0x00;	//这两条指令的目的是为了消影
     /*
         消影
         位选 段选  位选 段选  位选
        数据串位的问题
     */

}

void main()
{
	
	while(1)
	{
		NiXie (1,1);
//		Delay(20);
		NiXie (2,2);
//		Delay(20);
		NiXie (3,3);

	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值