自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 第十五届单片机模拟考试IV

对于这些小数类型的电压, 我们直接对应的电压*51,再进行四舍五入来获取对应的char值,进行dac输出更加准确。让D_Volt直接就是char类型的值,不再外面进行额外操作。界面1显示频率,高位熄灭,界面二度数ds18b20数据,高位熄灭,界面3显示设置的温度参数。对于采集到的温度进行判断,就能完成继电器控制和L8闪烁控制,L12就是常规的界面指示灯。DAC功能与ne555获取的频率有关,是常见的分段处理一次函数形式。S4界面切换,s8s9修改参数,有上下限限制。还是一道很常规的题目。

2025-04-03 15:27:50 252

原创 第十五届蓝桥杯单片机模拟考试II

模式1是一个和温度在10~40摄氏度内的线性相关,10~40度每一度对应的就是4/30v的电压,对他进行分段处理小于等于10 dac输出1v,大于等于40dac输出5v,之间的输出 1 +(当前温度值-10)/30*4 ,因为带有小数,我们可以乘以10倍100倍来得到整数的运算。模式界面又分为模式1,2两个子界面,输出界面显示输出的DAC数据,温度参数直接读取ds18b20即可,光照度参数直接读取光敏电阻值即可。模式2对光照进行分析和温度分析一模一样的,就不再多说,分段分析即可。常规的界面功能指示灯。

2025-04-03 15:09:19 166

原创 第十五届单片机模拟考试III

这边注意当距离值持续处于报警的条件的时候,报警次数不变,所以我们定义一个标志位,进入报警界面置1,放入判断里面来避免这个问题。界面2参数界面,分为两个s5控制的模式,通过标志位对模式值来判断,显示上下限,通过按键s89或者旋钮来控制上下限。上限和下限就差了50cm的距离参数,所以我们可以先读取电压值,再判断是上限还是下限,得到对应的值。3个界面,界面1测距界面,对超声波模块进行读取获得当前的距离数据显示出来,高位熄灭。界面3记录界面,记录报警次数,大于9次就显示-,每次报警定义的标志位就加一。

2025-04-03 14:58:25 126

原创 第十五届蓝桥杯单片机模拟考试I

这道题输入四位数据,输入完成切换界面的时候写入EEProm里面去,输入四位数据,多余的按键不影响原来的输入,那我们就得限制输入的次数,输入四次就让后面的输入无效即可。时间功能是正常的时间显示,输入界面得高位熄灭和最新输入的在右侧,之前的输入左移一位,这算个小难点,但是用索引对数组进行处理就行了,只有四位数据,我们直接对输入索引进行枚举就行了,记录界面在输入第一位的时候进行时间记录,把记录的时间显示出来即可。L4的判断在按键功能里面。L123常规界面指示灯。

2025-04-03 14:19:25 213

原创 第十五届单片机模拟考试III

基础的频率显示和温度显示,记得我们的按键S5界面内的模式切换,定义的标志位来对应不同的小界面,记得高位熄灭。L1,L2是常规的界面指示灯,L3是功能指示灯,L8状态指示灯,都很常规,L3,L8检测标志位即可.S4界面切换,S5 功能切换,在不同界面转换不同的功能,定义两个标志位记录即可。S9复位,回到初始状态,记得界面也得回到初始的信号界面(这里算是一个坑点)题目不长 ,功能也不难,一道水题。一道水的不能再水的题目。

2025-04-03 11:46:08 159

原创 第十五届单片机模拟考试II

密码输入显示的内容就是我们的数组直接显示,数组的处理我们在按键那边完成了,这边直接输入就行。每次输入的一位在最右边,前面的输入左移一位,那么我们就把之前的数据左移,最后一位的数据用当前获取的值写入。题目给出了正确值的范围,我们在判断密码正确之后正确值加一,再写入eeprom里面,下次上电的时候读取到存储的正确值。因为按键对应的值变量默认就是0,所以我的按键底层从1开始到10,对应的就是0~9,避免了0的直接出现。L1界面指示灯,L2也算是存储界面的指示灯,点亮时间和前提和进入显示界面一样的。

2025-04-02 19:56:12 302

原创 第十五届单片机模拟考试I

