蓝桥杯单片机真题实践篇,2024年最新大专生面试阿里P7居然过了

92 阅读4分钟

位选不选择任何数码管(消除影子)->再段选->再位选

或者是

先段选不选中数码管的任何段->再位选->再段选

原来:消影不明显

变成:

同时数码管Display前后显示都用关闭全部数码管,消影效果会更好。

问题2:按键切换模式时不够灵敏

问题3:IO模式下HC138译码器选通问题

经常用到的其实只有4567,其他为了操作方便可以不写,

前后关闭一下译码器会比较好,还可以将选通通道和赋值写在一起,这样比较简洁好看:

问题4 DS1302写入函数的写法:

最后最好还是要加上写操作关闭

问题5 当main函数中的执行的模块化函数过多时

可以将不在while循环里的函数,重新写一个函数放到初始化函数里面。

问题7:一个新的写LED闪烁的写法:

&=表示位与操作,|= 表示位或操作。

  1. if((LED & 0x04) == 0x04):这里是检查LED的取出第3位是否为1,(为1说明L3熄灭)如果为1则执行LED &= ~0x04,将LED的第3位清零,即L3点亮;如果为0则执行LED |= 0x04,将LED的第3位设为1,即L3熄灭。
  2. selecthc138(4, LED):这个函数应该是用来控制LED的显示,以此来控制LED灯的点亮和熄灭。
if(jdq == 0x10 )  //继电器吸合 
{
	count_100++
	if(count100 == 2)  //0.1s
	{
		count100 == 0       
		{
			if((LED & 0x04 == 0x04))
			{
				LED &= ~0x04
			}
			else
			{
				LED |= 0x04
			}
			selecthc138(4,LED)   //点亮LED灯 
		}
	}
 } 

问题8:判断继电器吸合与否

这里就是问题3中选译码器时,可以把数据也传进去函数,然后让数据用一个名称来代替,那么判断继电器吸合与否我就判断这个名称的变量即可

比如:if(jdq == 0x10 )  //判断继电器是否是吸合状态 

           selectHC138(5,jdq) 这就是让继电器吸合

问题9 :计时的一个问题

这次试题有两个计时问题,一个是0.1s L3来回闪烁,一个是5秒,L1亮5s就熄灭停止。

一个是闪烁,一个是亮了一次就停止,等到下一个整点再亮5s又停止。

首先,Delay函数写不出那么长时间,所以必须用定时器,其次,定时器用两个的话太麻烦,

可以只用一个, 这里定时一个单位是50ms。

闪烁的0.1秒就用平时的,一到0.1s就清零,或者是取余。如图:

而5s的可以设置一个F_Time标志表示5s开始,

收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。 img img

如果你需要这些资料,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!