第十一届 蓝桥杯 单片机设计与开发项目 省赛

第十一届 蓝桥杯 单片机设计与开发项目 省赛

01 核心框架(多界面显示,界面切换,参数设置)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

bit Seg_Disp_Mode;//0-数据界面 1-参数界面
float Temperature;
unsigned char Temp_Disp[2];
unsigned char Temp_Disp_Ctrol[2] = {30,20};//参数选择一般会用一个数组指针变量index来实现,这个变量需要在参数调整(自加或者自减)时被调用
bit Temperature_Params_Index;//0-max 1-min/* 键盘处理函数 */
void Key_Proc()
{if(Key_Slow_Down) return;Key_Slow_Down = 1;//键盘减速程序Key_Val = Key_Read();//实时读取键码值Key_Down = Key_Val & (Key_Old ^ Key_Val);//捕捉按键下降沿Key_Up = ~Key_Val & (Key_Old ^ Key_Val);//捕捉按键上降沿Key_Old = Key_Val;//辅助扫描变量switch(Key_Down){case 4:Seg_Disp_Mode ^= 1;//Seg_Disp_Mode 是一个位(bit)型变量。在一些C编译器中,位型变量可能被视为右值,因此不能直接进行赋值操作。if(Seg_Disp_Mode == 1){//每次到参数界面都默认选择温度下限//参数设置Temperature_Params_Index = 1;Temp_Disp[0] = Temp_Disp_Ctrol[0];Temp_Disp[1] = Temp_Disp_Ctrol[1];}if(Seg_Disp_Mode == 0){
//				if(Temp_Disp_Ctrol[0]>Temp_Disp_Ctrol[1])//这里又写错啦!这里应该拿着刚刚还没保存的Temp_Disp数组中的数据来比较而不是ctrol(保存之后的数据)来比较if(Temp_Disp[0]>=Temp_Disp[1]){//切换到数据页面进行参数保存Temp_Disp_Ctrol[0] = Temp_Disp[0];Temp_Disp_Ctrol[1] = Temp_Disp[1];}}break;case 5:if(Seg_Disp_Mode == 1){Temperature_Params_Index ^= 1;}break;case 6://注意只有处在参数界面才可以修改//注意这里修改的是Temp_Disp数组而不是Temp_Disp_Ctrol数组,此时仅进行参数设置而没有保存,待切换到数据页面自动保存if(Seg_Disp_Mode == 1){if(++Temp_Disp[Temperature_Params_Index]==100) Temp_Disp[Temperature_Params_Index] = 99;//上线卡死在99}break;case 7:if(Seg_Disp_Mode == 1){if(--Temp_Disp[Temperature_Params_Index]==255) Temp_Disp[Temperature_Params_Index] = 0;//下线卡死在0}break;}
}/* 信息处理函数 */
void Seg_Proc()
{if(Seg_Slow_Down) return;Seg_Slow_Down = 1;//数码管减速程序Temperature = rd_temperature();if(Seg_Disp_Mode == 0){Seg_Buf[0] = 11;Seg_Buf[3] = 10;Seg_Buf[4] = 10;Seg_Buf[6] = (unsigned char)(Temperature)/10%10;Seg_Buf[7] = (unsigned char)(Temperature)%10;}else{Seg_Buf[0] = 12;Seg_Buf[3] = Temp_Disp[0]/10%10;Seg_Buf[4] = Temp_Disp[0]%10;Seg_Buf[6] = Temp_Disp[1]/10%10;Seg_Buf[7] = Temp_Disp[1]%10;}}

02 其他输出功能(LED和DAC)

在这里插入图片描述

/* 其他显示函数 */
void Led_Proc()
{/*DAC相关输出*/
//	Temperature = rd_temperature();if(Temperature>Temp_Disp_Ctrol[0]){Da_Write(51*4);}else if(Temperature<Temp_Disp_Ctrol[1]){Da_Write(51*2);}else{Da_Write(51*3);}/*数码管相关输出*/ucLed[0] = (Temperature>Temp_Disp_Ctrol[0]);ucLed[1] = (Temperature<=Temp_Disp_Ctrol[0]&&Temperature>=Temp_Disp_Ctrol[1]);ucLed[2] = (Temperature<Temp_Disp_Ctrol[1]);ucLed[3] = Error_Flag;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/806874.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【vue】watch监听取不到this指向的数?

今天同事问我&#xff0c;watch里this指向的数值&#xff0c;别的地方却可以打印出来。工具也能看到数值&#xff0c;但打印出来却是undifined&#xff0c;先看看代码&#xff1a; 懒得打字了直接上截图吧 ps&#xff1a; 在Vue组件中&#xff0c;如果你在watch选项中访问this…

【Web2D/3D】WebGL和ThreeJS自学资料推荐

1. 前言 随着Web引入OpenGL&#xff08;WebGL&#xff09;&#xff0c;拓展了Web在可视化领域运用&#xff0c;尤其是促进3D领域的技术在Web前端的发展。而ThreeJS是基于WebGL做的上层封装&#xff0c;为开发者屏蔽空间几何的计算细节。当然为了学好WebGL/ThreeJS&#xff0c;计…

mysql 查询实战1-题目

学习了mysql 查询实战-变量方式-解答-CSDN博客&#xff0c;接着练习sql&#xff0c;从实战中多练习。 1&#xff0c;题目&#xff1a; 1&#xff0c;查询部门工资最高的员工 1&#xff0c;建表&#xff1a; DROP TABLE IF EXISTS department; create table department(dept_i…

【精选】发布应用到应用商店的基本介绍

摘要 本文旨在介绍如何在各大应用商店发布应用&#xff0c;包括市场选择、准备材料、上架步骤以及常见被拒原因及解决方法。通过详细的步骤和经验分享&#xff0c;帮助开发者顺利将应用推向市场。 引言 随着移动应用市场的不断发展&#xff0c;越来越多的开发者希望将他们的…

2024年能源环境、材料科学与人工智能国际会议(ICEEMSAI2024)

2024年能源环境、材料科学与人工智能国际会议(ICEEMSAI2024) 会议简介 2024国际能源环境、材料科学和人工智能大会&#xff08;ICEEMSAI 2024&#xff09;主要围绕能源环境、物质科学和人工智慧等研究领域&#xff0c;旨在吸引能源环境、先进材料和人工智能专家学者、科技人员…

sgg大数据全套技术链接[plus]

写在开头&#xff1a;感谢尚硅谷&#xff0c;尚硅谷万岁&#xff0c;我爱尚硅谷 111个技术栈43个项目&#xff0c;兄弟们&#xff0c;冲&#xff01; 最近小米又又又火了一把&#xff0c;致敬所有造福人民的企业和伟大的企业家&#xff0c;致敬雷军&#xff0c;小米&#xff…

跨域问题一文解决

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;Vue ⛺️稳中求进&#xff0c;晒太阳 一、为什么会出现跨域的问题&#xff1f; 是浏览器的同源策略&#xff0c;跨域也是因为浏览器这个机制引起的&#xff0c;这个机制的存在还是在于安全…

C语言指针易混问题

1. 在此函数传参过程中&#xff0c;虽然p是指针&#xff0c;但此处传递等价于值传递而非地址传递&#xff0c;所以函数中对变量的改变不改变主函数中原有变量的值 2. 能修改的是变量&#xff0c;但常量不能被修改&#xff0c;否则会出现段错误&#xff0c;下图为错误示范

机器学习中的激活函数

激活函数存在的意义&#xff1a; 激活函数决定了某个神经元是否被激活&#xff0c;当这个神经元接收到的信息是有用或无用的时候&#xff0c;激活函数决定了对这个神经元接收到的信息是留下还是抛弃。如果不加激活函数&#xff0c;神经元仅仅做线性变换&#xff0c;那么该神经网…

产品经理应具备哪些素质呢?

目录 简介 产品经理素质 CSDN学院 作者简介 简介 刚毕业想做产品经理&#xff0c;或者想转行产品经理&#xff0c;该怎么入手呢&#xff1f; 很多人对产品经理有这样一个认知&#xff1a;就是空有一个经理的头衔&#xff0c;却没有任何实质的权利。 其实这是有误区的&am…

AI是什么?

介绍AI AI是一个韵母的发音&#xff0c;发音汉字有爱、哎、唉、艾、&#x1f614;、埃、矮、挨等。 没了 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 真没了 . . . . . . . . . . . . . . . . . …

日程安排组件DHTMLX Scheduler v7.0新版亮点 - 拥有多种全新的主题

DHTMLX Scheduler是一个类似于Google日历的JavaScript日程安排控件&#xff0c;日历事件通过Ajax动态加载&#xff0c;支持通过拖放功能调整事件日期和时间&#xff0c;事件可以按天、周、月三个种视图显示。 备受关注的DHTMLX Scheduler 7.0版本日前正式发布了&#xff0c;如…

资深大佬养成之路:Java中关于List集合选择与使用(二)

本系列文章简介&#xff1a; 作为一个Java程序员&#xff0c;我们经常会遇到需要处理大量数据的情况。而在处理数据时&#xff0c;我们常常需要使用到集合这种数据结构。而在集合中&#xff0c;List是最常用的一种。 List是一种有序的集合&#xff0c;它可以存储任意类型的对象…

基于react native的原生iOS 微信登录

基于react native的原生iOS 微信登录 引入SDK&#xff1a;WechatOpenSDK-XCFramework.xcframeworkios 创建CustomerWxLogin类CustomerWxLogin.hCustomerWxLogin.m react native端调用创建wxLogin.js用于架起桥梁连接ios原生代码在页面中使用 微信open SDK 引入SDK&#xff1a;W…

Flutter 与Android 原生通信的3种基本方式的使用

一、Flutter 与 原生通信的三种基本方式以及使用场景 1.MethodChannel 主要是用于Flutter调用原生的方法(执行一个原生的行为更合适) 2.BasicMessageChannel 用于Flutter Native双向流式通信 3.EventChannel 主要用于Native平台单独向Flutter发送事件消息流,更强调单向用…

小程序项目思路分享爬虫

小程序项目思路分享爬虫 具体需求&#xff1a; 有这几个就行&#xff0c;门店名称门店地址门店类型&#xff0c;再加上省、市、县/区门店名称&#xff1a;storeName 门店地址&#xff1a;storeAddress 程序运行&#xff1a; honor_spider获取经纬度信息。 经纬度——>详…

「PHP系列」PHP 命名空间详解

文章目录 一、PHP命名空间1. 声明命名空间2. 使用命名空间3. 命名空间的作用范围4. 子命名空间5. 全局命名空间和非命名空间代码6. 命名空间与自动加载 二、PHP命名空间使用1. 基本使用2. 子命名空间3. 全局函数和常量4. 结合自动加载 三、相关链接 一、PHP命名空间 PHP 的命名…

Ubuntu配置VScode的C++环境

在Ubuntu系统下配置C环境&#xff0c;并运行helloworld 1. 下载VScode 我这里使用的是星火应用商店&#xff0c;在商店里面可以直接下载安装 http://spark-app.store/ 2.创建文件夹 3.启动VScode并打开该文件夹 4.安装以下几个扩展 PS&#xff1a;Clang这个插件别安装&…

【电路笔记】-逻辑或非门

逻辑或非门 文章目录 逻辑或非门1、概述2、晶体管逻辑或非门3、数字逻辑或非门类型4、通用或非门逻辑或非门是数字逻辑或门与反相器或非门串联的组合。 1、概述 或非(Not-OR)门的输出通常为逻辑电平“1”,并且仅当其任何输入处于逻辑电平“1”时才变为“低”至逻辑电平“0”…

OpenHarmony应用开发引入开源C/C++库---之Har包里的NDK

Har 包 HAR&#xff08;Harmony Archive&#xff09;是静态共享包&#xff0c;可以包含代码、C 库、资源和配置文件。通过 HAR 可以实现多个模块或多个工程共享 ArkUI 组件、资源等相关代码。HAR 不同于 HAP&#xff0c;不能独立安装运行在设备上&#xff0c;只能作为应用模块…