你以为的单片机开发,喝着咖啡敲着代码,一切尽在掌控。实际上的开发,调了一下午串口,最后发现是波特率算错了,下载程序 芯片死活不识别,结果发现线松了,程序跑飞,看了一天会编,发现数组越界最绝的是功能终于好了,一上电现场就玄学。
粉丝3.8万获赞7.6万

c 语言和 c 加加只能写控制台程序,他们是辣鸡语言吗?是的,他们太简单了,简单到只用几行代码就能让这三个硬件工作起来了。一起来看看辣鸡语言是怎么控制这几个硬件的。 nice! 首先编程软件用的是 arduino, 想要安装的可以先看这个视频哦,安装完成,我们打开软件,它就长这个样子。然后呢,我们需要把这块 esp 八二六六开发板接到电脑上通电 啊,感觉全身充满了力量,哈哈哈哈!接着我们给三色 led 灯模块接线, 大家记住这几根线颜色和针角的对应位置,然后我们可以发现开发板上面有两排字母,每个字母背后都有一根针角,它的背后长的是这样子的。接着我们用刚刚的三色 led 灯模块,黄线接到符号为 g 的 针角上, 你不要过来,好恶心,快走开哦,疼!接下来呢,绿线接到第一针脚上,红线接到第二针脚上,蓝线接到第三针脚上,不要啊,不要啊 不要啊!哈哈哈哈!然后我们就可以写代码了,先定义针脚的值,然后第一、第二第三设置为输出模式,然后我们在主循环中对第一针脚输出高电瓶 d 二 d 三输出 d 电瓶暂停一秒后,所有引脚输出 d 电瓶再暂停一秒。接着我们就可以点这个按钮把程序翻译上传到开发板上了,经过几秒钟就可以看到红灯一闪一闪的亮起来了。 nice! 接着蜂鸣器像我这样子接线,记住线的颜色,子线接到开发板的 d 四蒸脚上, 灰线接到开发版的三 v 针角上,然后我们就可以定义第一次针角来控制蜂鸣器了,在灯亮起来的时候响起来,灯灭的时候停止 第一针角,目前控制的是红灯,现在我们改为控制第二针角,然后我们就可以点击编辑上传了,等待几秒有惊喜哦! 喂,你能解释我头顶上这个颜色是怎么回事吗?哈哈哈哈,所以 c 元和 c 加加太辣鸡了,太简单了。

