怎么自学单片机?需要用什么软件看什么书?

新农商网 全部 1009

怎么自学单片机?需要用什么软件看什么书?

回复

共3条回复 我来回复
  • 玩转嵌入式
    玩转嵌入式
    这个人很懒,什么都没有留下~
    评论

    单片机应用广泛,学会单片机很有发展前景。学习单片机主要包含硬件学习和软件/程序学习两个方面,这两个方面都会涉及到相应的软件。

    1.单片机硬件学习

    单片机在一件电子产品中是一颗主控芯片,所有的外围电路都是以单片机为中心的。所以在学习单片机时要掌握单片机常用的外设电路。常用的单片机外设电路有:

    • 按键输入电路:常用的交互方式,输入;

    • 液晶/数码管显示电路:常用的显示电路;

    • 继电器驱动电路:用于控制继电器的输出;

    • 通讯电路:RS232,RS485,CAN,蓝牙等电路;

    • 常用的运放电路:用于信号处理等;

    • AD采样电路:用于采样连续的物理量,如温度、电流等;

    常用的电路设计软件有altium designer,candence等。要会设计原理图还要会PCBlayout。

    2.单片机软件的学习

    软件的学习主要是编程。要熟悉单片机寄存器的操作方法或者学会使用库函数编程。要学会单片机GPIO的输入输出操作,学会片上资源的操作。

    • GPIO的配置方法:将GPIO配置为输入/输出,并能实现简单功能,如点亮LED,驱动继电器/蜂鸣器,按键检测等;

    • Timer资源的学习:学会配置定时器,并能实现相应的功能;

    • 中断资源的学习:学会配置外部中观、定时器中断、AD采样中断等;

    • AD采样的学习:学会单片机的AD采样的配置,实现AD转换;

    • UART功能的学习:实现RS232,RS485等常用的通讯接口;

    3.常用的软件

    前边已经提到,硬件部分会涉及到altium designer,candence等电路设计软件。软件部分的编程环境主要是由单片机来决定的,主要看单片机被哪款编程环境所支持。目前比较主流的编程环境为:

    • keil:支持51单片机,STM32单片机等,支持大多数主流的单片机;

    • IAR:支持MSP430单片机(IAR Embedded),STM8单片机(IAR for STM8)等;

    以上就是这个问题的回答,欢迎关注头条号 : 玩转嵌入式。 您可以获取更多电子知识。欢迎转发、留言、点赞这个回答,不管是正面评论、还是负面评论,欢迎交流。

    2018-08-14 19:54:45 0条评论
  • 易学单片机
    易学单片机
    这个人很懒,什么都没有留下~
    评论

    这个问题我有亲身的体会,单片机我也是自学的,自学的初衷就是因为兴趣。有一天去实验室找同学玩,看到他在一个封闭的场地上放各种障碍物,一个小车避开障碍来回穿梭,感觉挺有意思,就想自己也做一个玩玩,就走上了学习单片机这条路···

    如何自学单片机

    刚开始学习的时候也是比较迷茫,不知道从哪里入手,同学推荐我先看郭天祥的“新概念51单片机C语言教程”,这本书算是我的启蒙吧,书里面介绍了基本C语言知识和编程软件KEIL,这本书好的一点就是浅显易懂,直接是把我这个单片机小白领进门的。书还有配套的视频也可以找来看看,看视频的话会更直观一点,便于快速入门。(这本书也有一定的局限性,后面再说,但入门足够)

    单片机前期的学习以会用为主。不要纠结于寄存器、定时器、中断这些单片机的内部结构以及如何工作的,开始学习单片机就像学车一样,学车时开始知道怎么加油挂挡刹车控制方向就好了,至于发动机、变速箱、转向助力是怎么配合的以后再说,先学会开车。学习单片机刚开始时就是学会如何编程控制就好,至于内部结构,以后再说。

    基本上看书、看视频以后就可以编写一个点亮LED或一组流水灯的程序了,那么,恭喜你,就算是入门了。入门之后刚开始就自己编程还是有点困难,基本是看别人怎么用,怎么写,先理解别人的程序,在理解的基础上模仿和修改,在修改的基础上编写自己的程序,就这样一步一步的过来。学习单片机重要的一点就是自己多写程序,多调试,只看书或视频效果不大,做到在练习中学习,就像游泳一样不管是用什么姿势先下水再说^_^。

    入门以后就是按部就班的学习了,I/O口,定时器,中断,串口,数码管 1602,182864,AD/DA,步进电机,直流电机,I2C,PWM,这些内部资源和外部模块依次学习以后就可以完成有点难度的工程,比如说做一个自动循迹加避障的小车、一个12864带遥控调节的万年历,诸如此类。用所学知识做出一个自己想要完成的小产品,还是有满满的成就感。

    软件

    软件的话主要有两个,一个是Keil,另一个是Proteus。Keil软件是编程和编译软件,把我们理解的C语言转换为单片机可执行的机器语言,我们在Keil里编写控制程序,Keil帮我们完成转化,然后下载到单片机中执行。Proteus是电路仿真软件,就是搭建一个电子电路模拟实际的硬件电路,这样就不需要真正的硬件,我们就可以在仿真电路中关联Keil编译好的程序,来验证我们的代码。这样的好处是只要有电脑我们就可以编程并验证,但是仿真电路是理想化的硬件,真正的硬件和仿真之间还是有很大区别的,尤其是高频电路和模拟信号,因此仿真电路刚开始可以用一下,还是要买一块单片机开发板作为实际硬件来学习。

    总结

    单片机的学习我理解是是入门简单,深入有难度。入门时按键可以采用延时的方法,但真正应用起来基本上没有人会用延时实现,都是采用状态机。刚开始任务少,怎么写都可以,但是任务多的时候就要考虑资源的分配和程序的架构,这就上面所说的局限性,就需要深入的学习。

    自学就是一点兴趣,一点坚持,再加一点耐心,多练习,多总结,方法总比问题多,肯定是可以学会的。

    我就是这样走过来的,一路上摸着石头过河,不知道大家是怎么入单片机的“坑”的,欢迎留言讨论^_^

    2018-03-20 09:57:02 0条评论
  • 熙爸爱钓鱼
    熙爸爱钓鱼
    这个人很懒,什么都没有留下~
    评论

    这个要看学习的目的。

    1,想从事单片机开发的工作,需要系统的学习。如计算机原理、汇编/C语言开发、单片机原理等教程。没基础的话自学这些很有难度,除非身边就有良师,否则的话还是上个培训班之类的,不要相信什么十天学会单片机、二十一天精通单片机之类教程。

    2,出于爱好学单片机,喜欢动手diy什么的,这种情况有很多更容易入门的替代,如 Arduino、Maple之类的开发板,入门阶段不用去关心单片机的底层知识,上手很快。玩熟到一定程度,自然会去挖掘底层的知识。

    2017-08-04 18:29:40 0条评论