设计与开发

51单片机深入 51单片机学习三步走

小编 2024-10-12 设计与开发 23 0

51单片机学习三步走

回想起我初学单片机到现在已经有六年了。学习期间使用了51单片机、飞思卡尔单片机、STM16、STM32等单片机。每次接触新的单片机我首先会熟悉它的基本开发,然后再通过项目的实现去深入的了解它。

大家都知道51单片机是最容易学习的,不仅因为它的编程简单,还因为网上的资料非常丰富,查找起来非常的方便。因此,想从事单片机开发的人,一般将51单片机作为入门开发的首选。而我也不例外,我在学习51单片机的时候,基本上是按照这个思路来学习的。

第一步(熟悉流程):因为我是学电子专业的,最开始我先是用面包板自己做了一个51的最小体统,为了更直观的去感受单片机我就加了一个数码管上去。

至于编程方面开始的时候我并没有刻意去背,主要是对着别人给出的模板代码然后自己编辑一次,就是对着照抄(绝对不是复制粘贴如果是复制粘贴自己就会废掉),然后把自己写的程序烧录到单片机中去运行看单片机能不能正常的按照程序工作。

第二步(进阶工序):培养出一些感觉以后我就入手了一块51单片机开发板,然后开始去深入了解51这款单片机。板子刚回来的时候我没有看视频教程,而是还在跟着课本走,现在看来当时真的是有点犯二。当时那天的学习都是感觉怪怪的,后来就跟着视频走,通过学习完板子上的功能也就大概的了解了51单片机的作用。

程序方面就是开始进行修改,就比如说八位流水灯原来是从左到右,现在改成从右到左,1、3、5、7亮2、4、6、8灭,就做这些最简单的修改,自己从新编写对应的程序然后再进行运行。简单了来说就是建立自己的逻辑,学会灵活的使用,把别人的程序变成自己的程序。

第三步(项目实战阶段):当时我们要做毕业设计我和另一个学习软件的同学组成了一个小团队,选了一个小项目进行开发。那个时候条件比较艰苦,主要是因为我们两个没钱想节约一点,在利用之前的开发板的基础上,再加了一个简单的外设,这个外设是我们纯手工制作的。我们当时就耍了一点小聪明,先做外设然后用开发板来测试,确认外设没问题后,再回过头制作51板。然后通过外设来测试自己做的板子是不是能正常工作。就这样我们的第一个项目以及毕业设计就完成了。

上面的三个学习步骤就是我自己学习51单片机的全部过程,我自己偏动手的操作比较多,现在可能没有这种艰苦条件了,很多东西都是现成的,但是动手实践部分也是不可缺少的,有机会就多动手,毕竟动手也可以收获很多的经验,对于以后工作也有很大的帮助。

想要一起学习单片机的朋友,评论”我要入门“,有惊喜,加入我们,就可以与导师一对一互动,快速成长

已经学过51单片机,如何进阶?我来教你

大家好,我是小麦,最近有朋友问,已经学过51单片机了,如何进阶?

问题

事情是这样的,他在本科时期已经有相应的单片机开发经验,做过简单的项目,流水灯,倒计时,红绿灯,后面该如何提高呢?

首先我感觉得给进阶下一个定义,也就是明确也学习目标,怎么样才算进阶?我掌握哪些东西,可以独立完成哪些开发任务,才算达到了进阶的目的呢?

如果单纯是单片机开发的进阶?

我认为入门的阶段是这样的:

如果刚开始以51单片机起步,能基于开发板做简单的项目,比如搞个流水灯,再复杂点会做电子万年历(DS1302+LCD1602 )就挺不错了;如果一开始就上STM32了,那么能在常用的STM32开发板上做一些功能,实现一些小的功能,或者能用CubeMX配置和初始化代码,然后做一些项目;

我认为的进阶是这样的,需要掌握这些;