时间界面下,时分值加一,秒钟清零,也就直接对时间数组进行操作,按下后修改值再写入ds1302里面。要注意ds1302是bcd码制的,16进制,而我们显示的是正常的十进制,所以我们要对写入ds1302的数据进行处理,逢十进一。ds1302内部时间到达我们设置的时间参数的时候就启动测温,按照题目的意思,就是测温一分钟,到不符合我们的参数,那就很简单了,一个简单的时间判断。S4常规按键切换,S5,S8,S9不同界面小时数据或者参数加一,分钟加一,秒钟清零,且定时界面按下S9小时参数和分钟参数才生效。

2025-04-02 19:19:16 280

原创 十六届蓝桥杯单片机模拟试题Ⅲ

定义一个变量和标志位来记录时间,启动的时候标志位置1,开始倒计时,变量减少,继电器吸合,暂停的时候,继电器关闭,倒计时时间重置,恢复到初始状态。都是基础的按键功能,S4切换界面,S5切换状态,S8S9加减参数。通过滑动变阻器的电压来模拟湿度,一个范围内的一阶函数,也是很常见的,区分好区间取值就行。也是很简单的显示模式,值显示,参数显示,时间间隔参数显示。Led灯都是常规的界面点亮,继电器也是常规的一个模式,在条件内吸合,不在条件内断开。两个是继电器和led灯的控制,我们都放在Led函数里面。

2025-04-02 18:54:15 217

原创 十六届蓝桥杯单片机模拟试题Ⅱ

显示功能看着有点多,实则不然 ,总共其实就四个大界面,历史界面有三个小界面,时间界面是最简单的,数据界面这边得注意一下,光敏电阻和滑动变阻器一起使用的话,要么连读,要么互换值,但是4t的测评是很有问题的,这道题得互换读才有分,连读不给分,之前12届有道题是连读才给分,互换读不给分。连续存储三次时间数据到数组内,每次触发,数据存储到数组内后time_pos加一,新数据放在数组内,并用标志位history1来标志新数据的索引,history2标志上一个数据的索引,history3就是最前面数据的索引.

2025-04-01 20:00:00 527

原创 十六届蓝桥杯单片机模拟试题I

我们在对于校准值需要进行判断,这里按理来说,温度值是当前温度加上校准值,也有可能是负数,但是这里数码管的分配加上小数点后一位,并没有负号的空间,所以我们就根据题目的意思,正常显示温度即可。而对于温度参数和温度校准值来说,就得判断正负和高位熄灭,两个显示模式代码一模一样就参数不一样罢了。校准值的范围是-99~99,所以我们用int类型来作为校准值的变量,温度值依旧用float类型。S4简单的切换模式按键,s5切换触发模式,这两个都很常规,S8,S9不同界面不同参数的加减。三种显示界面,标识符分别C,E,H。

2025-03-31 22:30:00 182

原创 14届蓝桥杯_单片机模拟测试

S9把当前距离发送给串口,通过sprintf格式化字符串在发送数据,%d对应的是整型数据,%f是浮点型,%c字符。这里我选择让L3_flag一直闪烁,符合条件了,我就把闪烁值赋值给led灯,不符合条件就熄灭led3灯.通过题目,我们可以得知下限是0,再根据数码管的显示,我们得到上限是三位数,所以上限就是不到1000.一个通用的标志符号U 和一个对应界面的标识,熄灭三位,然后显示距离和距离参数,高位熄灭。S4界面切换,S8将当前的距离设置为距离参数,S12,S16参数加减,注意上限和下限。

2025-03-31 21:00:00 298

原创 14届蓝桥杯_单片机模拟考试2

这里的难点就在于串口锁住之后,发送的数据无效,我这边是串口锁住以后,把之前的数据赋值给接收到的数据,这样串口功能再次实现的时候,就不会因为原本锁住时发送的数据而受到影响。(串口锁住的时候,我们发送数据还是可以接受到的,当串口功能恢复的时候,我们锁住时发送的数据就会赋值给记录变量,导致功能有误)14届的题目都很长,运用到的模块也很多,但是只要我们一步步一块块地啃下来,都还是很简单的,都是很基础的模块运用,没有出现较难的东西。S5解锁,在标志位置1的时候,按下s5标志位回到0,串口功能恢复,

