当前位置:   article > 正文

蓝桥杯单片机国赛重难点总结_蓝桥杯选择题题库单片机资料总结

蓝桥杯选择题题库单片机资料总结

12届

1.知识点

1.超声波测距 并保存最大与最小值还有平均值 最大最小值可以保存 但是平均值保存不知道如何保存
蚂蚁工厂给出的解决方案是
在RAM外部设定一个超大数组进行保存 然后使用指针进行提取
在这里插入图片描述

在这里插入图片描述

2.STC15系列内存的分配 把数码管,LED,小数点等数组放到外部RAM中,这样就能节省空间
3.不同模式对应不同规定进行采集数据
在这里插入图片描述
4.高位熄灭
5.DA按照不同规定输出不同电压
在这里插入图片描述

6.不同测距模式下对应不同功能
在这里插入图片描述
6.计数连续在三次以上 点亮LED(未实现)
在这里插入图片描述
蚂蚁工厂给出的解决方法是

在这里插入图片描述
用一个数组进行存放近三次保存的数据,如果都满足则将LED6点亮

11届

1.知识点

1.显示界面与设置界面设置两个不同变量,然后通过按键在不同功能下,实现不同界面的切换
2.AD使用光敏电阻判断亮暗,然后实现不同功能。
3.时钟设置(16进制变成十进制)
加按键

if(Seg_Set_Mode == 0)//处于时间参数设置界面
				{
					ucRtc_Hour_Set++;
					//因为是16进制 所以0x09+1会变成0x0a 此时就需要将0x0a进行变化变成0x10
					if(ucRtc_Hour_Set%16 == 0x0a)
						ucRtc_Hour_Set += 6;
					//进行界限判断  界限-1变成0xff因为后面又-6 因此变成0xf9
					if(ucRtc_Hour_Set == 0x24)
						ucRtc_Hour_Set = 0x23;//直接进行卡死 不再减了
				}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

减按键

if(Seg_Set_Mode == 0)//处于时间参数设置界面
				{
					ucRtc_Hour_Set--;
					//因为是16进制 所以0x10-1会变成0x0f 此时就需要将0x0f进行变化变成0x09
					if(ucRtc_Hour_Set%16 == 0x0f)
						ucRtc_Hour_Set -= 6;
					//进行界限判断  界限-1变成0xff因为后面又-6 因此变成0xf9
					if(ucRtc_Hour_Set == 0xf9)
						ucRtc_Hour_Set = 0;//直接进行卡死 不再减了
				}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

4.若判断环境处于“暗”状态,且持续时间超过 3 秒,指示灯 L3 点亮;环境处于“亮”状态,且持续时间超过 3 秒,指示灯 L3 熄灭。 (重点)

if(AD_Voltage < 1.5)
	{
		Liang_An_Flag = 1;//暗
		
		if(An_First_Time == 0)
		{
			ms_Tick_LED_An = ms_Tick;
			An_First_Time = 1;
			Liang_First_Time = 0;
		}
		if((ms_Tick - ms_Tick_LED_An) >= 3000)
			Liang_An_Flag_Over_3_Sec = 1;
	}
	else
	{
		Liang_An_Flag = 0;//亮
		
		if(Liang_First_Time == 0)
		{
			ms_Tick_LED_Liang = ms_Tick;
			Liang_First_Time = 1;
			An_First_Time = 0;
		}
		if((ms_Tick - ms_Tick_LED_Liang) >= 3000)
			Liang_An_Flag_Over_3_Sec = 0;
	}
	
	Led_Display[2] = Liang_An_Flag_Over_3_Sec;
	
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

10届

1.串口中
'\r’是回车,前者使光标到行首,(carriage return)0X0D
'\n’是换行,后者使光标下移一格,(line feed)0x0A

if((Uart_Buf[Uart_Buf_Index-1] == 0x0a)&&(Uart_Buf[Uart_Buf_Index-2] == 0x0d))//拿到的数据帧的倒数后两位为帧尾,表示收到一个数据帧
  • 1

2.串口发送
在这里插入图片描述
输出十进制的数据一定要加(unsigned int)不然会造成发送数据错误
(unsigned char)是用字符进行存储
(unsigned int)是用整型进行存储

3.按键长按与短按(重点)
如何判断长按与短按
4.EEPROM进行数据存储。
5.串口关于\r\n的发送
6.DA输出电压
7.%d %2d %02d几种情况的区别
在这里插入图片描述
%5.2f的意思
%5.2f的意思

9届

1.知识点

1.频率测量
2.高位熄灭
3.回显界面
4.如何用EEPROM存储int与float类型的数据
在这里插入图片描述
重点(还未解决问题)

8届

1.知识点

1.如何用EEPROM存储超过十位的数组(重点)(问题还未解决)
2.LED当每次采集后以0.2s闪烁十次如何自动熄灭
在这里插入图片描述
3.DA按照规定输出电压
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/553010
推荐阅读
相关标签
  

闽ICP备14008679号