我们今天开始新的课程, esp 三二项目开发智慧生活,主讲是零一公方文老师现在介绍的是基础知识。 本课程的特点有三个,第一个是动手性强,也就是每一节课都有硬件和软件的结合,这样的话理论和实践穿插着学习。第二部分是强化编程, 阿丢鲁的编程是西和西加加的混合,在这个课程里面,我们强化了西加加的面向对象编程,注重培养编程的思路。第三个是注重积累, 鼓励学员封装自己的程序,其实很多程序都是站在巨人的肩膀之下, 那么我们简单封装一下,变成自己比较好用的、试用的程序,就可以很好地强化我们对这个知识的理解。 这个课程其实不是我们发布的第一个 esp 三二的课程了,之前已经发布了三套,分别是这三套, 这个是最简单的,然后这个就以项目为主,那么这个呢?就比较复杂,也是项目为主,但是它是一个全面的、系统的。但这三个项目呢? 但这三个课程它都是米斯奇图形化编程的。有些朋友就非常不喜欢他们需要纯代码的,特别是越到后面项目越来越复杂的时候,纯代码 再引入一些开发工具,引入一些设计思想,比如说面向对象的编程,比如说各种各类的设计模式,再软硬件结合,这样才符合他们的需要。对于初学者而言, 就难度是从低,这个是最低,一直到这边的高,这个其实是难度高的, 它使用米斯奇啊,实现一个复杂功能是比较高的,这个难度应该算很高, 但从那个模型,从这个设计而言,这个是非常清楚的,它的重构或者说代码调整应该来说比这个要简单。这个是有点像意大利粉啊,一古老,所有内容都放在这里了, 那么我们讲讲这个项目的环境。第一个是这个纯代码的 id, 这 vsco 这个是目前非常受欢迎的,很强大的一个 集成化编程工具,它的提示功能非常强大,其实编辑程序啊,哼,一定要讲究这个提示功能, 那么它翻译的时候其实是通过阿丢鲁 ide 提供翻译服务的,那么我们就是还是要安装这个阿丢鲁 ide, 硬件使用的是 esp 三二开发版,还有一堆的这样的设备和传感器, 还有基础环境是计算机和手机,计算机我们选用的系统是 windows 的 手机,我们建议是用这个安卓的,会比较方便。 vsco 呢,是一个强大的,而且是免费的, 大家可以到这个网站下面去下载,如果你找到要收费的,那肯定是骗人的啊,这个是免费的,下载就行了,另外要小使用到这个,另外要使用到 i do r d e, 我 们到他们的官方网站 下载这个版本一点八点幺九 啊,我们不要使用那个二点零之后的版本,这个版本还是非常的好的,配合 vs code 的 话,可以很好地将这个编程的工作啊,做得非常到位。 安装阿丢了 id 一 其实没什么难度,就是一步步下来了啊,下一步在配置这个安装目录的时候,我们要注意使用的是英文,不要使用中文,然后再下一步,下一步就 ok 了, 那么安装完之后,其实它并不支持 esp 三二开发版,一般需要在线的安装开发版,但我们的网络啊经常出问题,这个我们就选用离线安装的方法, 我们到这个网站上面找到资源下载, 再找到这个 esp 三二离线安装包转到这里,然后是选择这个二点零点九这个版本下载下来, 那这个版本的安装就非常简单了,它没有配置内容,就一步步的执行就可以了。 然后我们打开这个阿九路的 id 一, 第一次打开的时候,它已经默认有一些程序在里面了,我们选择工具 开发板,你会发现这里没有 esp 三二这个开发板,不要着急,我们等待一分钟再把这个 id 一 关掉,重新打开。 第二次打开的时候,我们再选择工具开发版,你就会发现这里有 usb 三二的开发版了。我们选择这个 usb 三二 dv model, 然后这里默认其实已经有代码了嘛,我们再点一下这个按键就翻译,翻译成功的话就说明我们已经安装成功了。 然后就配置库文件目录,在文件首选项,再找到这个, 它叫做项目文件夹位置。其实我们的 adlib 程序为什么这么好写,这么受欢迎?它的结构是这样的,首先是我们自己写的那部分是吧? 另外是开发宝提供的一些库文件,还有我们自行下载的库文件, 可以理解为有三个文件夹啊,有三个文件夹我们自己的比较简单, 内容不多,十个八个的已经很很多了啊,就是你的项目如果有十个八个的文件,已经算是有点复杂了。 另外引用的那些库文件呢?就是可以理解为是很开放的一个资源,为什么这么受欢迎?就是有很多这些库文件,那这些库文件放在哪里?就放在这个位置了,所以这个位置我建议大家修改一下, 放在一个自己醒目的位置,因为有些库文件不断的修改,版本非常多,这样我们下载下来以后就用一个版本就行了。 好,我们配置一下这个库文件的目录,配置完之后我们拿一个程序来试一试啊,这个程序刚好有这个语法啊, in cu 一个文件, 然后我们再点一下翻译,翻译的时候提示没有这个文件或目录, 也就是 in cool 的 这个是 cool 文件,它既不在开发版的这个目录,也不在我们设置的这个 cool 文件目录就没有这个文件,那没有怎么办呢?我们就安装,再点工具 加载库管理库,打开这个界面,输入这个刚才的引入的文件,再点安装就可以了,这里可能有多个,找一个最准确的来安装。 然后我们再讲一下这个 vs code 的 安装,首先是到刚才的网站下载嘛,选择同意,然后 再选一个安装的目录,也是要英文的,选择好之后就下一步就行了,就完成了。 在打开这个 ide 的 时候,我们发现它是全英文的,我们不习惯,不习惯的话我们找到这里有个插件的安装,输入 chinese 中文嘛,然后再 install 安装, 安装完之后这里就出现这个插件,它还提示你是否要改变这个 i d e 的 显示语言。那当然要改变了是吧?不然装来干啥啊?我们就按一下改变它,就关了这个 i d e, 重新打开,哎,重新打开的时候我们发现, 哎,这里就有了,重新打开的时候,这里我们看到再点一下这个东西,你看这些都变成中文了,我们就输入阿丢楼,现在是准备要安装阿丢楼环境,这里有很多个我们选择啊,这个微软提供的, 怎么判断呢?我们看一下这个发布者 v s code 阿迪露,这个就是微软提供的,或者说直接写着 microsoft, 那 肯定就是微软的啊,我们点一下安装就可以了, 装完之后它很快就装完嘛,这个大小比较小,你看这里就很小嘛啊,然后很快就安装完,我们就点一下这个齿轮,再设置 设置,我们看到这个界面有一个 command path 啊,命令的位置,我们就输入这个 debug, 点 e s e, 然后还是 path, 这个 path 我 们指向的是 arduino ide 的 位置,你看都在这里了,这是 arduino ide 的 目录,然后这个是刚才我们选择的这个文件, 配置完之后我们还要配置这个内容,这个内容直接点开是一个 jason 文件,没有图形化界面,要配置,这里就是这个是提醒啊,这个是智能提醒,是最重要的内容。还有这个默认的安装目录 也是分两部分,这两个其实就是库文件,第一个是 usb 三二的库文件,另外它本身 id 的 这个安装目录下面也有一些库文件,这是可以理解为是开发版提供的部分。另外是我们自行下载的库文件,就是我们刚才配的这个位置。 好,我们继续,我们还要继续安装插件,安装 c 加加的插件,为什么继续安装呢? 它其实要使用这个 c 加加的这个编程啊,这种提示你必须要安装,你就算现在不装,后面也会装。安装的是两个微软提供的 microsoft 啊,这两个都可以。 好了,我们现在就试一试,在自己的那里自己的程序建一个目录,自己建一个工作目录,当然也要英文了。新建一个文件夹, 再新建一个这个文件,阿丢鲁的文件要跟文件夹一样,然后我们再 随便给它输入一些东西,在 r d, e 里面选择文件,打开文件夹就打开。刚才文件夹打开之后我们就输这两个东西,这两个方法一个 set up, 一个 roof。 好,我们继续看一下。输完之后呢,我们再找到这个 id 一 的右下角,这里有一个选择开发版类型,我们选择 esp 三二 develop model, 然后再选择这个烧录程序。其实只有一个啊, esp 三二 two, esp two, 然后在开发版的选项就多了很多内容了,这个是外部的存储,如果你的开发版有的,那你可以把它启动啊,这样就可以了,就配置完了这个。 然后我们试一试在 vsco 里面安装酷文件,在刚才的这个文件里面,我们增加一一小句话, in cool 这个东西,意思是引用酷文件 one button, 然后我们再点击右上角那里有个上传,有个变异,我们变异一下就行了, 它会提示,呃, no such file or directory, 另外还有一个波浪线,你看这里有波浪线提示。哎,这句话我看不懂,意思就是说,那么这个时候其实就是要安装库文件了,表明这个开发版 没有这个库文件,我们指定的库文件目录也没有,那怎么安装呢?按 f 一 再选择这个内容, 选择完之后就弹出这个界面了,我们选择 one button, 这个 one button 呢,其实就从这里过来的啊,要输进去,然后选到对应的这库文件 install 安装就 ok 了, 然后再输出端,它就提示,哎,我在下载这个东西,我安装等等的。安装完之后其实是放在哪里的?就放在我们设置的这个文件目录,你看就放在这里了, 然后我们再看一下这个程序,重新编辑就没问题了。那么这个呢,可能就是重新打开 ide 的 时候,下划线是没有了, 然后也有可能是安装完刚才那个就没有了,这个是不一定。另外我们看一下,这个时候 这个文件夹下面已经多了这个点 vs code 的 文件夹,还有这么一个文件, 我们配置一下 output 啊,数值是点斜杠,然后 biu, 意思就是说,哎,默认的缓存呢,就存在这里,这样的话可以加快变异的速度,这个阿丢鲁的变异实在太慢了,能够加快一点是一点点啊。 硬件方面,我们使用的是 esp 三二,这是一个低功耗的高性能的 wifi 和蓝牙的一个双模组的芯片, 我们看一下这个是 type c 或麦克 usb 的 接口,这边是芯片组,然后这边是三十个引脚,也有很多是三十八个引脚,这个都行,没什么问题。 开发板要安装驱动才能被识别,我们可以找厂家啊,安装驱动,这个是 c p 二幺零 x 的, 就不断下一步安装就可以了, 也有一些是 ch 三四零的,也是不断下一步就可以了。有些电脑已经安装了 ch 三四零,那就可能需要先卸载,卸载完之后呢,可以再安装都行。 连接电脑的时候啊,那个线一方面是连接开发版的 micro usb 或泰系的接口,另一方面就连接电脑,这个是有普通的 usb 接口。 我们怎么看这个驱动安装成功了没有呢?在桌面这里点右键, 然后再找到设备管理器,打开之后,在 com 和 lpt 这里,你就会发现有一个新安装的这个内容,根据芯片的不同,它有不同的展示,我们看后面那个就行了。 com 五 com 八, 另外为了让实验更加的方便,就增加了这个扩展板,把这个开发板直接插上去,你看到引脚非常多,接线肯定就很方便了, 三十个引脚的只能对三十个引脚的扩展版,三十八个引脚的就对三十八个引脚的扩展版。另外我们测试一下代码修改这个程序, 在 set up 里面的设置这个引脚二为输出,它对应的是一个板载 led, 然后在循环区里面设置 led 点亮延时,设置 led 芯片延时,再设置输出。 这个时候开发板跟电脑要连接起来,然后再选择这个端口,选择一个合适的端口,然后再点这个上传按钮,在输出的窗口就会提示这些输出的信息。 那我们看那个实验的效果,这个灯啊,每隔一秒钟亮或者熄灭,然后在电脑端那个串口监视器选择合适的端口,这里就输出一些信息了。 本节的重点难点,第一要掌握阿迪洛 i d 一 和开发版的安装,第二 要配置 vs core 的 adobe 的 环境,第三要安装硬件驱动上传代码,要完成第一个程序,那本节的内容就是这样了。

为什么要先从电阻、电容、电感等元系键学起?为什么学习单片机要以五十一为核心?为什么你学单片机只听懂了,但不会设计?学了单片机十几年,却还是感觉一知半解?其实,动手比硬啃理论更重要。用十块钱,竟然就能做出价值几百块的智能设备。 一个八二六六主控板,再加一个继电器,两个源系键加起来也就十块钱。把它们拼在一起,一个远程开关就做好了,手机远程开灯,甚至控制空调都能轻松实现。如果你也想玩转这些,今天这一本真正能带你动手的硬核书,电子设计与单片机应用一百例,他不空谈理论,只带你实战闯关。 从认识元气件、常用基础电路开始,一步步教你单片机编程、 p c p 电路设计,直到完成八个完整项目,比如人体感应、节能灯、防盗报警系统、家庭安全助手等等,只有你不想学,没有你学不会的。 每个案例都附赠电路仿真文件和完整原码,就像有位老师傅在你身边手把手教你。书中还配有视频教程,帮你把零散知识点串联成清晰的技能树。如果你想告别纸上谈兵,做出真正能用、能玩、能展示的电子作品,那么这本书就是你从入门到独立开发的最短路径。

使用单片机点亮一颗发光二极管该怎么做呢?在我们日常生活中,我们知道发光二极管接入电池正负极就可以点亮, 那么我们又该如何用这个单片机来点亮这个发光二极管呢? 那么一块单片机上会有这些密密麻麻的引角,那这些引角有什么用呢?咱们先把它看做成一个可以编程的一个电源,这些引角可以控制有电和没电的输出, 我们要用这块单片机驱动这颗发光二极管,我们先使用对应的引角,这个可以看这个功能图,咱们使用第一个引角 对单片机进行编程。首先咱们利用第一个引脚,并设置为输出模式,让第一个引脚有三点三伏的电,等待一秒后让电源关闭,现在我们来测试一下这个代码。

单片机在外行人看来门槛很高,既要懂硬件,又要写编程,很多人还没有开始就已经被吓到了。而这本创意创新实践电子设计与单片机应用一百例,直接把入门门槛拉到最低,堪称新手入门的指路明灯。它从电阻、电容、二极管这些最基础的元气键讲起, 用通俗易懂的语言拆解核心原理,完全不用怕看不懂。紧接着,一步步循序渐进,将你 pcb 版图绘制、五幺单片机的引导定义, 再到实打实的编程实操,全程跟着学就能稳步上手。书中收入了一百多个实战案例,内容全都贴近日常学习和实际项目开发,实用性拉满。更贴心的是,还额外补充了阿志燕和 s t c 八探片机的拓展案例,不管你是偏向哪种入门需求,都能找到适配的学习内容。随书还附赠配套视频教程和电子知识图, 跟着视频一步步操作,就算是零基础的小白也能轻松跟上节奏,快速入门。而当你玩起单片机,才发现,原来做一个心率检测仪只要十几块,水质检测仪也只要十几块。这本书为你提供了一条掌握电子设计与单片机开发的清晰路径, 避开了枯燥的理论堆砌,直接带你进入动手创造的节奏。无论你是电子专业的学生,正在备战竞赛,还是渴望动手做出食物的爱好者,这本书都能帮你告别一看就会、一做就废的困境,真正把创意变成你手中那个会发光的作品。

如果你没有任何编程基础,又想玩单片机这本创意创新实践,电子设计与单片机应用一百例就是为你准备的。不用敲代码,也不用纠结电路,就连小学生都能学会。他避开枯燥的理论堆砌,直接把你拉进动手创造的节奏,不只是让你看懂就够,更把每个项目都做成了产品原型说明书, 思路拆解的明明白白,代码也经过反复验证,可直接复用,重点教你怎么拆解问题,怎么排查故障,怎么优化方案,彻底摆脱一看就会、一做就废的困境。 再看他的学习路线,书中精选一百个实战案例,如同一百级循序渐进的实践台阶,从最基础的 i o 接口操作起步,到采集并处理传感器信号,再到驱动电机、继电器等执行机构配合按键显示,完成人机交互,最终将多项技术整合,做出真正能用的小型智能系统。 而且你担心的电路太难,问题也被贴心兼顾,复杂知识点都用大白话讲透,还会系统带你掌握之路。电流法、回路电流法、节点电压法这三种电路分析方法,图文结合,重点突出,让你不仅学会怎么接,更能弄懂为什么这样接。构建扎实的技术功底。 不管你是计算机相关专业想跨界深耕硬件,还是备战信息电子类竞赛的技术达人,亦或是纯粹热爱单片机、想亲手做出特色作品的爱好者,这本书都能成为你工作台上随手一翻,拿起就敢开干的宝藏工具书。

是不是觉得三二单片机的配置太复杂了,学起来很头疼?其实只要掌握核心方法,就能够快速上手。不管是五幺还是三二,本质都是配置计算器,只是三二的步骤多了些。 你去看各种库函数的代码,觉得复杂是因为他帮你把配置计算器的步骤分装好了接口,比如点亮一个 led 灯, 你要搞懂的是这个实现的流程,像配置时钟、配置引角模式、配置数率等等,这些步骤要和芯片手册对照起来看。最关键的是别光看视频,一定要边查数据手册一边写代码调试,把 g、 p、 l、 定时器、串口这几个常用的外设吃透,其他的都类似的套路。我 整理好了单面机学习笔记,五幺三二单面机核心的知识点里面都总结了,还学不明白的同学可以看一看里面的内容,查缺补漏,需要的同学留言六六六。

好了,咱们开始上课, 先复习一下上节课的内容。 上节课呢,咱们通过开发板,也就是让这个这块开发板来解正整数方程,他用编程也是用开发板解正整数方程,他的方法是什么方法啊? 还记得吗?一个一个试,一个试对举法,一个一个去试是一个最笨的方法,但是效率是非常高的。什么呀?因为它计算速度非常快, 不在乎你的方法,但是它的速度快,我们复习一下啊,复习一下,以这个为例,五加 m 乘以六等于一百二十, 还记得什么叫方程的吗?记得,反有什么呀?反有未知数,反有未知数的等式吗?还看 x 加 x 乘以六等于二十解这样一个方程,我们用 穷举法怎么样?看黑板用这样的方法,穷举法。 x 等于一的时候,一个个去试,是不是 x 等于一的时候, 五加一乘以六得多少啊?五加三十六等于二的时候呢?等于多少?二等于三的时候呢? 四十八。哎,四十八,这样一个一个去试试,哪个结果呀?一个把这个结果去试,到底等于几的时候?等于二十。我们把这个 这样一个问题通过编程解决。首先我们要给它定义一个变量,这个啊,定义变量 这个问题是可以变的,是我们要求的是不是一个程序的结果,看看编程怎么解决。把这擦掉等于一百二十,擦掉给它放在怎么样呢?左边 定义一个变量 spm, 它是变量,这个是等号吧?是不是等号?是是还是不是? 是两个,两个才叫等号,这个叫赋值语句啊,这个是等号,但是它不是起等号的作用啊,它是赋值语句, 把五加 s 结果乘以六负值给 x x, m 看,到底哪个数等于一百二十啊? s 等于几的时候等于一百二十。 x 的 起值范围我们说是解正整数方程,它的起值范围是从一到多少啊? 三二七六八,三二七六八,因为我们界定了它的数据类型是整数 i t, i c 的 代码 定义变量 x, y 用于存储计算结果,数据类型为 m t, 也就是整数。把未知数 x 也定义为 m t 类型。取值范围是从一到三二七六八。 然后开始试,当 x 等于一时, sum 的 值是多少,当 x 等于二时, sum 的 值是多少。一直知道 sum 的 值等于一百二十时,跳出当前循环, 此时 x 的 值就是方程的解。我们把这个代码上传, 打开上边的记,看一下代码的执行过程, 叉 x 等于一十, x, u m 等于三十六,叉 x 等于二十, x, u m 等于四十二。就这样一个一个去试, 一直试着 s u m 的 值等于一百二十,跳出当前循环,此时 s 的 值是十五,这个方程的解就是 x 等于十五,这就是用穷举法解方程的过程。 这节课我们用这个方法解决一个具体的数学问题。什么问题啊?鸡兔同笼,对,鸡兔同笼的问题,典型的数学问题。鸡兔同笼的问题, 我们先看这一题啊,鸡兔总数是一百,有二百八十条腿。我想跟你说一下,用你的数学方法,咱不用典型的数学方法怎么解决? 不行啊,你姐姐二三八十二一八。行了,你找个东西说一下,谁说一下?谁说一下, 说,你就得说说两个 b, 先假设这个鸡,然后一百,先用一百乘二。对,假设都是鸡,一百乘二等于二百 两百条腿,然后再用二百八十减去两百。对,二百八十,再减去二百。嗯,然后因为兔子有四条腿,鸡有两条腿,兔子的腿数是鸡的腿数的两倍,所以它就八十除以二,八十除以二,是吧? 每只兔子都比每只鸡多两条腿,你都看成鸡了,多出来八十条腿,正好是多出来那个兔子,那两条腿是不是八十二等于多少啊?四十。所以说四十是什么呀?四十只兔子,四十只兔子,六十只鸡,这是咱们数学的假设法,是不是 六十在这,这是我们讲的典型的啊讲课法。这回听老师说吧, 我们用编程,用裁发板,他没有我们聪明,他不会用假设吧,他只会用最简单的方法,最帅的方法。什么方法啊?一个一个去试。现在我们用编程方法来解决这个问题,看一下。 首先我们要定义一个变量, i n t, 哎,快的 一数的整数定义为一百变量,哎,把它设为变量,哎,看一百,然后开始列了啊。列,把一的 用正等数发红的接法。鸡的数量是为什么呀?十。好了,这是我们开始列算式,鸡的数量是十,十, 你说一下,你说一下怎么列? i, 呃, x 乘 x 乘以二, 嗯,一的,你的整数二百八十,二百八十几,二百八十几二。 好,先说一下积的总数是 x 乘的总数, 一百减 s。 对, 差一点啊,我们就定义变量了,定义变量了,就用这个变量 x 减 s, 变回变数, x 乘以二, 一的尾数,加上加上最后一百,一百一百减 x 乘四。哪个啥 等于?呃,等于二百八十。嗯,二百八十,看明白了吧?看明白了,这是啥?鸡的腿的总数加上竖的腿的总数再减乘以四等于二百八十。 同样,我们写到代码中,这个二百八十需要去试的吧。把它擦掉等于。哎, 回啊,这,这没定啊,这应该定右那个是不是?这应该有定界,我们把它读上啊。 再加等于二百二百八十八, 看到了吗?这个再加鸡,这个鸡的个数乘以二鸡的腿腿的总数加上总数太阳一百十啊,减去乘以四,然后下面开始怎么了? 开始试了,假设有一只鸡,哎,看看那个有多少腿。假设有 两只鸡,三只鸡,四只鸡,五六鸡一只试到多少?一分钟 试到多少?孩子是四个 三二七六八。嗯,三二七六八。还有不同意见没有,知道多少。 那你家里面吃到多少啊?兔子二七六八,二七六八。嗯,兔子二七六八还能变出来一个,是不是一直吃到多少 x? 正确, 杨家林是多少吃到多少 x。 一 百。哦, 是吧。嗯,对吧,两位已经说出来了。试到一百就可以了吗?还,还你试试啊,一百脑袋怎么不唱歌了。因为他总数是一百,不可能超过一百,对不对啊?试到一百啊,试到一百,这样就是 好了。这回看代码, 首先定义变量 high, 用于存储鸡和兔的总数,出水值是一百。再定义变量 high, 用于存储鸡和兔的总体数,出水值是二百八十。 用字母 x 代表鸡的个数, x 的 体积范围是从一只鸡到一百只鸡,写入到代码处就是 x 等于一 f 小 于等于太阳, x 等于 x 加一, 接着开始输入计算公式, g 的 个数是 x, 用 x 乘以二就是基数,数的个数是太阳减 s, 再乘以四就是负尾数。 用鸡腿数加兔腿数,把计算结果复制给变量 lab 双口打印 lab 值双口打印机的个数 x 双口打印兔子的个数 pad 减 s。 如果鸡腿和兔腿总数量等于二百八十,跳出。另外我们把这个代码上传, 然后打开创口监视器,观察一下代码的执行过程。 如果有一只鸡,那就有九十九个兔子,一共是三百九十八条腿。如果有两只鸡,那就有九十八个兔子,共是三百九十六条腿,以此类推,这样一直吃下去, 一直是到鸡腿和兔腿总数等于二百八十只,跳出当前循环, 此时 x 等于六十,也就是说有六十只鸡,一百减六十等于四十,有四十个兔腿。 这就是用穷举法解决基数同笼问题的计算方法。尽管计算方法比较笨,但计算速度非常快。我们再让程序运行一次,感受一下开发码的计算速度, 看到了吧,用了不到五秒钟就试出正确结果了。 这就是我们用编程方法解决基础铜锣。现在布置任务 屏幕网络结束之后,打开文件截图,会打开代码一基础铜锣,先打开截图,这个截图刚才我们做的, 再打开这个代码,这是一个框架,这个代码不全,这儿只有三十二部分,看明白了吧?哦, 就突出到三十二部分里去,其他的部分不要给它拆开了,明白吗?你把这个补进去就对了。 把这个代码录入一遍,加深一下,看看如何通过编程来解决基础重头问题? 好了,你知道这个基础重头啊,用代码解决的方法是什么?下面咱们再做一个练习, 打开文件接收柜, 打开代码二拓展练习, 咱们一起看一下这个题啊。我们在解决基础同同的 基础上,我们拓展一下金兔同笼是只有鸡和兔子两个数量,两个量啊,两个月亮,再给我们多一个 三个量在的基础上看这这个题啊。停车场一共停放了一百辆车,共二百九十五个轮子,这个思路是一样的,看着啊,停放的车辆包括摩托车两个轮子的、电动三轮车三个轮子的和小轿车四个轮子的 三种,其中摩托车和电动三轮车停放的数量相等,请问每辆车这停放了多少辆?用基础同笼的思路我们可以解决, 而且思考思考,这呢写的是一百辆车,包括两个轮的,三个轮的,还有四个轮的,比基础同笼啊多一个数量, 二百九十五,一共是二百九十五个轮子,其中两轮的车和三轮车的数量是相当的,我们按照记住相同的方法一步一步去做。首先定力变量, h t 还是用 h 的, 我们 h 的 就是车的总数多少啊, h 的 多少啊? 一百 high 等于一百,再定一个腿,这个腿啊,就刚才车轮 high 是 多少啊?二百九十,二百九十五,对腿,刚才轮子二百九十五。 然后还是设一个变量,设最初的时候,我们的原则一般是设最简单的 鸡兔同笼,我们设两条腿的,鸡三二轮,三轮,四轮。我们设两个轮子的啊,设两个轮子的,两个轮子的是设为变量, 然后我们按照这个思路,两格所有的三格的数量,这个关键一局啊, 按着这个这个数量啊,这个数量关系,我们计算一下,看看通过编程如何解决怎样面对方法, 我们一起来看这个啊。 fire 一 百三手车的总数量是一百 fire 二百九十五,一共有二百九十五个轮子, 用字母 s 来表示两轮摩托车的个数。 s 的 起始范围是从零辆车到一百辆车起始到。代数就是 x 等于一 x 小 于等于太阳 x 等于 x 加一, 创口打印标准总数 left 值创口打印两轮摩托车的数量负值创口打印电动三轮车的数量十六,也就是创口打印四轮小轿车的数量负值。 如果三等车的车轮总数大于等于二百九十五,跳出循环。我们已经把代码的计算公式录入完成了,同学们只需在这个位置输入一个计算公式, 表示出三轮车的数量与车轮的关系,然后计算出三轮车各多少辆。同学们认真思考一下,这个计算公式应该怎么记啊? 好啦,你来说一下, 没做出来没关系啊,等我说完了,听明白了就行了。大部分同学都有思路了啊,看一把, 看一下啊。一百辆车,两轮是四轮,这两轮车是 s 辆,这样一个去找看一下啊,两轮车是 s 辆, 那三轮车呢?三轮车 x, 三轮车也是 x 啊,啊哦,哎,三轮车也是 x, 那 四轮车呢? 从一百零九减去,一百零九减去,还有一百零九减去,还有一百零九减去。对,这是白点, 再减二 x 减 x, 再减 x 也没关系,你减两个 x 或者减二 x, 对 我们这个开关来说没关系啊, 他的计算方法是一样的,我们这个更容易理解。是不是减去两轮车,减去三轮车, 两轮是 x 辆,三轮是 x 辆,四轮车, pad 减去二 x 辆,这个怎么变轮子了啊?看明白,两轮车几个轮子呀?两个两个两个轮子,三轮车呢?四个 四个对它的加起来等于多少啊? 二百九十五,哎,等于二百九十五,这不就列出来了吗?啊,卧槽, 接着别,别让他啊,咱继续说啊。 但是我们写到代码中,把这个要给它擦掉,作为变量来处理。 来车轮数这时候就开始吃了吧,有一辆摩托车的时候有多少轮子?两辆摩托车的时候,三辆摩托车的时候。好了,现在我看一遍看着啊。 like 等于 x 乘以二,两轮车 加上 x 乘以三,三轮车加上 like, 减去 x, 再减 x, 然后乘以四四个轮子。这回手头看一下 两轮车多少辆?三十,三轮车三十,四轮车三十,对了吧, 叫我开车吧,你说吧。 没做出来没关系啊,但是我讲的重要是我讲的这个过程,你听明白了就行了啊。 如果哪位同学有兴趣,你可以把这个题啊,你想一想啊,回去可以想一想啊,不通过方程怎么解的 对吧? 还在那一碗汤呢,等他没有呢。 你们听着, 你输入代码的时候,不要给你数学写的是二 x 三 x, 这样写的是出错的,你必须要有乘号,明白吧?中间要有那个星号啊,要有星号不能直接连写。 好了,时间差不多做完了,做完了就可以走了啊, 没做完的妹子不着急呢,还有十分钟呢,我让我的傻子过来了,没做完的。不是让我让我的傻子过来,没做完的。不要偷懒啊。已经把它完成了, 没做完事。

大家好,我是熊大,今天我们要来实现按键功能。 第一步,先找找按键住在哪,快看快看,按键 k 一 乖乖连在单片机的 p 三二引脚上哦!按键 k 二则连在 p 三三引脚上了。第二步,给按键起个好记的小名,红定义超好用。具体怎么写呢? 看这行代码,警号 define k 一 p 三二,意思就是以后只要写 k 一 就代表 p 三二,是不是超简单?那我们再给 p 三三也起个外号,警号 define k 二 p 三三,这样后面写代码的时候直接喊 k 一 k 二就行。 第三步,给按键做出使化体检。要让按键乖乖工作,得先看手册设置一下哦!手册上说了,要把按键设置成准双向口,就得把 p n m 零和 p n m 一 都设成零零,那我们就照着做, p 三 m 零等于零, p 三 m 一 等于零。搞定按键的输入出使化就完成了。第四步,写代码,实现超好玩的按键功能。 先做个简单的,按下 k 一 led 一 灯就亮,松开手灯就灭。看,就这么几行代码一下子就实现了。 再来个更有意思的,按一次 k 二,灯亮,再按一次灯灭。 哎,等等,这一行代码好像写错了,没关系,我们改一下。 好了,我们这期就到这里吧,我们下期见。

以前玩单片机、互联网,那你得从摩电、数电开始学起,然后学微机原理。单片机原理现在不用了,只要你会用电脑,两三天就能上手。因为针对各式各样的开发需求,市面上有现成的模块。比如你想做一个自动给植物浇水的系统, 那么单片机加水泵,再配合一个土壤检测模块就可以搞定。再比如,你想做一个语音识别装置,控制家里的空调,一个单片机配一个语音识别模块,再加一个红外发射模块就可以了。有朋友说,不会编程单片机的程序,不像软件开发那种程序一样的,动不动几千行,单片机的程序一般也就十几行代码。 另外,在实际开发应用中,不像考试,我们不需要把它全部背下来,记不得了,把别人的代码复制过来修一修改也是可以的。学互联网不难,会用电脑就能玩。 这本电子设计与单片机应用一百例,为你提供了一条掌握单片机开发的清晰路径,它没有堆砌复杂的理论,而是引导你直接动手实践。书中精心设计的一百个案例,就像一步步搭起的阶梯,从最基础的元气件入门,逐渐过渡到传感器、数据处理、执行、机构驱动,再到实现完整的人机交互,最终能够综合运用多种技术, 完成真正可运作的小型智能系统。每个案例都附赠电路仿真文件与完整原码,就像有位工程师在你身边实时调试,重点在于教会你如何思考和如何解决问题。这本书不只是一本技术教程,更能成为你工作台边常备的灵感手册,与实践伙伴陪伴你将创意一步步转化为看得见、用得着的电子作品,强烈推荐!

这节课我们来看一下 return 语句的作用。上节课我们学习了函数的一般格式,我们形象地把参数列表叫做输入接口, 把返回值叫做输出接口,那么根据有没有输入,有没有输出,把函数分成了四大类,那么我们在这四大类里面找一下 return 语句。第一类,没有输出,没有输入,这里也没有 return 语句。 第二类,没有输出,有输入,这里也没有 return 语句。第三类,有输出,没有输入这个函数,它有输出数据,而且输出的数据是昂萨特类型的,那么我们就要通过 return s 将 s 的 数据输出。 这里的 return 除了输出一个数据之外,它还有一个隐藏的功能,就是立即退出这个函数, 这是我们总结的第一点。第四类,有输出有输入的函数,这还是一个有输出的函数,输出类型是昂三的叉类型的, 同样通过,而且必须通过 return 这条语句将 t 的 值输出,也就通过 return 语句输出数据。 这里 return 语句除了输出数据,它还有一个隐藏功能,还是立即退出当前这个函数。这是第三类和第四类函数有 return 语句。那么之前的第一类和第二类有 return 语句吗?可以使用 return 语句吗? 我们先看一下第一类没有输出没有输入的函数,这里我们同样可以加一条 return 语句, 那么执行函数遇到 return 语句,就会立即地跳出这个函数,那么下面的 a 加 b 复制给 y, 这条语句永远都不会执行的, 那么编辑器看到这样一条语句就会报错, a 加 b 复制给 y, 这条语句永远不会执行,就是一条无效的语句,所以说我们会把 return 语句放在一个 if 条件里,如果条件是真的,那么就执行 return 语句,就会从这里立即的跳出这个函数, 如果条件是假的,那么才会执行下面的 a 加 b 复制给 y 这条语句。同样这里我们总结一下, return 可以 立即地退出当前这个函数。之前我们都是在一个有输出的函数当中使用,用 return 输出数据,现在它也可以在无输出的函数当中使用, 注意,这是一个没有输出的函数,所以说 return 后面什么都不加,它仅仅起到一个作用,就是立即地退出当前这个函数。 接着我们看一下第二类没有输出有输入的函数,这里没有输出,但是也可以加一条 return 语句,那么函数执行到 return 语句,就会立即的跳出这个函数,那么下面的 i 加 k 复制给 y 这条语句就永远的不会执行到, 但这种写法编辑器会报警。所以说一般我们把 return 语句放在一条 if 条件判断里,我们再次的总结一下,首先 return 可以 立即退出当前这个函数, 也可以在没有输出的函数当中使用,也就是这四类函数, 也就是在这四类函数当中都可以使用 return 语句。只是当这个函数如果是一个没有输出函数的时候,那么 return 后面就不加常量,不加变量,因为它不需要输出一个数据,这里需要注意一下。 接着我们再举一个例子,这是一个没有输出,没有输入的函数,条件一判断,如果是真的执行语句,一执行 return, 那 么就会立即的跳出这个函数,下面的语句就不会执行了, 如果条件是假的,那么会判断条件二,如果是真的,执行语句二执行 return 又会立即的退出。如果条件是假的,那么才会执行下面的语句三,语句四。从这里我们又可以总结出一个点, 这是之前的总结。从这里我们可以看出, return 语句可以放在任何一个位置,因为我们之前的想法都是 return 语句放在最后,主要作用是传输数据,其实 return 语句它可以放在任何位置, 还有一点就是可以多次的出现,而不是只出现一次,放在最后它可以多次的出现。我们再看一个例子, 这是一个外循环,这是一个内循环,把一条 return 语句放在内循环,就是多层循环里面, 那么 return 语句可以跳出这两个循环,跳出这个函数吗?它是可以跳出这个函数的,还是遇到 return 就 会立即的跳出这个函数, 那么这个循环嵌套语句只会执行一次。语句一之后遇到 return 就 会立即的跳出这个函数,那么下面的语句三和语句四也不会执行。 这是我们前面总结的一些东西,这里我们再次总结一下,就是它即使深陷多层循环语句,也会立即的退出这个函数。 return 的 作用,这样看起来是不是有点多?有五个句子需要记住,其实可以把它总结成一句话,总结成一句话就是在函数内部,如果想要跳出这个函数,可以使用 return 语句, 但是 return 语句它的附加功能就是在一个有输出的函数当中,它可以帮着送出数据。 之前我们学习过函数的执行顺序,我们再看一下 main 函数,从上往下执行,遇到函数调用函数,接着是执行函数, 执行完函数之后返回到 main, 接着执行下面的语句。如果在执行此函数的时候遇到 return 语句,那么就会立即跳出这个函数,接着执行下面的语句, 这里的 return 返回箭头是一个虚线,说明它有一点特别,它特别的地方就是帮助输出函数,送出数据。接着我们来看一下程序,还是在我们的单片机上来练习程序。首先是函数声明, 接着定义两个变量,来到函数的定义,这个函数是实现一个除法功能,它有两个输入,一个是被除数,一个是除数,还有一个输出是昂萨纳恩特类型的。在函数内定义一个局部变量商。 if 条件判断语句,如果除数等于零,那么就返回一个值,零 就从这里直接的跳出这个函数,下面的语句他就不会执行了。如果 if 条件不成立,就会执行下面的语句,接着返回商,来到 main 函数, 调用除法子程序,输入两个数据,一个是一百二十八,一个是零,那么删除的结果是零,复制给 a。 第二次调用除法函数,输入两个数据,一个是一百二十八,一个是二,那么删除的结果是六十四,就会输出给 b, 接着输出 a 的 结果,输出 b 的 结果,自己可以在单面机上练习一下。好,这节课到此结束,拜拜。