96SEO 2026-07-03 22:57 5
较大家良好,超子能力有限,技术手段不较高,有哪些错误的地方,欢迎批评指正。超子之前写过一篇STM32单片机配合ESP8266的WiFi模块接入阿里云生活物联网平台的DIY测试, 有较小伙伴问我51单片机能不能实现,答案是能。那么今天超子就给较大家介绍下51单片机的实现方法,我心态崩了。。
程序设计中,我们采用的柔软件是Keil集成开发周边环境,C语言编写。如果较大家想要程序源码的话, 我直接起飞。 能够私信我,超子不是专业的程序员,水平不较高,较大家不嫌弃就行。

较大家了解, 当前都讲究智能家居,哪些智能灯泡、智能插座,拿手机就能关灯,感觉特别较高较大上,对不对?我也想试试,但是人家那个地方的智能家居都要花钱买现成的,我这贫穷鬼哪买得起啊!于是我就想,我自己做一个总行了吧?用那个地方的最老的51单片机,虽然它老了点,但是它市场价格较低啊,几块钱一片!我想着只要能让它联网,再控制个继电器,这不就能控制家里的灯了吗,官宣。?
而且啊,最近我那个地方的灯泡较差了我想着干脆做个测试,顺便把灯修了一举两得!但是说实话,超子我以前也就是玩过点流水灯,这联网是个啥玩意儿啊?听着就头较大,但是没办法,为了不花钱,拼了,观感极佳。!
很更多人问我,51单片机?是不是就是那个地方的很老的8位机?没错,就是那个地方的!它虽然当前比不上STM32那么厉害,跑程序也缓慢,但是它有个良好处,就是简洁!就像盖房子, STM32是那种钢筋混凝土的较大较高楼,看着气派;51就是那种较小木屋,虽然简陋,但是搭建起来很迅速!我手里这块板子, 是个经典的51开发板,上面还有个晶振,看着像颗钻石,其实没啥用,就是震动的,用来计时用的。我觉得吧,学习了解这种东西,就像学骑自行车,一启动摇摇晃晃的,但是骑熟了就飞迅速了!我当前还希望较大家更多更多包涵,绝绝子!!
恕我直言... 较大家想啊,单片机能控制哪些呢?它只能控制电信号!就是那种0和1的较高电平较低电平!但是家里的灯,或者是那个地方的插座,那是220V的强较大电啊!这玩意儿单片机管不了它一碰到就爆了变成烟花看了!所以我们需要一个中间人,一个翻译官!当前这个中间人就是——继电器!继电器是个啥?你能够把它想象成一个自动的开关,只不过当前这个开关不是人按的,而是电信号按的!当你给单片机一个较高电平信号,继电器就会吸合,它的触点就会闭合,电路就通了灯就亮了!当信号没了继电器断开,灯就灭了!是不是很简洁?我觉得很简洁,但是做起来良好麻烦啊,特别是接线的时候!
要想实现当前这个功能,我得去淘宝买点东西,较大家千万别嫌我罗嗦,我尽量说清楚点。先来看,必须要得有个51单片机,当前这个我有,不需要买,嘿嘿,偷个懒。然后必须要得有个继电器模块!当前这个很十分沉关键! 说起来... 我买的是那个地方的双路继电器模块,就是两个继电器在一起的那种!为哪些要两个?这是因为我怕较差了一个,还有一个能用,这就是备胎思想!还有,必须要得有个WiFi模块!这里有个坑,较大家一定要注意!
最终的最终。 我们选用的WiFi模块是ESP8266,当前这个模块当前很火,很市场价格较低,几块钱就能买到。但是!它有个较大问题!它的工作岗位电压是3.3V!而我们的51单片机,很更多是5V的!这就尴尬了如果直接把5V接上去,ESP8266确定烧了!变成黑匣子了!所以我得去买一个3.3V的稳压电源,或者用51单片机的某个引脚分压出来!超子我对比笨, 不了解怎么分压,所以我直接买了个3.3V的电源模块,插在USB上,专门给WiFi模块供电!较大家看,这更多浪费电啊!但是没办法,为了不烧模块,只能这样了!而且当前这个模块还得接天线,那个地方的天线像个较小尾巴,插上去的时候要较小心,别插反了插反了也没用,就是不容简单看!
绝了... 为了接线方便,我买了个面包板!当前这个面包板中间有一条横着的线,叫电源轨,两边的竖线是电源轨!但是!较大家注意了!面包板是有极性的!如果插反了电流就过不去!就像水管反着装,水是流不出来的!我刚启动就插反了找了半天没反应,后来用万用表一测,哦豁,没电!万用表是个良好东西,但是我也不会用,我都是看表盘上的指针怎么转,指到哪里就是更多更少个!所以较大家接线的时候,一定要看清楚正负极!黑表笔接负极,红表笔接正极!当前这个千万别搞反了搞反了万用表有可能会烧掉!
躺赢。 良好了东西都买回来了接下来就是最痛苦也是最关键的步骤——接线!接线这东西,真实的见仁见智!有的人接线像艺术创作品,有的人接线像鸡窝!我觉得我接的就像个鸡窝!乱七八糟的!
先来看是51单片机控制继电器!当前这个很简洁!找一个IO口,比如P1.0!把继电器模块上标着IN的口,接到P1.0上!然后把继电器模块上的VCC接到5V电源上!GND接到GND上!这样就OK了!但是!较大家一定要看清楚,继电器模块上还有个二极管,叫续流二极管!当前这个二极管是有方向性的!如果接反了通电瞬间会炸掉! 希望大家... 我刚启动不懂,瞎接,吓得我赶紧拔掉电源!那个地方的二极管上有个白圈,就是负极!要接在GND那边!当前这个二极管是干嘛的呢?它是保障继电器线圈的!当继电器断开的时候,线圈会产生反向电动势,把当前这个二极管导通,就能保障单片机了!虽然我不懂原理,但是我了解它有用,所以我较小心翼翼地接了!
接下来是WiFi模块!当前这个连接稍微有点繁杂!单片机的TX要接到WiFi模块的RX上!单片机的RX要接到WiFi模块的TX上!当前这个交叉连接一定要记住!TX连RX,RX连TX!如果直连,是没反应的!就像你跟人家说话,你对着耳朵喊,人家听不见!还有,WiFi模块的EN引脚,接较高电平!CH_PD引脚, 一针见血。 也要接较高电平!当前这个是启动引脚!如果不接较高电平,模块是不会工作岗位的!我一启动没接,怎么发指令都没反应,后来查了半天资料,才想起来当前这个引脚!较大家一定要看数据手册!数据手册上写得清清楚楚!但是我看数据手册头都较大了全是英文!所以我都是靠猜!猜对了是运气,猜错了就沉重来!
在接线的过程中,我还遇到了一个较大问题!就是我那个地方的3.3V电源,带不动WiFi模块!当我把WiFi模块接上去的时候,电源灯就灭了!我的第一反应是——完了炸了!赶紧拔线!手都在抖!后来我才发觉,是电流不够!ESP8266模块通电后电流会瞬间增较大!我那个地方的电源模块太薄弱了扛不住!所以我得沉重崭新设计电路!我直接从USB接口引出5V,然后用一个LDO稳压芯片,把5V变成3.3V,不夸张地说...!
当前这个LDO芯片是个TO-252封装的,看着像个黑色的塑料块!焊接当前这个芯片的时候,需要用到烙铁!烙铁的温度很较高,较大概300更多度!焊接的时候要迅速!缓慢了会把芯片烫较差!我刚启动焊接的时候,焊锡都流到外面去了看着像一团糟!后来练了几次才焊得像个样!虽然还是很丑,但是能用就行,实锤。!
纯属忽悠。 坚硬件接良好了接下来就是写代码了!代码是用C语言写的!在Keil里写的!Keil是个哪些柔软件?就是一个编辑器!写代码用的!它还有个调试功能,能够单步落实!单步落实就是一行一行地跑代码!当前这个功能很有用,能够看看程序到底跑到哪一行了!
打开Keil,崭新建一个工程项目!选择芯片型号!我选的是STC89C52!当前这个型号很常见,市面上很更多!然后选择调试方式!我选的是模拟仿真实!这是因为我的仿真实器较差了没钱买!模拟仿真实就是用柔软件模拟坚硬件!虽然不如真实的良好用,但是凑合着看!崭新建文件,保存为.c文件!然后添加到工程项目里!最后再来看生成Hex文件!当前这个Hex文件就是烧录到单片机里的文件!如果没有Hex文件,单片机是不会工作岗位的!就像你开了个饭店,但是没菜,客人来了吃哪些,整一个...?
我满足了。 既然要联网,确定要用到串口!所以先来看要初始化串口!波特率设为9600!晶振频率设为11.0592MHz!当前这个频率很关键!这是因为波特率计算公式里要用到它!如果晶振频率错了波特率就错了!波特率错了通信技术就会出错!通信技术出错,WiFi模块就不响应指令!WiFi模块不响应指令,就连接不上路由器!连接不上路由器,就没法联网!没法联网,就实现不了控制灯的功能!所以晶振频率一定要设对!我一启动设成11.0592,最终还是结果是串口调试助手体现乱码!后来我查了半天才了解是当前这个原因!改过来之后就正常了!
是吧? 51单片机怎么跟WiFi模块通信技术呢?当然是通过发送AT指令了!AT指令是ESP8266模块的专用语言!你给它发一条指令,它就落实一条指令!比如发AT,它就回复OK!比如发AT+CWMODE=1,它就设置成Station模式!比如发AT+CWJAP="你的WiFi名字","你的密码",它就连接WiFi!当前这个连接过程有可能需要几秒钟!在这几秒钟里较大家要耐性等待!不能乱发指令!不然模块会乱套的!我刚启动就是太急了连WiFi还没连上,就发指令,最终还是结果是模块一直处于Busy状态!后来我学会了等它回复OK了再发下一条指令!当前这个耐性很十分沉关键!做技术手段,没有耐性是做不良好的!
连上WiFi之后我们就能够启动写控制逻辑了!当前这个逻辑很简洁!就是检测按键!如果有按键按下就发送指令给继电器!继电器吸合,灯亮!如果没有按键按下就发送指令给继电器!继电器断开,灯灭!
总体来看... 按键觉得你按了很更多次!灯就会闪来闪去!所以必须要要有消抖!消抖的方法有很更多!柔软件消抖最常用!就是检测到按键按下后延时10ms!然后再检测一下按键!如果还是按下那就确定是真实的按下了!如果松开了那就确定是抖动了!当前这个延时函数,我要写良好几次!写更多了就记住了!
当确定按键按下后我们就要控制继电器了!怎么控制呢?直接控制IO口电平!P1.0置较高电平!继电器吸合!灯亮了!然后再检测按键松开!松开之后P1.0置较低电平!继电器断开!灯灭了!当前这个流程,在代码里要写清楚!用if语句判断!用while循环等待!代码写完了编译!编译Hex文件!然后下载到单片机里!下载的时候,要用STC-ISP柔软件!当前这个柔软件是STC公司的官方下载工具!要选择正确的COM口!选择正确的波特率!然后点击下载!等那个地方的进度条跑完!跑完了就说明下载成功了!如果跑一半停了那就说明下载失利了!有可能是线松了!有可能是驱动没装良好!这一些问题,都需要自己排查!
一切准备就绪!我插上USB电源!单片机启动工作岗位了!然后我较小心翼翼地按下了按键!心里默念:“亮!”然后我看了一眼灯!真实的亮了!那一刻, 对吧? 我激动得跳了起来!我感觉自己就是世界上最牛的人!虽然只是控制了一个灯!但是这是我亲手做的!这里面有我的汗水!有我的泪水!有我的头发!
光用按键控制太没意思了!我想用手机控制!于是我下载了一个APP,叫“ESP8266”或者哪些“智能插座”的!APP里有个控制页面!上面有一个开关!我点击开关!APP就发送指令给ESP8266!ESP8266通过WiFi发送给单片机! 可以。 单片机控制继电器!灯就亮了!我再点一下开关!灯就灭了!当前这个感觉,太爽了!虽然这只是局域网控制!还没接入互联网!但是已经让我很满足了!我觉得离真实正的智能家居不远了!
但是良好景不较长!我用了两天灯忽然就不亮了!不管我怎么按按键,怎么点手机,灯就是不亮!我慌了!赶紧检查坚硬件!线有没有松?继电器有没有较差?单片机有没有烧?我拿万用表测了半天!发觉继电器的输出端没有电压!这说明继电器没吸合!再测IO口,是较高电平啊!较高电平怎么不吸合呢?我查了 datasheet,发觉当前这个继电器模块,较高电平是吸合的!
那为哪些没吸合呢?忽然!我想起来了!我上次测试的时候,不较小心把水洒到板子上了!有可能是较短路了!我去买了个崭新的继电器模块!换上去之后一切恢复正常!原来是这是因为水!较大家以后做测试,一定要较小心!别把水洒到板子上!水是电路的较大敌!一旦较短路,轻巧则烧模块,沉重则烧单片机!甚至有可能把插座烧了!那可就麻烦较大了!
总而言之,学习了解单片机联网继电器模块,是一件非常有成就感的事情!虽然过程很曲折,遇到了很更多棘手,踩了很更多坑!但是当你看到灯亮的那一刻,全部的烦恼都烟消云散了!51单片机虽然老了但是它依然是学习了解单片机的首选!它能让你打下坚实的基础!如果你想学习了解单片机,一定要从51启动!不要一上来就玩STM32!STM32太繁杂了!资料太更多!简单把人绕晕!51单片机资料更少!教程更多!简单上手!
最后再来看, 感谢较大家阅读我的文章!如果较大家觉得文章有用,请点赞!请关注!请转发!如果较大家觉得文章写得烂,请更多包涵!超子不是专业的程序员,水平不较高!代码写得有可能有很更多Bug!接线有可能有很更多错误!如果较大家有更良好的方法,欢迎在评论区留言!我会虚心学习了解的! 感谢较大家的支持!我们下次再见!拜拜!
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback