什么是蓝桥杯基础 ?display


这是我自己在学习蓝桥杯过程中总结的一些知识,因疫在家,编写一些备赛记录,希望对今后的学习和备战蓝桥的同学能够提供一些帮助吧,一起加油哦。


必须要知道的知识

1.
   void delayms(uint ms)  // 15芯片延时一毫秒软件实现
 {
    uint a;

 	for(;ms>0;ms--)
 	{

	    for(a=845;a>0;a--);
        
 	}
 }
2.
void allinit(void) // 初始化关闭其他模块(led、继电器、蜂咛器、数码管)
{
  P2=0XA0;          // 继电器,蜂咛器
  P0=0X00;        

  P2=0X80;          // 小灯
  P0=0XFF;		    

  P2=0XC0;          // 段选 1~8
  P0=0XFF;

  P2=0XFF;
  P0=0XFF;
}
3.
void keyscan(void )  // 独立按键   从上至下 S7 - S4 (P30 - P33)
{
if(P30==0)             
	{
	delayms(5);
		if(P30==0)
		{
		
		}
		while(!P30);  // 消抖操作
	}

if(P31==0)
	{
	delayms(5);
		if(P31==0)
		{
		
		}
		while(!P31);
	}	
	
if(P32==0)
 {
	delayms(5);
		if(P32==0)
		{
		
		}
		while(!P32);
 }
 
if(P33==0)
 {
	delayms(5);
		if(P33==0)
   	    {
		
		}
		while(!P33);
 }
}
4.
void display16()             // 矩阵按键(需要改变按键跳线帽)  P37 = P44  P36 = P42 
{
/**************************/ // 第1横行读取
	P30=0;                   
	P31=P32=P33=1;           // 从上至下(行) S7 - S4 (P30 - P33)
	P44=P42=P35=P34=1;       // 从左至右(列) P44(P37) P42(P36) P35 P34
	if(P44==0)
	{
		delayms(5);
		if(P44==0)
		{
			while(!P44);     // 消抖
		}
    }
	else if(P42==0)
	{
		delayms(5);
		if(P42==0)
		{
			while(!P42);
		}
	}
	else if(P35==0)
	{
		delayms(5);
		if(P35==0)
		{
			while(!P35);
		}
	}
	else if(P34==0)
	{
		delayms(5);
		if(P34==0)
		{
			while(!P34);
		}
	}
	/**************************/ // 第2横行读取
	P31=0;
	P30=P32=P33=1;
	P44=P42=P35=P34=1;
	if(P44==0)
	{
		delayms(5);
		if(P44==0)
		{
			while(!P44);
		}
    }
	else if(P42==0)
	{
		delayms(5);
		if(P42==0)
		{
			while(!P42);
		}
	}
	else if(P35==0)
	{
		delayms(5);
		if(P35==0)
		{
			while(!P35);
		}
	}
	else if(P34==0)
	{
		delayms(5);
		if(P34==0)
		{
			while(!P34);
		}
	}
	/**************************/ // 第3横行读取
	P32=0;
	P30=P31=P33=1;
	P44=P42=P35=P34=1;
	if(P44==0)
	{
		delayms(5);
		if(P44==0)
		{
			while(!P44);
		}
    }
	else if(P42==0)
	{
		delayms(5);
		if(P42==0)
		{
			while(!P42);
		}
	}
	else if(P35==0)
	{
		delayms(5);
		if(P35==0)
		{
			while(!P35);
		}
	}
	else if(P34==0)
	{
		delayms(5);
		if(P34==0)
		{
			while(!P34);
		}
	}
	/**************************/ // 第4横行读取
	P33=0;
	P30=P31=P32=1;
	P44=P42=P35=P34=1;
	if(P44==0)
	{
		delayms(5);
		if(P44==0)
		{
			while(!P44);
		}
    }
	else if(P42==0)
	{
		delayms(5);
		if(P42==0)
		{
			while(!P42);
		}
	}
	else if(P35==0)
	{
		delayms(5);
		if(P35==0)
		{
			while(!P35);
		}
	}
	else if(P34==0)
	{
		delayms(5);
		if(P34==0)
		{
			while(!P34);
		}
	}
}
5.
uchar tab[]={0xc0,
			 0xf9,0xa4,0xB0,0x99,0x92,0x82,0xf8,0x80,0x90,
			 0xbf,0x7f,0xff}; // - . 

void display(uchar channel,uchar number)		// 位选 段选 		
{
	P2=0XC0;                                    // 段选
	P0=0X01<<channel;
	
	P2=0XFF;                                    // 段选
	P0=tab[number];
	delayms(1);
}


display(7,1);  // 使得数码管  从左数第七个  显示1

有什么问题欢迎给我留言哦

hexo博客:https:www.ho-brother.ltd
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值