2025-03-31 20:30:00 297

原创 14届蓝桥杯_单片机模拟试卷2

这里我在想,如果我从频率控制切换到按键控制,但是我之前的测距标志位是置1的,那么我现在没有按下s8是不是也是进入启动频率测量的界面,这应该是不正确的,所以我在控制界面切换的时候,把启动测量标志位置0,来避免了这种情况。频率测距我们在数码管函数里面进行判断,频率控制模式下判断频率的大小,如果符合要求,就测距,因为符合要求的频率是连续一直在的,所以我们的测距也是连续一直在的,测距标志位置一,不符合频率条件标志位置0。在按键函数里面判断S8,在按键控制模式中,按下测一次距离,并把测距标志位置1。

2025-03-31 20:00:00 321

原创 蓝桥杯单片机13届模拟4

模式标志位,模式1和模式2都是显示电压值,模式1保留两位小数,模式2保留一位小数,我们就把模式1的代码复制粘贴,然后把数码管显示左移一位就行,ADC数字量也就直接从滑动变阻器那边获取,获取过来再转换成电压值在模式12显示。按键S4发送,按键S5界面切换,我们现在只需要写出按键的功能大概就行,发送功能我们可以先注释在旁边,等我们写串口功能的时候在回过头来写。串口发送数据成功TI置1,需要我们手动清零,写好发送字符的函数,再此基础上写出发送字符串的函数。用头文件里面的 sprintf(数组,格式,数据);

2025-03-31 00:06:00 256

原创 蓝桥杯单片机13届模拟3

题目没有明确给出上下限,但是我们可以从数码管的显示得到,数码管只用了两位数码管来显示参数,每次加减10,也就是参数下限是0,上限是90。这题除了我们基础的模版外用到了超声波模块,超声波模块我们可以用定时器1来获取也可以用Pac来获取,这边建议使用Pac来获取,有时候如果遇到了ne555绑定定时器0,串口绑定定时器2,定时器1得用来计时。S4切换显示模式,S8根据不同的界面有不同的加功能,S12和S8类似,在不同的界面有不同的减功能,注意上下限的判定。这里注意上下限是0的时候,高位得熄灭,只显示0;

2025-03-30 23:19:35 269

原创 蓝桥杯单片机第13届模拟2

因为我们的ds1302是bcd码值的16进制,所以我们进位的时候要注意,bcd码里面9后面是a而不是进位,所以我们先进行正常的加,在遇到a的时候手动进位,时钟的23进位为0也是一样的;其他的都是很简单的东西。这题的难点就是S8的长按清零短按存储,题目给出的记录值和计数值是0~999的正常我们用unsigned int类型来存储,但是这题用unsigned char类型来进行写入也不会报错.这题的难点就一个时间的加的时候的那个进位。

2025-03-25 23:17:59 292

原创 蓝桥杯单片机第13届模拟1

题目要求的是独立按键,从s4到s7,s4是常规的界面切换功能,s5s6s7都是在时钟界面有效,对时间数据的修改,对于时间数据的修改,我们需要注意,ds1302存储的数据是bcd码16进制的。比如说时钟,0~9正常加一,9~10的时候,bcd码是a,我们就得把这部分特殊判断,让bcd码的高四位加一,低四位清零,得到10。整点继电器吸合报警,我们在读取时间之后对时间进行判断即可,定义一个3s计时标志位来判断,也可以用ds1302的数据来判断,但我本人更倾向于定义一个标志位来判断,不容易出错。

2025-03-24 23:00:00 301

原创 蓝桥杯单片机11届省赛

L3是连续三次或以上无效按键触发,什么是无效按键触发呢,现在我们只用到了四个按键,S12任何界面都有效,S13,S16,S17三个按键都是在一定条件下按下才有效,比如说S13只在参数界面有效,而在别的界面按下S13就是无效按键触发,对于这些无效触发,我们定义一个变量来记录,,只要有一次有效触发,就把这个无效触发值清零,在Led函数里面进行判断,点亮L3。首先来看计数值加一的触发条件,只有按照图的显示,只有我们获取到的滑动变阻器电压在之前先大于电压参数,再小于电压参数 ,我们才完成一次计数。

