已经学过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单片机技术自发展以来已走过了近20年的发展路程 。单片机技术的发展以微处理器(MPU)技术及超大规模集成电路技术的发展为先导,以广泛的应用领域拉动,表现出较微处理器更具个性的发展趋势。小到遥电子玩具,大到航空航天技术等电子行业都有单片机应用的影子。针对51单片机技术在电子行业自动化方面的重要应用,为满足广大学生、爱好者、产品开发者迅速学会掌握单片机这门技术,于是产生51单片机开发板。实践表明,8位的单片机仍然占据着市场百分之八十的份量。
1.51单片机开发板介绍
51单片机技术自发展以来已走过了近20年的发展路程 。单片机技术的发展以微处理器(MPU)技术及超大规模集成电路技术的发展为先导,以广泛的应用领域拉动,表现出较微处理器更具个性的发展趋势。小到遥电子玩具,大到航空航天技术等电子行业都有单片机应用的影子。针对51单片机技术在电子行业自动化方面的重要应用,为满足广大学生、爱好者、产品开发者迅速学会掌握单片机这门技术,于是产生51单片机开发板。实践表明,8位的单片机仍然占据着市场百分之八十的份量。
2.51单片机开发板功能
1、8个LED灯,可以练习基本单片机IO操作,在其他程序中可以做指示灯使用。
2、2个四联8段数码管,显示温度数据,HELLO欢迎词、时钟等。
3、高亮8*8点阵,如练习数字,字母,图片显示,或者小游戏的开发如贪吃蛇等。
4、4个独立按键,可以配置为中断键盘,为程序的按键扫描节省更多的时间。
5、8个AD按键,主要设计为游戏开发如推箱子等,去掉了矩阵键盘,AD键盘在实际中的应用相当广泛,如电视机加减搜台等都是采用AD键盘,一根AD线可以扩展几百个按键,更接近工程。
3.51单片机开发板电路图
51单片机开发板也称51单片机实验板、51单片机学习板。是用于学习51型号的单片机的实验及学习器件,他是将51单片机常用的外围。比如流水灯,数码管,矩阵键盘,EEPROM,时钟,蜂鸣器,继电器及集成在一小块电路板上。便于携带及学习,直接插在PC机上面。随时随地的进行学习,另外一些中小型项目也可以直接在此板上面进行二次开发,开发完成后即可以在此基础上面重新画图做板,极大的缩短了公司的开发周期,节省硬件成本。例如铁牛单片机开发板,针对学者需要特别配套VB上位机软件开发,游戏开发等教程学习资料。开发此类单片机开发板的公司一般提供完善的售后服务与技术支持,高校常用的单片机开发板为教学需要,常见配套资源有硬件、实验程序源码、电路原理图、电路PCB图等学习资料。
相关问答
codeblocks能 开发51单片机 吗?codeblocks是个IDE,如果你有51单片机的toolchain当然可以集成到codeblocks里使用只是用起来不会那么爽codeblocks是个IDE,如果你有51单片机的toolchai...
51单片机 如何建立步骤?目前进行STC89C51/52、AT89S51/521、双击启动keil软件2、启动新建工程3、给新建工程命名和保存4、选择单片机型号,我们以STC89C52为例,依次选择“Atmel”-.....
51单片机 用的是哪个软件?51单片机的编译软件现在最流行的是keilc51,你可以用这个软件进行编程和编译。单片机自身完成不了什么任务需要有外电路的配合,所以你需要购买一块51单片机开...
51单片机 没有 系统 怎么运行?没有系统就没有办法运行。KeilC51是一款51单片机的开发工具,要运行该工具需要先安装该软件,并连接好相应的单片机开发板。连接好硬件之后,在KeilC51中新建...
c 51单片机 是什么内核?C51单片机的内核叫mcs-51,这种内核是典型的冯诺依曼结构,8位字宽,支持256字节内部随机数据存储器RAM选址、64K字节内部程序存储器ROM寻址。外部扩展存储器寻址...
51单片机 的应用方向?单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:1.在智能仪器仪表上的应用...单片...
51单片机开发 板有什么用,对初学单片机有什么帮助?51单片机开发板对初学单片机的帮助,就像学步车对于刚学走路的儿童一样,可以帮助它少摔跤,快速学会走路。一、单片机学习板的重要性单片机的学习,包含两大方...
51单片机 优点?单片机优点如下:1、有优异的性能价格比目前国内市场上,有些单片机的芯片只有人民币几元,加上少量外围元件,就能构成一台功能相当丰富的智能化控制装置。2...
51 八位 单片机开发 板怎么做?1.通过购买相应的材料和器件,以及编程软件,可以制作出51八位单片机开发板。2.首先,需要准备好51单片机芯片、电路板、电阻、电容、晶振等器件,以及USB转串...
51单片机 如何入门?工具材料:单片机书一本,开发板一块,电脑一台。操作方法01第一步:先找一套单片机相关的教材来学习,了解一下单片机开发都有哪方面的内容,对单片机有一个...工...