第14届蓝桥杯省赛模拟题1程序

该代码实现了一个基于单片机的系统,主要功能包括超声波测距、液晶显示、按键控制以及UART通信。系统使用定时器中断来实现不同时间间隔的任务,如每100ms、200ms、500ms和1s执行不同的操作。超声波测得的距离会与预设阈值进行比较,并在LCD上显示。同时,用户可以通过按键来设定阈值或查看当前距离。UART接口用于发送数据。

题目要求:

 

 代码段:

 main.c:

#include "main.h"

uchar LED_buff=0xff,ULN_buff=0x00,SEG_buff[8];
uchar mode = 0;
uint ult_temp_jl,ult_temp_cs=30;
uchar uart_buff[];
void main()
{
	Sys_Init();
	Timer2_Init();
	Ultrasonic_Timer0Init();
	UartInit();
//	SendString("I am OK\r\n");
	while(1)
	{
		/*****每100ms执行一次*****/
		if(Task_100ms)
		{
			Task_100ms=0;
			Dis_ctrl();
		}
		/*****每200ms执行一次*****/
		if(Task_200ms)
		{
			Task_200ms=0;
			if(ult_temp_jl>ult_temp_cs)
			{
				if((LED_buff&0x04)==0x00)
				{
					Display_Led(2,1);
				}
				else
				{
					Display_Led(2,0);
				}
			}
			else
			{
				Display_Led(2,1);
			}
		}
		/*****每500ms执行一次*****/
		if(Task_500ms)
		{
			Task_500ms=0;
		}
		/*****每1s执行一次*****/
		if(Task_1s)
		{
			Task_1s=0;
			ult_temp_jl=Wave_Recv();
		};
		Key_ctrl();
	}

}
void Key_ctrl()									//KRY
{
	switch(Keynum)//长短按
	{
		case 0x01:
			mode++;mode=mode%2;
			Keynum=Keynum&0x80;
		break;		//短按松开有效
		case 0x02:
			if(mode==0)
			{
				ult_temp_cs=ult_temp_jl;
			}
			Keynum=Keynum&0x80;
		break;
		case 0x03:
			if(mode==1)
			{
				ult_temp_cs=ult_temp_cs+10;
	
### 第十六蓝桥杯单片机模拟题相关资料 #### 资料概述 关于第十六蓝桥杯单片机的相关模拟题目和参考资料,可以从以下几个方面获取并了解其特点: 1. **官方模拟** 官方推出了针对第十六蓝桥杯单片机组模拟。这套模拟涵盖了多个实际应用场景,例如数码管显示界面设计以及温度测量功能实现等问题[^1]。这些问题不仅考察参者的基础编程能力,还测试了他们解决复杂工程问题的能力。 2. **经验分享与技巧总结** 参加过往的经验丰富的选手提供了宝贵的建议和技术指导。例如,位获得第十五广东等奖及全国总决二等奖的博主在其文章中提到如何准备此类事,并愿意通过评论区解答疑问[^2]。这类资源对于理解考试形式、难点分布非常有帮助。 3. **具体练习实例** 备战过程中还可以参考些具体的算法类习题来提升逻辑思维能力和编码水平。以下是几个例子: - 找出 1 到 20 中能够被 3 整除的所有整数。 ```java public class Main { public static void main(String[] args) { for (int i = 1; i <= 20; i++) { if (i % 3 == 0) { System.out.print(i + " "); } } } } ``` - 枚举给定数组中的所有偶数值。 ```java public class Main { public static void main(String[] args) { int[] array = {12, 3, 15, 22, 7, 30}; for (int number : array) { if (number % 2 == 0) { System.out.print(number + " "); } } } } ``` - 解决经典的“水仙花数”问题。 这些基础训练有助于巩固基础知识,同时培养解决问题所需的细致观察力和耐心[^3]。 --- ####
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值