2025-03-23 22:30:00 301

原创 蓝桥杯单片机第十三届省赛2

对于这种需要切换界面才有效的数据,我们可以定义一个用来记录和一个用来显示的变量,在按键加减触发时,显示的变量进行加减,在切换界面的时候,我们才把显示的变量赋值给记录变量,用在变量的比较过程。很简单的按键功能,很是常规,按键S4切换显示界面,S5切换上下参数,S6,S7加减当前选择的电压参数。不要忽略他们的前置条件即可。还是很基础的一道题目,我们就从大模板开始,敲完大模板,加入题目需要的DAC输出和AD转换底层,还有超声波底层。显示界面也是很简单,高位不显示,启动与不启动的不同显示界面,上下限的修改和显示。

2025-03-22 22:00:00 302

原创 蓝桥杯单片机十二届省赛1

很基础简单的按键模式,别忽视了那句,设定的温度参数在退出参数界面时生效,也就是退出参数界面的时候,我们修改的温度参数才能在后面的比较方面有效。我们就可以定义一个显示的参数,和一个用来比较的参数,在按下S4显示界面切换的时候,我们把显示的温度参数赋值给比较用的参数。S8S9在参数界面有效,在参数界面按下加减一,题目没有要求我们的上下限,我们记得自己定义上下限,最低肯定是不小于0 , 看数码管的状态,温度参数只显示两位,那么最高就是不大于99(宁可多写也不能少写,多写肯定没问题,少写了就不一定了)

2025-03-21 21:00:00 209

原创 单片机外扩芯片运用(自用)

d 对应的整数类型,传入的数据要强制类型转换成(unsigned int)或者 (int)类型。串口配合 stdio.h头文件里面的 sprintf函数进行使用。周期就是 1000000除以频率值。

2025-03-20 21:00:00 240

原创 蓝桥杯单片机十五届省赛

这道题的一个难点应该就是这边,我们要显示的频率值,比较的频率最大值,都是要先进行校准的,频率校准值是我们通过按键操控的,默认是0。23位数码管固定熄灭,所以我们只需要对4567这四位数码管进行判断,超限参数每次加减1000,后三位直接赋值0,对第四位进行判断就行,校准参数得先判断正负,且校准参数都是三位数,只需要对第五位进行判断,特殊情况是校准值为0的时候,单独领出来判断就行了。参数编号P是固定的,可以单独拎出来,编号也是和参数子界面有关,可以子界面参数+1拎出来,回显界面有两个子界面,默认频率回显。

2025-03-19 20:00:00 417

原创 蓝桥杯单片机12届省赛题2

12届的省赛题目还是比较简单的,但是这个4t的测评系统有点坑,光敏电阻和滑动变阻器一起读取,因为ad芯片获取的值是上一个的,所以我们可以选择把光敏电阻和滑动变阻器读取的值互换,或者说连读两次光敏电阻和滑动变阻器。这边建议连读两次,互换值板子上显示的内容是正确的,但是在4t上面是dac部分一分没有....

2025-03-18 20:00:00 662

原创 蓝桥杯单片机13届省赛题1

拿到题目,我们依旧先写好我们的大模板,再配上题目要求的Ds1302和Ds18b20外设依旧是从按键来开始着手。

2025-03-17 20:30:00 417

原创 蓝桥杯单片机第十四届省赛题

当我们触发采集的时候,那个标志位,就是我们能否进入温湿度界面的判断,也是我们L3亮灭的判断,L4判断当前温度和温度参数的值大小,我们直接在中断服务函数里面进行比较,如果当前温度高于温度参数,开始L4 0.1s闪烁,不高于的话熄灭L4,用一个标志位来控制L4的暗灭闪烁。再任何界面都能触发采集进入温湿度界面,3s后才返回,所以温湿度界面优先级大于其他的界面,进入温湿度界面后3s返回到原先的界面,再温湿度界面内其他界面全部无效,所以我们设置一个关于温湿度界面优先级的判断。

2025-03-15 20:00:00 913

原创 蓝桥杯大模版(自用)

从那里学来的大模板。

2025-03-14 20:00:00 135

蓝桥杯单片机第十四届省赛题

4T满分文件

2025-03-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除