首先我觉得硬件设计是必要的,能根据需求,进行硬件开发,进行原理图设计,PCB的Layout,绘制简单的双层PCB板;在进行硬件设计的过程中,可以试着抄一下已经开源的原理图,或者一般集成电路的DataSheet中都有相应的参考电路,根据这些参考电路进行原理图设计,后面可能会进行一些修改,在新的改版中进行修改即可。焊接技能,如果有最好了,没有的话,可以在PCB打样的时候找厂家进行贴片,配套服务还是很不错的,节省了时间成本;样板到了之后,就要动手对板子进行调试了,这时候会比较复杂,配套的技能包,比如示波器如何使用如何捕获波形如何使用万用表 ?有时候问题会比较玄乎,感觉可能在硬件上,又感觉在软件上,这里建议最好有一个方案验证板(至少保证硬件没问题);最后是编写安全可靠的代码,当然如果移植性好,代码框架好最好了;

之前也有朋友问我,自己想做一些DIY项目,软硬件都自己设计,该如何学习?他是搞互联网专业的,做嵌入式单纯是爱好,享受生命在于折腾的快乐而已;

硬件设计

新手建议使用Altium Designer,教程比较多,国产软件立创EDA也不错,开源的KiCad也可以使用,选一款就行,软件都大同小异,不要在纠结选择哪一款软件上而浪费时间,我个人建议使用Altium Designer,下面简称AD;

网上有很多免费的教程,可以去搜一下,看完教程一定要自己尝试着设计一个电路,可以简单一点,设计一个单片机的最小系统。

链接:https://pan.baidu.com/s/1yKfsttgIBeKKMK65m9H91g

提取码:pzsz

软件设计

单片机的编程开发是必须要掌握C语言的,汇编语言可以简单能读懂就行,调试的时候能简单看懂反汇编就行,所以要把主要精力放在C语言上,其实,初期C语言会常用的语法:

循环:for,while分支:if else,switch

就可以做很多事情了,但是后面还需要进阶,因为写出健壮高效,可复用,可移植的程序,只会这些还远远不够。

好了,我们学习了C语言是为了开发单片机的,是要直接对硬件进行操作,直接操作单片机上的外设寄存器,所以

这里以STM32举例,通常我们需要熟悉常用的接口和协议,和一些常用的外设,后面你会发现,不论是什么厂家的单片机,其实都大同小异;

比较常用的,我们会遇到GPIO,TIM定时器,systick,UART,I2C,SPI,CAN等;

一般来说,像STM32这种硬件平台,前期使用的人很多,网络资源非常丰富,很多时候会Ctrl+C和Ctrl+V就行了,另外ST提供了cubeMX这种工具,初始化根本不需要人为干预,但是有时候过于依赖工具,往往会被工具反噬,我就遇到过用cubeMX配置代码,遇到问题一脸懵逼,不知道如何下手的朋友。

当然我不是提倡大家穿着新鞋走老路,因为时代在发展,不能换一个寄存器一个寄存器去手撸,不过这时候,需要对底层有一个更全面的认识了,从单片机内核架构层面去理解,这需要学习其他的体系知识了,比如地址总线,数据总线,ARM的架构,外设是如何CPU进行数据交换的等等;

比如今年缺芯严重,不得不进行国产替代,不吹不黑,今年换了几款国产的MCU,资料不太完善,也没有太多参考的Demo,后来使用固件库的时候发现了几处BUG,最后还是得靠自己参考开发手册排查错误。

言归正传,我们要学会去官网找资料,有很多应用方案,芯片的开发手册UM( user manual),自己搭建开发环境,然后找到相应的芯片的固件库,这些都能自力更生,就非常不错了。

多提问,多交流

一个人,走得快,一群人,走得远;所以要多与人交流沟通,不耻下问,这里一定要注意提问的技巧;下面是我认为的几点;

