自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 蓝桥杯备战——14.总结及后续

到目前为止,整个蓝桥杯单片机板子上面的外设我都差不多封装完成了,而我的初衷也是把板子上的硬件都封装一遍且互不干扰。经过我的初步测试也是达到了这个效果,如果把我做的笔记都弄懂了,拿个省一应该问题不大。后续我会对往届的真题进行分析,并且分享我的个人见解!如果需要完整的工程,可在评论区留言!

2024-02-03 17:07:12 316 4

原创 蓝桥杯备战——13.PCF8591芯片的使用

截取自NXP的PCF8591芯片数据手册,我把重点关注部分划出来了,请务必自行阅读一遍数据手册!

2024-02-03 16:54:36 1199

原创 ESP32 矩阵键盘 4*3状态机

ESP32矩阵键盘状态机处理,无延时高效

2024-06-20 18:32:47 334

原创 中景园2.13寸黑白电子墨水屏全刷局刷驱动

局刷区域为全屏,屏幕不会闪烁!中景园没有局刷的示例代码,佳显的局刷全屏代码有误,没有重新设置坐标,连续局刷全屏会出现偏移想象!中景园以及佳显的2.13寸水墨屏是一样的,都支持全刷,局刷,快刷三种刷新模式。这里的局刷是在全屏区域内开设一个局部刷新区域,屏幕不会闪烁。

2024-03-22 17:11:01 1082

原创 蓝桥杯单片机备战——关于573问题的填坑

假设我们要先操作LED,再操作继电器,那么按照我之前的写法会是这样:先写001解锁LED,再写000锁存。好,问题就出在最后一步,当P25=0时,P26还等于0,P27还等于1,这个短暂的瞬间组成了001刚好就会解锁LED。所以这就是为什么我当时用110去锁存继电器就不会解锁LED了。还记得我前面在封装继电器外设的时候遇到的这个问题嘛,当时我怀疑的是138译码器在切换通道的时候会出现其他暂态导致已经锁定的573解锁。其实不然,之所以会这样还是因为代码问题,也可以说是573反应时间太快了。

2024-03-22 13:19:40 331

原创 蓝桥杯单片机备战——第十一届省赛真题解析

烧录代码试试效果,我们发现在设置的时候根本看不到上下限的变化,原因是我们在设置参数时,还是显示的Tmax,Tmin而不是Tmax_New,Tmin_New。先了解了大体要求,是不是感觉也不是很难嘛,我们现在需要做的就是先实现大体框架,在逐一每个具体分支功能。同上面一样的,定义一个bit标志位,然后翻转就行,一个状态对应一个参数。简单·,直接定义一个bit标志位,初始状态为0,按键按下翻转此标志位,此标志位为0则显示参数界面,为1则显示设置参数界面!首先我们要确保按键已经切换到了独立按键模式,不然美分哦!

2024-03-02 10:21:30 2166 3

原创 蓝桥杯备战——12.超声波与测频代码优化

至于我为什么要这么改呢,看一下我原来封装的超声波代码就知道了,下图高亮部分,如果一直没有接收到反馈信号,程序就会一直等待65ms,严重吃MCU资源,而且会导致数码管闪动。如果换成PCA模块捕获功能来做的话,我们只需初始化一下,然后在每个下降沿捕获中断里面获取距离就行,这大大提高了代码效率!昨天我在看原理图的发现超声波模块的反馈引脚P11刚好可以使用PCA模块0的捕获功能,我就想着把PCA功能留给超声波,然后测频功能还是改成定时器0来完成,然后前后台功能改成定时器1。

2024-02-04 11:58:11 697 1

原创 蓝桥杯备战——11.NE555测频

这里真的不得不佩服STC芯片的设计者们,使用一个PCA计数阵列就能实现脉冲捕获,PWM输出,软16位定时器,外部中断,D/A功能。不过现在我也不打算就用定时器0来对外部输入脉冲计数,因为我的初衷是把板子上面的各个外设都封装一遍且互不干扰,现在定时器0已经被我用做前后台功能了,所以我得另寻他法。但是呢,槽点来了,CCP功能切换不到P34引脚,只能把PCA计数脉冲源切换到P34引脚,很无语,就不能好好阅读一下STC15F的用户手册嘛?我们可以看到,上图就是一个NE555构建的方波发生电路,

