![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
STC15项目
文章平均质量分 81
MCU:STC15L2K32S2
ONE_Day|
这个作者很懒,什么都没留下…
展开
-
ESP_12S模块-SmartConfig配网
智能配网,比如你拿到一个智能灯,它是可以连接你家的 WIFI 的,但是它不认识你家的 WIFI 怎么办呢,那么你就要告诉它,你家的WIFI 是什么名字,密码是什么,怎么样告诉它是最方便的?智能灯的开发商开发智能灯的时候附带开发一个APP,通过使用这个 APP 来去告诉智能灯你家的WIFI,然后智能灯就可以连接家里的热点或路由器,成功连上网络。原创 2022-09-07 14:23:14 · 1699 阅读 · 0 评论 -
STC15单片机-生产资料,项目结束
Gerber文件是PCB生产制造文件,如果PCB原文件需要保密,就需要自行拼板,出gerber文件,不同的设计软件,生产gerber 的方式不同,但生成的文件大同小异,网上有很多这方面的资料。最好提供样机图,有必要的话,需要提供样机实物,方便贴片厂参照,确保贴片无误。一般需要详细的列出元器件信息,包含位号,型号,封装,数量等信息,另外,有必要的话,还可以列出安装方式,图片,品牌等信息。对于不需要保密的PCB文件,可以提供PCB原文件与拼板说明给到厂家,让厂家帮忙拼板,生产gerber文件。原创 2022-09-04 11:22:38 · 266 阅读 · 0 评论 -
STC15单片机-整合代码,完成软件设计
一个物联网项目的雏形,可以采集设备温度,可以控制灯,温度可以通过网络上传到服务器,服务器也可以下发指令控制灯,也可通过Modbus协议进行本地设备的通信,走的是RS-485接口,上位机显示设备温度,同时可以设置设备的灯的亮度,通过长按按键可以控制设备进入低功耗模式,单击按键将设备唤醒,服务器也可以发送待机指令控制设备进入低功耗模式。main.c ->主函数文件,包含 main函数,主要的系统框架,分为系统运行和系统待机,根据系统状态位改变;Timer0.c ->定时器函数,包含定时器初始化,中断服务函数;原创 2022-09-04 11:20:51 · 1664 阅读 · 0 评论 -
STC15单片机-看门狗介绍
在工业控制/ 汽车电子/航空航天等需要高可靠性的系统中,为了防止“系统在异常情况下,受到干扰,MCU/CPU程序跑飞,导致系统长时间异常工作”,通常是引进看门狗,如果MCU/CPU不在规定的时间内按要求访问看门狗,就认为MCU/CPU处于异常状态,看门狗就会强迫MCU/CPU复位,使系统重新从头开始按规律执行用户程序。看门狗本质上是一种定时电路或者软件定时器机制。原创 2022-09-04 11:20:18 · 3070 阅读 · 0 评论 -
STC15单片机-低功耗设计
低速模式,空闲模式和掉电模式。正常工作模式下,STC15系列单片机的典型功耗是2.7mA ~7mA,而掉电模式下的典型功耗是原创 2022-09-04 11:19:36 · 8337 阅读 · 2 评论 -
STC15单片机-无线通讯(WIFI模块)
ESP8266 系列模组是深圳市安信可科技有限公司开发的一系列基于乐鑫ESP8266EX的低功耗UART-WiFi芯片模组,可以方便地进行二次开发,接入云端服务,实现手机3/4G全球随时随地的控制,加速产品原型设计。模块核心处理器 ESP8266 在较小尺寸封装中集成了业界领先的 Tensilica L106 超低功耗 32 位微型 MCU,带有 16 位精简模式,主频支持 80 MHz 和 160 MHz,支持 RTOS,集成 Wi-Fi MAC/ BB/RF/PA/LNA,板载天线。支持标准的 IEEE原创 2022-09-04 11:09:14 · 7488 阅读 · 1 评论 -
STC15单片机-上位机通过Modbus-RTU协议与开发板通信
Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气Schneider Electric)于 1979年为使用可编程逻辑控制器(PLC)通信而发表。Modbus 已经成为工业领域通信协议的业界标准(De facto),并且现在是工业电子设备之间常用的连接方式。更详细的介绍可看这篇文章:http://t.csdn.cn/n1T5O要进行Modbus通信,就要先写一个上位机软件,是用C#语言编写的(还不会,先用现成的);然后电脑通过USB转485工具与开发板的A、B端子相连接,Modbus协议原创 2022-09-04 11:03:58 · 3411 阅读 · 0 评论 -
STC15单片机-数码管显示PCB板温度(TM1620驱动芯片使用介绍)
单片机直接扫描:硬件设备简单,但会耗费大量的单片机CPU时间专用驱动芯片:内部自带显存、扫描电路,单片机只需告诉它显示什么即可,如TM1620、TM1640符号管脚名称管脚号说明DIN数据输入18在时钟上升沿输入串行数据,从低位开始。CLK时钟输入19在上升沿读取串行数据,下降沿输出数据。STB片选输入20在下降沿初始化串行接口,随后等待接收指令。STB为低后的第一个字节作为指令,当处理指令时,当前其它处理被终止。当STB为高时,CLK 被忽略。SGE1 ~SGE8。原创 2022-09-03 20:53:35 · 6094 阅读 · 1 评论 -
STC15单片机-ADC获取环境温度(NTC热敏电阻)
然后想着去查看STC-ISP串口助手那一块是否有可以设置的地方,猜测自己的串口助手与教程的某项设置不一样,导致乱码,后来完全没发现STC-ISP烧录工具有可以设置串口相关参数的地方,除了波特率,校验位和停止位,其他没得设置,波特率对应了,乱码的问题与校验位和停止位关系应该也不大,如果校验位和停止位有错,应该整个通信都有问题,而不只是这一个℃单位。后来猜测到,既然烧录教程的代码没问题,烧录自己的代码有问题,而内容却一样,那我把教程代码串口打印输出这一块的全部内容复制到自己的代码中,是否还有乱码现象呢?原创 2022-09-03 20:23:24 · 7901 阅读 · 1 评论 -
STC15单片机-RS-485通信
SP3481、SP3485是一系列+3.3V低功耗半双工收发器,它们完全满足RS-485和 RS-422串行协议的要求;并且,SP3481、SP3485采用单一+3.3V的工作电源。 SP3481、SP3485与Sipex的SP481、SP483和SP485的管脚互相兼容,同时兼容工业标准规范。SP3481和SP3485符合RS-485/RS-422串行协议的电气规范,数据传输速率可高达10Mbps(带负载)。SP3481还包含低功耗关断模式。原创 2022-09-03 19:55:40 · 5168 阅读 · 0 评论 -
STC15单片机-通过EEPROM恢复PWM亮度
EEPROM (Electrically Erasable Programmable Read-Only Memory),电可擦除可编程只读存储器,一种掉电后数据不丢失的存储芯片。EEPROM 可以在电脑上或专用设备上擦除已有信息,重新编程。一般用在即插即用要使用到IAP对EEPROM进行操作,则需要配置以下的寄存器,除了PCON可以通过烧录软件STC-ISP进行选择而不需要编程配置,寄存器的详细用法可看数据手册。原创 2022-09-03 18:06:29 · 1110 阅读 · 2 评论 -
STC15单片机-通过PWM调整灯亮度
PCA (全称是Programmable Counter Array**)可编程计数器阵列是STC单片机内部集成的外设**,很多场合是以CCP/PCA放在一起来描述,那么这里的CCP又代表什么意思呢?上升/下降沿捕获、软件定时器、高速脉冲输出和可调脉冲输出(PWM)。注:STC不同型号的单片机拥有的CCP/PCA资源不同,有的单片机有2路CCP/PCA,有的单片机有4路CCP/PCA,在使用时请注意查看。CCP/PCA和PCA意思是相同的,所以有时候直接简称这个外设为PCA。原创 2022-09-03 17:45:29 · 7853 阅读 · 2 评论 -
STC15单片机-LED闪烁(定时器)
定时器启动后,定时器在时钟源的驱动下开始做加1计算,当计数到 65536时,中断标志位 TF0 置位,触发定时器中断,此时可以重新设定时值或自动重装定时值,重新计数,周而复始。如果定时器中断开启了,CPU 会停下手头的工作,转而去运行定时器中断函数,中断函数运行完之后,CPU 继续干手头的工作。中断存在的意义:为了提高 CPU 快速处理紧急事件的能力,比如按键中断、 定时任务、故障报警、接口通信等。定时器在满足要求的情况下,定时时间越长越好,中断过于频繁的话,会影响 CPU 的效率。原创 2022-09-03 17:32:18 · 2325 阅读 · 1 评论 -
STC15单片机-串口打印
主要是定义波特率的枚举类型,之前用串口都是程序写死波特率,要改的话又要用软件生成一次,这次的灵活点,定义该波特率枚举类型后在后面可以用switch语句列出这四种波特率的TH1、TL1的初始值,在使用时,直接修改波特率的变量的值即可,非常方便。与串口相关的分别是4个函数,串口初始化,串口发送字符,串口发送数组,串口发送字符串,另外对putchar函数进行重写,实现printf函数的重定向,为什么这里修改putchar函数而不是fputc函数,可以看之前的的文章(如果将形参赋给另一个指针,那指针就可++原创 2022-09-03 17:25:51 · 1870 阅读 · 0 评论 -
STC15单片机-串口打印printf重定向
某些库函数的运行速度也比较慢,例如,memcpy()。microlib 是缺省 C 库的备选库,它指在需要装入到极少量内存中的深层嵌入式应用程序配合使用,这些应用程序不在操作系统中运行。网上文章许多都是说改写fputc函数,但我在这个程序中试了是不行的,会编译出错,定位到函数的FILE类型上,的时候,可以在keil软件的设置里,勾选Use MicroLIB选项,就可以使用fputc函数来实现重定向了。如果Cnt的类型是uint8_t的话,下面的格式化不变,还是%u,则串口输出的不是加1,而是加256了。原创 2022-09-03 10:57:59 · 3004 阅读 · 2 评论 -
串口通信-USART和UART的区别
USART和UART并不相同,STC89C52是一个UART,STC15F2K32S2有两个UART,(之前程序中串口函数名写错了,一直写成usart,已全部改了过来)原创 2022-09-03 10:45:14 · 3463 阅读 · 0 评论 -
STC15单片机-状态机点灯
在每一个状态函数实现完功能后,将状态机的状态位变量切换到下一个状态,这样在main函数中才能根据状态位调用这里的函数。状态机函数,分为8个状态,每个状态可以实现不同的功能,这里只是简单的指示灯翻转,不同状态翻转的时间不同而已。类似状态机检测按键的做法,但这里没有用定时器检测,状态位的切换放在main函数主循环里进行。STA_Machine.c:包含不同状态的函数,函数里实现翻转运行指示灯。main.c:包含main函数,主要系统逻辑,调用不同的状态函数。头文件中要定义状态位的枚举类型,并声明变量。原创 2022-09-02 23:54:15 · 508 阅读 · 0 评论 -
STC15单片机-按键检测单击、双击和长按(状态机)
在单片机的应用中,利用按键实现与用户的交互功能是相当常见的,同时按键的检测也是很讲究的,众所周知,在有键按下后,数据线上的信号出现一段时间的抖动,然后为低,当按键释放时,信号抖动一段时间后变高,然而这段抖动时间要维持10ms~50ms,这个与按键本身的材质有一定的关系,在这个范围内基本上都可以确定的。像这样的程序经常出现在大学的教科书中,在按键的扫描中,单片机的资源全部用来做按键的扫描,特别是当中的延时程序,对单片机来说,这个一个漫长的过程。这样的教科书的按键处理程序是不实用的,在实际应用中是不可取的。原创 2022-09-02 11:49:45 · 8524 阅读 · 4 评论 -
STC15单片机-按键检测单击或长按(外部中断)
在LED闪烁(定时器)的工程中加上 KEY.c 和 KEY.h 文件,在Sys_Init.c文件中初始化外部中断0,在KEY.c中定义外部中断0中断处理函数,按键检测也是在KEY.c文件中实现。main.c -> 主函数文件,包含 main 函数等,当用外部中断翻转指示灯时 ,则不用调用函数,否则调用按键扫描函数翻转指示灯;因为在标志位清0时外部中断可能还会被触发,这可能是按键抖动引起的,标志位会重新被置1,在按键检测时会被重复判断。KEY.c -> 按键函数,包含按键检测,中断函数等。原创 2022-09-02 11:39:30 · 2619 阅读 · 1 评论 -
ISP和IAP介绍
(In System Programable) 是指在系统编程,通俗的讲,就是芯片已经焊板子上,不用取下,就可以简单而方便地对其进行编程。比如我们通过电脑给 STC 单片机下载程序,或给 AT89S51 单片机下载程序,使用的STC-ISP软件;以及利用Flash loader对STM32编程等,都是是利用了 ISP 技术(In Application Programable) 是指在应用编程,是应用在Flash程序存储器的一种编程模式。原创 2022-09-02 11:05:32 · 3777 阅读 · 0 评论 -
STC15单片机-LED闪烁(面向对象程序结构)
2.user目录下添加main.c和main.h文件,在main.c文件中添加源文件的架构注释,如下面代码注释所示,如果是在其他.c文件中,则把开头的工程说明删掉即可,可以在keil工具中添加自定义代码,把这些注释加进去就行,方便以后的代码编写。4.代码的架构写好后,就要开始编写功能代码了,一个文件里函数声明、函数实现和变量定义等都根据注释的区域来写,所以多少源文件和头文件的风格都类似,举延时函数的例子,其他代码写法都相似,就靠多写多练了,写多了就熟悉了。指针是地址,指向内存中的变量。...原创 2022-08-31 23:10:16 · 1702 阅读 · 0 评论 -
STC15单片机-新建工程的文件夹说明
7.编译时STC15.h头文件没找到情况,打开STC-ISP工具,先选好单片机型号,然后右边选项框中点击keil仿真设置,点击添加型号和头文件到keil中,选择C51的安装目录,点击确定;5.设置头文件的路径,回到keil,点击魔术棒,点击C51,点击Include Paths右边路径选择框,然后添加,选择app和user文件夹,最后点ok。2.修改工程文件生成的路径,点击魔术棒,点击Output,更改路径,选择obj文件夹,同时勾选生成hex文件,新建另外工程时要再设置一遍。根据目前学习进度,选择。...原创 2022-08-31 22:57:30 · 2378 阅读 · 0 评论 -
STC15单片机-GPIO模式介绍以及LED灯闪烁
高阻态电路 指的是电路的一种输出状态也就叫做高阻输入,高阻态是一个数字电路里常见的术语,指的是电路的一种输出状态,既不是高电平也不是低电平,如果高阻态再输入下一级电路的话,对下级电路无任何影响,和没接一样,如果用万用表测的话有可能是高电平也有可能是低电平,随它后面接的东西定。因为是高电平才点亮,默认GPIO是准双向口,是弱上拉的,输出的高电平电流小,才270uA,驱动能力弱,LED灯亮度小,配置为推挽输出后,强上拉,输出高电平有20mA,电路已经接上限流电阻,所以LED灯亮度比弱上拉的大。...原创 2022-08-31 22:32:43 · 4740 阅读 · 0 评论 -
STC15单片机内部RAM讲解
空间分配先使用data,data不够再用idata,idata使用时要预留22个字节以上的空间进行压栈,idata不够再使用xdata,这样的程序效率是最高的在1T的模式下,程序运行速度比12T的快很多,压22个字节和6个字节效率差不太多,如果不是很熟练,少用using,如果熟练了,可以使用using优化多去project.m51文件查看内存分配情况,尽量把前面的空间用完再用后面的,不要浪费。...原创 2022-08-30 14:48:57 · 3482 阅读 · 0 评论 -
STC15单片机-PCB设计
具有非常重要的作用:1.因为都是数字IC,其内部有许多开关的,在开关打开瞬间是需要电流的,而电容就可以为其供能,然后电流再通过地接回到电容,组成了一个环路,如果环路太大,则EMC就大,会有不好的影响,所以这电容也要尽可能靠近IC的电源引脚,减少环路面积;地平面:主要是出去的信号线,要有回来的路径,一般是通过地平面回来的,也组成了环路,所以这里的环路也要小。优点:内存小,完全免费,不存在收到律师函问题,上手方便灵活,中小公司用的比较多。 一般有1,2,4层板,看产品的复杂度和成本选择板层,板层越多越贵。..原创 2022-08-31 22:47:15 · 927 阅读 · 0 评论 -
STC15L2K32S2芯片介绍与实验板原理图分析
随后才能保持正常电流,就在这抖动过程中,WIFI模块供电不足,会进入待机,影响工作,所以要加一个大电容为WiFi模块供电,PCB设计时外部电源先接到电容一脚,然后电容另一脚再接到WiFi模块,这样WiFi模块不工作时电源给电容充电,工作时电容给WiFi模块供电,让模块工作稳定;所用芯片是SP3485EEN-L,也有其他的型号,C26、C27也是稳定作用,R25、R27是上拉电阻,这样A、B总线默认就是高电平,如果不加上拉,则AB总线的初始值是不稳定的,有可能是0也有可能是1,会对软件编码造成干扰;...原创 2022-08-29 14:47:52 · 2410 阅读 · 0 评论 -
实战方案评估以及系统框图
但是在一些情况下,这样的条件显然是太苛刻了,如5V转3.3V,输入与输出之间的压差只有1.7v,显然这是不满足传统线性稳压器的工作条件的。但如果只用一个LDO完成供电的话,从28V降低到3.3V有大约25V的压差,功率等于电压x电流,在WIFI模块或者数码管启动时,电流大约有1A,所以功率P = U * A = 25V*1A = 25W,功耗太大了,所以另外设计了一个。要求2:低功耗,待机情况下1.1uA,要做到1.1uA,就要使用LDO,输入的电压通过LDO降压稳压到3.3V给单片机供电。...原创 2022-08-28 13:46:57 · 262 阅读 · 0 评论 -
单片机项目需求以及项目流程
需求(再罗列一遍)+技术评估+系统框图(整个系统的架构图)+时间评估(每一阶段完成什么功能)公司项目需要完整的流程,每一步该做什么,在项目开始前要有总体规划,当项目中出现问题有源可溯。项目流程根据公司不同而不同,不过大同小异,合理安排好工作内容,事半功倍。三个主要来源:1.客户需求 2.市场调研 3.产品版本升级。设计一款产品需要什么功能,达到什么效果。...原创 2022-08-27 13:48:52 · 828 阅读 · 0 评论