尽量别问搜索引擎能解决的问题;尽量收集问题相关的信息;例如单片机而言,你不能问:为什么我的灯点不亮?或者你可以问:我的灯点不亮,测量了IO输出电平正常,但是没有亮?不要使用难懂、模糊化等词句,尽量简短,清晰,简明,扼要地描述你的问题;对的时间,问对的人,在别人全神贯注思考或搬砖的时候,就不要轻易打扰他人;明确你的提问目的是什么,如果你自己都不在自己要问什么,那还是先整理一下问题再问吧;

加入嵌入式技术交流群一起进步

最后

这篇文章里我简单地聊了一下如何进行单片机进阶,个人认为需要硬件设计和软件设计两部分;

硬件设计;软件设计;

如果详细展开,每个部分都有很多东西可以学习的,其实感觉最初能做简单的PCB,然后在这硬件基础上进行相应的软件开发,就已经达到了一个进阶的目的,后续需要的是不断在项目中进行提高,可以不断积累硬件方面的经验,另外还需要系统地学习基础知识,比如计算机系统(微机原理),C语言,数据结构等,软件部分可以多看一下开源的优秀项目,学习他们的设计思想,这样会提高得很快。

好了,这期先这样,时间比较赶,简单地说一下哈,我是小麦,我们下期再见。

相关问答

51单片机 入门后怎么提高?

掌握单片机入门知识后,建议从以下几个方面提高:深入理解硬件结构:深入了解单片机的寄存器、时序图、中断系统和外围电路,为后续学习奠定基础。熟练掌握编程...

【为什么 51单片机 需要接上拉电阻?怎么接?】作业帮

[最佳回答]只有P0口需要上拉.因为P1\P2\P3口在内部已经上拉了,不上拉,P0口不能输出高电平.当P0口高电平有效时要外接上拉提供驱动电流.只有P0口需要上拉.因为...

怎么让能让程序烧到 51单片机 -ZOL问答

根据不同的型号,烧录到51单片机的方法不一样:1、具有ISP、IAP功能的单片机,比如STC系列,可以通过串口利用STC_ISP软件下载到单片机。2、没有ISP功能的单片机...

51单片机 p0口为什么需要上拉电阻?

早期51单片机的p0口是高阻输入或开漏输出结构,不接上拉电阻会导致无法输入/输出正确的电平。现在生产的51单片机对此做了一些改动,P0口内部增加了弱上拉电路,...

为何 51单片机 需要接上拉电阻?怎么接?-ZOL问答

为何51单片机需要接上拉电阻?怎么接?讨论回答(4)只有P0口需要上拉。因为P1\P2\P3口在内部已经上拉了,不上拉,P0口不能输出高电平。当P0口高电平有效时要外...

51单片机 的中断源中自然优先级最高的是?

复位后的单片机的优先级寄存器IP全部被清0,当然优先级被默认了,优先级从最高到最低依次为:中断源C序号汇编序号外部中断00...复位后的单片机的优先级寄...

51单片机 是什么内核?

答单片机内核是就是51单片机的CPU内核,字面意思就是51单片机内核构造的指令集51单片机是指80年代Intel开发的8051单片机内核的统称,就是因为这个“8051”有个5...

当前 51单片机 还有用武之地吗?

有啊,就好比C语言一样,现在编程语言有好多好用的,可是也离不开C语言,都是息息相关的,51单片机是基础,是学习编程控制的入门,目前市场上使用率还是不小的,...5...

51单片机 的高电平范围?

0.3VCC----0V为低电平,0.7VCC---VCC为高电平,一般来讲,对于5V电源的单片机来说,低电平在1.3V以下,高电平在3.7V以上,数字信号尽量不要使用1.3---3.7V这个区...

51单片机 的溢出率什么意思_作业帮

[最佳回答]定时器的溢出率,也叫定时器的溢出频率,从设定初值开始计数,当计数到0FFH再一个计数脉冲到来时刻就溢出,初值越大溢出率也越高,我们使用这个溢出率确...

猜你喜欢