2024-02-01 17:58:17 1947

原创 蓝桥杯备战——10.超声波模块

可以看到,J2跳线帽如果P10接N_A1,P11接N_B1就是用作超声波功能。N_A1用作发生超声波功能,而N_B1用作接收超声波反馈信号,通过R6上拉到VCC,所以分析接收到超声波信号后由高电平变低电平。我们首先需要通过P10引脚输出一定频率的方波信号来驱动JS2发出超声波,然后打开定时器计数,直到P11引脚变为低电平,此时关闭定时器,获取计数值后就能计算得到距离。蓝桥杯单片机板子的原理图做的简直是依托答辩,乱糟糟的不说还弄成黑白的,明明很简单的东西,弄成一大堆。

2024-01-30 16:55:05 936

原创 蓝桥杯备战——9.读写AT24C02

请先务必阅读一遍IIC通讯协议以及AT24C02的用户手册!在此基础上对代码进行理解记忆,方可达到事半功倍的效果。由上图我们可以看到AT24C02通过IIC与单片机进行通讯,由于A0,A1,A2都接地,所以器件地址为0XA0。当按下按键S7时向24C02写入数据,当按下S8时,读出对应地址的数据并发送到串口。

2024-01-30 14:40:18 423

原创 蓝桥杯备战——8.DS1302时钟芯片

由上图可以看到,芯片的时钟引脚SCK接到了P17,数据输出输入引脚IO接到P23,复位引脚RST接到P13。具体细节还需自行翻阅手册,我只截出重点部分。请自行阅读芯片手册,理解记忆即可。

2024-01-28 09:11:17 655

原创 蓝桥杯备战——7.DS18B20温度传感器

