怎样才能成为单片机工程师?
单片机工程师?我先理解为从事单片机相关工作的设计人员。
单片机从上世纪80年代开始流行到现在,并且最近几年单片机又火爆了一次,主要得益于智能电器的流行。
其实单片机很简单,单片机在所有系统中的作用就是外围设备信息的采集和控制,数据的计算和分析等等,并且大部分单片机都是相通的,学会某一个单片机,其他的也都差不多。
如果从事单片机行业,个人建议51单片机必学,很多高校的单片机课程也都是51单片机。学习51单片机的作用在于它的直观,通过学习,能把软件编程和硬件联系起来,比如配置定时器,通过写入寄存器的数据可以很直观的认识到底层硬件是怎么连接的,如何通过软件代码实现硬件的动作,理解比较深刻。同时需要学习c语言和数电知识。怎么把自己的想法转成机器语言,这需要一定时间的,还有就是数电了。单片机也数字电路的一部分,内部其实也是很多数字单元组成的。
51单片机学习一段时间后可以选择一款32位单片机学习,推荐使用stm32,这个芯片使用度非常大,网上资料也很多,学习起来比较方便。stm32相对51单片机来说功能更强大,同时也更复杂。开始可以买一块开发版学习。开发板资料都很全,先系统了解一下,对比一下不足,再通过查找资料一点点弥补不足。
推荐图书
做技术很辛苦,一方面积累经验,一方面不断学习,这样你会越来越强大,加油✊✊
一般来说,单片机属于硬件工程师的工作范畴。毕竟单片机驱动编程和电路设计是分不开,只有明白了单片机如何驱动才能设计出更为合理的电路产品。
如果想更好的从事单片机相关工作:
1、必须熟悉C语言。目前基本上所有的单片机的开发环境都支持C语言编程。
2、最好熟悉汇编语言。
原因如下:①、虽然大部分单片机都支持C语言编程,但某些单片机采用汇编语言编程更好一些,如PIC8位单片机。
②、对于一些对时间要求较高的产品,采取汇编语言会更节省时间并且时间可控性更高。
③、由于单片机的启动文件等底层文件都采用汇编语言,产品采用实时系统,如UCOS、FreeRTOS等,必须需要汇编语言进行一致。即使不采用实时系统,熟悉汇编语言也可更好的了解单片机系统。
3、熟悉各种元器件以及电子电路原理。只有熟悉电路原理,才能更好的利用单片机驱动做出好的产品来。
4、熟悉一款单片机的外设功能。单片机方面,基本上熟悉了一款,便可举一反三,能迅速上手其余的单片机。
5、熟练使用相关实验调试设别,如电烙铁、万用表、示波器等。只有熟练使用这些工具,才能迅速的调试出一款合格的产品。
成为单片机工程师,需要硬件和软件技术作为支撑。
硬件基础
首先是模拟电子技术,是模拟量处理技术的基础知识。包括基本放大电路,运算放大电路等等。
然后就是数字电子技术,是数字量处理技术的基础知识。包括门电路、触发器、编译码器、计数器、运算器、存储器等等。
此外,还有电路分析,电动机及其控制电路,液压气动技术,传感器技术,驱动技术等等。
软件基础
首先是C语言、汇编语言,是重要的编程基础,其中C语言更受欢迎、更为重要。此外,还有java、Python等面向对象的高级编程语言。
常用的工具软件,例如,用于单片机编程调试的Keil,用于原理图、PCB设计的电路设计软件protel,用于建模仿真的matlab等等。
单片机编程涉及到的东西很多,我们无需恐惧,也不需要一天学完。一般来说,随着学习的深入,根据需要去选择相关内容。作为优秀的电气电子技术工程师,上述内容是必要的。学习就是一场修炼,随着能力层次的进价,就会发现这些知识丰富的内涵,更广泛的电气世界。
1、首先学习C语言,汇编语言。
2、精通数字电路 模拟电路;
3、找一部视频跟着项目做;
4、自己动手画原理图PCB;
5、进行电路调试,其中万用表、示波器、电烙铁等等工具都得会用。
首先要有数电、模电的基础知识,能看懂各类芯片资料,比如各项参数,特别是文档中的典型电路,能帮助我们节省很多设计成本。
接下来得学学画图软件,比如AD,或者PADS,protell等,熟练掌握一种就可以了,实在不想画板子,调试板子的时候也能辅助搞明白电路图,对于调试板子是很有帮助的。
然后还要学学C语言。现在大部分单片机都是用C来开发,汇编用的不多了,有富裕精力的朋友可以熟悉了解一下。单片机板可以看做是人的躯壳,里面运行的程序是灵魂,相辅相成,缺一不可。
接下来是动手能力,一些基本的焊接技术是必要的,还有万用表,示波器这两样工具要熟练掌握,调试过程,是最能提高水平的过程!
最后就是要多多做不同的项目丰富自己的经验,比如usb转ttl的电路设计,上位机软件如串口助手的操作,这些都有助我们快速的完成单片机项目的设计验证。
这是为51单片机驱动直流电机所做的三极管电流放大驱动电路,请教各位大神,这个电路的详细原理是什么?
R3电阻,限制电流用的D10反向稳压管,钳制电压为3.7VQ1,Q2三极管,一个NPN型,一个PNP型IN4007二极管,限制电流反向流动当PORT端加电压时,Q1首先导通,然后Q2导通5V电压施加到M2上,电机开始转
如何设计一个以单片机为核心的继电器控制电路?
用单片机控制继电器的电路并不复杂,设计起来非常简单,但是题目中没有详细的列出设计需求,比如说继电器的线圈电压是多少、继电器的带载能力是多大、继电器触点的类型是怎样的、要控制几个继电器等。所以,我从控制原理方面加以解释,提问者再根据自己的需求加以扩展即可。
单片机控制单路继电器电路原理图
分两种情况介绍,一种情况是单片机的GPIO引脚足够的情况,另一种情况是单片机GPIO引脚不够需要扩展的情况。单片机控制单路继电器的电路原理图如下图所示。
上图中,采用的线圈为5V的继电器,使用NPN三极管来驱动,Relay接单片机,当单片机输出低电平时三极管截止,继电器不会动作;当单片机输出高电平时三极管导通,继电器动作。图中的D14二极管是续流二极管,在线圈失电的瞬间会在线圈两端产生比较高的反向感应电动势,如果没有该续流二极管,该反向感应电动势会加在三极管的C、E两端可能把三极管击穿,续流二极管的作用就是给反向感应电动势提供一个泄放通道。电阻R59是下来电阻,防止在单片机上电的初始化过程当中使继电器误动作。
单片机控制多路继电器电路原理图
还有一种情况就是要控制多路继电器,但是单片机的GPIO不够用了,这时就需要扩展单片机的GPIO口,这里推荐使用74HC595来扩展GPIO。控制原理图如下图所示。
上图中,单片机用三个GPIO和74HC595连接,却可以控制8路继电器,74HC595通过第9引脚还可以实现级联,即通过3个GPIO可以控制更多路的继电器。与单片机相连接的引脚分别为DATA、RCK、CLK,Relay0-Relay8和继电器驱动电路连接,驱动电路如第一图中所示。
如果需要单片机和线圈隔离,也可以使用光耦来实现,如果继电器动作时所需要的电流比较大可以选择用过电流更强的三极管或者MOS管来实现驱动。
以上就是这个问题的回答,感谢留言、评论、转发。更多精彩内容请关注本头条号:玩转嵌入式。感谢大家。