可以修改)数据格式,最高位为符号位,其实就是温度数据以补码形式存放在了两个暂存器里。实际上高位暂存器的高5位全用来放符号位了,只有低3位是数据位。比赛的时候是会提供DS18B20单总线通讯协议的代码,但是没有提供读取温度数据的代码,所以还是需要我们去查看手册,我只把重要部分截下来了。通过上图我们可以看到DS18B20通过单总线接到了单片机的P14上。解释一下上图,DS18B20使用12位(请理解记忆,注意阅读注释。

2024-01-26 21:34:26 962

原创 蓝桥杯备战——6.串口通讯

由于比赛时间紧,我们最好不要去现场查寄存器手册,去计算波特率。例如我这是使用定时器2用作串口1的波特率发生器,波特率9600。串口收发函数其实也不需要我们自己现场去写,在STC-ISP烧录软件里面有示例,复制出来稍作修改就行。由上图我们可以看到串口1通过CH340接到了USB口上,通过串口1我们就能跟电脑进行数据交互。然后就能直接使用printf()函数了,示例:按键按下后将获取到的温度数据通过串口发送到电脑。另外需要注意的是STC15F是有两组高速串口的,而且可以切换端口。下面是我修改过后的代码。

2024-01-26 21:09:43 3686

原创 蓝桥杯备战——5.动态数码管扫描

经查阅说明书得知数码管为共阳极,共阳端口接到了U8,而段码接到了U7。如果需要选中U8,我们只需要将P25=0;如果需要选中U7,我们只需要将P25=1;

2024-01-25 21:57:31 615

原创 蓝桥杯备战——4.继电器/蜂鸣器

于是573(U9)处于输出跟随输入P0状态,此时若P06=1,则573输出Q7=1,ULN2003输入IN7=1,但是由于ULN2003输入后芯片内部先经过非门在输入到达林顿管,所以输出OUT7=0,蜂鸣器响。这里我也发现一个小问题,如果上次的P0口状态已经改变了0XFF,假如现在运行Set_Beep(),那在解锁后,输出会立即跟随输入,那继电器的状态就会改变了,所以我觉得这里需要用全局变量来暂存旧的状态,后面再改吧。最好自己先去查查138以及ULN2003的使用方法,我这里直接讲思路。

2024-01-25 17:52:28 744

原创 蓝桥杯备战——3.定时器前后台

由于比赛时时间紧,我们也不要去自己查寄存器计算时间,直接使用STC-ISP生成代码就行。另外需要注意IAP15F2K61S2只有定时器0/1/2,没有定时器3/4。由上图可以看到我们可以通过AUXR寄存器直接设置定时器的1T/12T模式了。在定时器0/1模式上也可以设置为16位自动重装载。我就用上节的矩阵键盘20ms扫描一次的要求示例吧。

2024-01-25 12:51:20 910

原创 蓝桥杯备战——2.矩阵键盘

双击功能则是在松手状态下去判断长按功能的计时变量,小于一定值则可认为按键短按一次,此时再创建一个计时变量,当此计时变量大于一定值而小于一定值时按键再次按下则可判定为双击。**扩展长按功能:**由于按键持续按下状态Cont=键值,且Trg=0;由上图可以看到若J5跳线帽接地,就S4~S7就可以当做四路独立按键,若接到P44,则就是4*4的矩阵键盘。2.按键刚按下,且Key_Scan只运行一遍时:Trg=键值,Cont=键值。然后我们就能根据这三个状态来判断长按,短按,未按下,以及后续扩展双击等功能。

2024-01-25 12:01:34 1329 2

原创 蓝桥杯备战——1.点亮LED灯

如果ULN2003输入为0,则输出为1。所以解决办法就是我们上电先控制138选中Y5输出低电平,则Y5C为高电平,然后单片机P0输出低电平,则ULN2003输出高电平,蜂鸣器继电器关闭,然后再让Y5C为低电平锁存一下573即可。由上图可以看到Y4C接到了或非门74HC02的输出端,而输入端为WR和138输出端Y4。由上图可以看到8个共阳LED灯接到了573输出口,而573输入接到单片机P0口上。由上图我们可以看到蜂鸣器以及继电器都是低电平有效,接到了ULN2003输出端,

2024-01-24 17:50:54 901

原创 基于51的人体反应时间检测仪

主控使用STC89C52RC,双击测试按钮显示3S倒计时,倒计时结束蜂鸣器响起。当听到蜂鸣器响起时被测人员需立即按下测试按钮,此时LCD显示屏显示蜂鸣器响起到按键被按下时间。抢答与未答均视为违规,显示屏显示请重测。以下代码以普中A3开发板为例,未经上电测试,仅供参考!

2023-12-11 15:31:55 469

原创 ESP32-S3使用PWM控制TFT屏幕背光

ESP32S3使用ledc控制TFT屏幕背光示例

2023-11-28 22:46:54 1018

原创 ESP8266获取网络天气

可以显示天气与时间的桌面摆件

2023-11-28 22:25:24 499

原创 基于Arduino框架下的ESP32-S3移植LVGL教程

ESP32-S3基于platform IO 平台Arduino 框架移植LVGL详细教程,并引入FreeRTOS。

2023-11-27 23:03:12 5815 2

原创 深圳I/O游戏攻略一安全摄像头

深圳I/O游戏攻略一安全摄像头

2023-11-15 20:31:13 416

原创 LVGL移植教程

LVGL移植步骤总结,详细讲解LVGL源码包的裁剪,以及如何移植到工程并修改配置文件

2023-11-15 20:17:36 656

原创 51单片机无源蜂鸣器示例代码

51单片机控制无源蜂鸣器播放悦耳铃声

2023-11-14 18:45:04 1601 1

原创 51单片机读取外部EEPROM代码示例

由于E0、E1、E2都接地,所以器件地址为0XA0。

2023-11-14 17:46:12 516 1

原创 VB6.0串口助手精简版

若有数据上传,则触发接收事件,程序先判断事件类型,若为接收事件,则将数据显示在文本输入框内,点击清除程序清除文本内容。1.串口初始化函数:串口初始化封装成通用函数,在form_load时运行一遍,此后若ComboBox发生下拉事件,则可再次根据条件调用此函数,以实现端口的动态刷新。2.端口切换与刷新:在Combo1下拉列表项点击事件发生时,进行端口的切换,此处使用了一个if else语句判断串口是否已打开,如果打开了需要先关掉才能切换,否则报错。(1)打开程序后,先加载窗体,初始化控件,串口初始化。

2023-11-13 22:40:39 2009

原创 51单片机内部集成EEPROM使用示例

51单片机内部集成EEPROM使用示例。

2023-11-13 17:25:55 859

原创 51单片机定时器扫描数码管

数码管动态扫描函数,使用定时器进行实时刷新,代替传统阻塞延时消影,节省CPU资源

2023-11-12 22:37:16 254 1

原创 51单片机使用8×8点阵显示心形以及各种其他图案教程

51单片机8X8点阵显示心形,滚动字符详细教程

2023-11-12 19:27:30 10146 4

原创 如何入门硬件?

硬件入门学习方法

2023-11-11 19:52:53 152

原创 嵌入式Linux学习笔记——使用Linux命令行

Command [-options] [argument] 命令名 [选项] [参数]查看当前命令用法: --help。对内通过系统调用传递给内核运行。对外接收用户输入的命令。

2023-11-11 13:26:03 86 1

原创 嵌入式Linux学习笔记——用户管理与文件权限

UID: 用户标识,通过数字编号区分不同用户。GID: 群组标识,区分不同群组。/etc/sahdow 密码。

2023-11-11 13:01:17 114 1

原创 嵌入式Linux学习笔记——文件系统

3年工作经验之后尝试学习C语言解释器开发,参考picoC 与write_a_c_interpreter。:以跟目录(/)开始写的文件名或者目录名称,反之则为相对路径。:用cd .或者cd ./来表示。

2023-11-11 12:53:20 120 1

原创 51单片机定时器中断详解

定时器,顾名思义,就是用来定时的;计数器,顾名思义,就是用来计数的。初学的小伙伴就会有疑问了,为什么定时器又叫计数器呢?其实就是同一个外设能用作两种功能罢了。中断即中途打断。因某条件触发而打断当前的事,转而去干别的事情,完后回来继续干。上面的这个比例跟单片机的定时器中断是一样的,首先我们在程序上配置定时器(设闹钟),然后程序进入主循环(睡觉)等待中断的到来,若中断标志位被硬件置一(闹钟响了),程序则跳转到中断服务函数执行里面的代码(弹射起来关闹钟),然后回到主循环内被中断的地方继续执行(继续睡觉)。

2023-11-09 00:30:29 7378 1

原创 基于CW32的超低功耗水墨屏时钟

Gitee开源链接:立创开源链接:

2023-09-27 14:40:42 304 1

原创 STM32按键无延时消抖程序,支持短按,长按,双击

某小厂产品级应用的按键检测程序,支持短按,长按,双击功能等等,需要用到定时器,废话不多说,上代码,亲测好用!

2023-08-01 20:27:23 1889

原创 STM32+NRF24L01使用日记

NRF24L01使用日志

2023-02-01 09:50:30 1738 1

原创 MAX6675 K型热电偶使用日记

/* * K型热电偶MAX6675 */#include <U8g2lib.h>U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, D3, D4, U8X8_PIN_NONE); // All Boards without Reset of the Display#define CS D0#define SCK D1#define SO D2void setup(){ pinMode(CS,OUTPUT); p.

2022-09-01 08:44:18 373

原创 高级宿舍——用手机蓝牙控制宿舍灯开关

用到的MCU是STC15W204S,主要是体积小,蓝牙模块HC–04,然后180度舵机。手机上下载HC蓝牙助手。#include <REG51.H>unsigned char receive_data;unsigned char PWM,compare;sbit steering=P3^2;void Uart_Init(void) //9600bps@11.0592MHz{ SCON = 0x50; //8位数据,可变波特率 AUXR |= 0x01; //串口1选择定时

2022-01-01 19:57:38 1345

基于Arduino框架下的ESP32-S3移植LVGL教程

基于Arduino框架下的ESP32-S3移植LVGL教程

2024-08-14

VB6.0串口助手精简版

VB6.0串口助手精简版

2024-08-14

51单片机使用8×8点阵显示心形以及各种其他图案教程示例代码

51单片机使用8×8点阵显示心形以及各种其他图案教程示例代码

2023-11-12

51定时器中断搭建前后台任务系统&按键无延时消抖

51定时器中断搭建前后台任务系统&按键无延时消抖

2023-11-09

空空如也

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

TA关注的人

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