如何学习单片机?

把这几个功能学透,你就掌握了单片机单片机的学习绝不仅仅是对一项知识的掌握。想要学好单片机,需要从硬件结构、内部资源、外设应用等几个方面多方位入手。而要想成为一名嵌入式工程师,就要对单片机的基础非常熟悉,并且掌握C语言当中各个功能的初始化、启动、停止各类函数的编写调试。那么想要掌握单片机需要从哪几个方面入手呢?1. 数字I/O的应用在大多数的单片机实验中,跑马灯实验正是数字I/O的典型应用,也是跑马灯的实验被安排第一个的原因。

通过将单片机的I/O引脚位进行置位或清零来点亮或关闭LED灯,虽然简单,但是这就是数字电路中的逻辑功能。数学I/O应用的实验还有按键实验,当按下某键时,某LED灯被点亮。数字I/O实验教会我们单片机的编程思想,必须首先对单片机的相应寄存器进行配置,以初始化I/O引脚,这样才能使该引脚具备数字输入与输出功能。

单片机的一个内置或外置功能的使用,就是对该功能相关的寄存器进行设置,初始化,而这便是单片机编程的特点。少则4、5个函数搞定,多则十几行程序,要有耐心,别怕麻烦,所有的单片机都是这样。2. RS232串口通讯单片机都有UART接口,这个简单、古老的通讯方式可以与我们PC机的RS232接口直接连接通讯,当然,因为它们两者电平逻辑不同,必须要使用一个RS232电平转换芯片才能与PC机连接,例如Max232芯片。

UART接口的使用是非常重要的,通过这个接口,我们可以使单片机与PC机之间交换信息,“接口”概念的学习也便由此引入。使用UART接口也会学习到目前最为简单与常用的通信协议等知识。对于无法在线调试的单片机,也可以通过PC机的串口调试软件来监视到单片机实验板的数据。3. 定时器的使用学会定时器的使用,就可以利用单片机来实现典型的时序逻辑电路。

时序逻辑电路的应用是最强大、最广泛的。例如,在工业的控制中,我们让某个开关每隔1秒钟打开与关闭一次。这个方案可以通过普通的数字集成电路实现,也可以通过PLC来实现,也可以通过CPLD或FPGA来实现,但是只有单片机的实现是最简单,成本也是最经济的。定时器是单片机内部资源里最为重要的一个,更是逻辑与时间控制实现的基础。

4. 中断在单片机软件设计架构中,一段程序循环执行是其一个特点,也是一个弊端。每个操作指令的执行都需要一定的执行时间,如果程序没有执行到该指令,则该指令的动作就不会触发,这样就会忽略许多快速发生的事件,例如方波频率检测的上升沿。针对在单片机程序正常运行时能够对外部事件立即做出响应而设计了中断功能。当中断功能执行时,单片机优先处理中断程序,当中断处理完成后,再回到单片机的正常程序执行中。

中断的机理是比较容易理解的,但是什么时候打开中断,什么时候关闭、屏蔽中断,需要如何配置才能使能中断的某些功能,中断里要执行哪些程序,这些程序的要满足哪些要求就需要花些时间去理解与实践了。中断学会后,就可以编写复杂结构功能的程序,可以一边闪着小LED灯,一边扫描着按键,一边发送着数据,也可以干着多个事情……比如,中断功能可以使单片机吃着碗里的,看着锅里的。

根据传说中的8020定律,如果掌握了上面提到的这四步,那么就说明已经学会单片机80%的内容了。5. I2C,SPI通信单片机系统毕竟资源有限,而利用I2C、SPI通讯接口进行扩展外设是最常用的方法,也是非常重要的方法。这两个通讯接口都是串行通讯接口,典型的基础实验就是I2C的EEPROM实验与SPI的SD卡读写实验。

6. 比较、捕获、PWM功能比较,捕捉与PWM功能可以使单片机更加适合电机控制,信号检测,实现电机速度与步长的调节。PWM波现在又是LED调光的主要手段。这里已经初步接触了数字电路里的模拟电路部分。7. AD模数采集单片机目前基本都自带多通道A/D模数转换器,通过这些A/D转换器可以单片机获取模拟量,用于检测电压、电流等信号。

学习时要分清模拟地与数字地,参考电压,采样时间,转换速率,转换误差等重要概念。这一步学会了数字电路控制模拟电路部分,而最简单的A/D模数转换器就是电压表实验。8. 学习USB接口、TCP/IP协议、工业总线目前主流的通讯协议为:USB协——下位机与上位机高速通讯接口;TCP/IP——万能的互联网使用的通讯协议;工业总线——诸如Modbus,CANOpen等工业控制各个模块之间通讯的协议。

怎么从零学习单片机操作?

学习单片机需要具备一定的电路基础、数字电路、模拟电路、信号系统、C语言编程等相关的基础知识。单片机的学习包括硬件设计和编程设计,早期单片机用汇编编程的人比较多,现在越来越多的人用C语言进行编程。下面和大家分享一下如何快速有效的学习单片机。1从51单片机开始学习编程很多人建议可以直接从STM32、ARV、MSP430等单片机开始,在做产品的时候大家可以根据具体需求选择这类单片机。

但是从零基础入门的角度考虑,我还是建议单片机从51单片机开始。因为51系列单片机进入中国最早、使用人数较多、资料较多,最关键的寄存器配置比较简单。有了数模电基础、C语言基础后,就可以买一块51单片机学习编程了。在学习编程的时候要有顺序,先从操作单片机的GPIO口开始,再学习定时器、中断、AD采样、PWM输出,最后再学习UART、IIC、SPI等通讯方式,经过上述步骤之后,对单片机就有了基本的认识。

2学习硬件的设计单片机编程是基于硬件基础之上的,了解了编程之后,再来学习一下单片机硬件的设计。目前的电子产品,基本都是以单片机为核心,再根据不通的需求,围绕单片机搭建不通的外设电路。在设计电路时,就要考虑好方案是不是利于编程。硬件的学习,也要从基本的电路开始,如LED灯电路的设计、继电器电路的设计、蜂鸣器电路的设计、数码管电路的设计、RS232/RS485电路的设计等,虽然都是独立的模块,但是可以通过编程联系到一起,这也是先学编程后学习设计电路的原因。

3学习做项目学习单片机是为了做产品。在学习阶段可能没有参与项目的机会。可以根据自己的想法去提炼一些需求,最终设计电路、写程序去实现。或者自己试着去实现一块单片机开发板,学习单片机的过程是要花钱的。如果身边有参与项目的机会,一定要把握。在项目中实践自己的所学,在项目中扩大自己的知识面。以上就是这个问题的回答,感谢留言、评论、转发。

学习单片机技术怎样才算入门?

单片机学到什么程度才算入门?这个问题属于见仁见智的问题,每个人都有不同的看法。我来说说我的看法吧。单片机的学习有两方面,一是单片机电路,二是单片机控制程序。这两方面是相辅相成的,程序需要在电路上才能实现其控制功能,电路需要有控制程序才能正确执行各种动作。所以这两者缺一不可,都要学习。首先要学会单片机的基本电路单片机的基本电路不是很多,这些电路主要是围绕单片机内部功能模块的,所以这些是单片机电路的基础,需要很好的理解和掌握。

单片机的基础电路主要有下面几种:(只说最基础的,欢迎大家补充)1、单片机最小系统电路2、按键电路3、LED驱动电路4、IIC电路5、串口电路6、SPI电路7、ADC电路......其次要学会单片机的功能模块编程单片机的编程现在基本都是用C语言了,所以首先对C语言要有所了解,其实我们平时用C语言写单片机程序并不会涉及到很多高深的编程技巧。

1、单片机的时钟配置程序2、I/O端口的输入输出配置程序3、中断服务程序4、定时器的定时、技术程序5、PWM程序6、IIC接口的EEPROM驱动程序7、SPI数据收发程序8、ADC转换程序......第三要学会程序的调试方法单片机程序编写和调试一般都会在专用的编程软件下实现,所以要熟悉这个编程软件的使用方法,还要指导程序调试的方法和技巧,例如在程序调试中如何查看数据变化,如何观察寄存器的配置情况等等。

c语言,单片机应该怎么学习呢?

单片机是一门很有用的技术,懂单片机可以找一份很好的研发岗工作。所谓万事开头难,在初学入门阶段可能摸不着头脑无从下手,如果有了比较好的学习方法单片机学习起来也是很有趣、很容易的。和大家分享一下单片机以及单片机C语言编程的学习方法。1.选择一块单片机开发板不管你是从51单片机开始,还是直接从STM32、AVR开始,建议买一块单片机开发板。

切记,在学习单片机的时候不要和学习高数一样天天抱着书看,单片机是一门实践性非常强的课程,如果只看书不动手永远是纸上谈兵。书都不要看,直接买一块开发板,对单片机而言,最好的书就是单片机的数据手册。2.学习单片机普通GPIO口的配置方式不管你选择哪个型号的单片机入门,其学习方法都是一致的。首先要学习单片机普通GPIO口的配置方法,这包括单片机GPIO口的输出控制和输入检测。

比如学习如何用C语言实现单片机点亮LED灯、如何用C语言控制蜂鸣器发声、如何用C语言控制继电器动作、如何用C语言实现按键电灯、按键使蜂鸣器发声、按键使继电器动作等。3.学习单片机的定时器、AD转换、中断等片上资源单片机具有丰富的片上资源,合理的使用这些片上资源可以简化产品的设计使方案最优。所以学习这些片上资源非常重要。

这些片上资源包括定时器,可以实现定时功能或计数功能,该功能非常有用。单片机的AD转换功能可以将模拟量转化成数字量,在信号采集方面是非常重要的。使用单片机的中断资源可以节省单片机的资源,提高代码执行效率。4.学习UART、IIC、SPI、CAN等通讯功能通讯功能可以实现数据的传输,如wifi、蓝牙、RS485等都是常用的通讯功能,所以这一块一定要学习。

现在绝大多数的单片机都带有UART、IIC、SPI甚至CAN通讯功能,其他一些通讯功能可能都是由这几种通讯功能延时出来的,比如说UART功能配合不同的电平转换芯片可以实现RS232、RS485、CAN,甚至蓝牙和wifi通讯等。5.参与/主导单片机项目学习的目的是为了以后能够用单片机设计出方案合理、性能稳定的产品,所以要抓住参与项目的机会,在项目中锻炼实践动手能力。

如果我想能看懂单片机的程序,需要怎样学习语言?

非常感谢你发来的邀请,我很高兴回答你的问题!现在单片机编程语言主要有两种,一种是汇编语言、一种是C语言。汇编语言要求要对单片机内部结构有要熟悉,由于其指令多(C51汇编语言指令共111条)、汇编语言可移植性差、阅读坚涩难懂,我建议学习单片机C语言比较好。用C语言编写单片机程序具有很多优点,首先是代码短、可读性强、可移植性强、开发时间短等,特别在比较复杂的程序上用单片机C语言明显要比单片机汇编语言好得多。

另外用C语言进行单片机程序设计是单片机开发与应用的主流方向,鉴于以上两点我建议你学习单片机C语言。下面说说如何学习单片机C语言,我学单片机也有许多年了,我认为学习单片机C语言的第一步是先了解一下单片机硬件,毕竟单片机C语言是一种底层驱动控制语言,在编写或者阅读这种程序必须要对单片机本身以及外设有所了解,这样才能知道我用的I/O口是控制的什么设备;也才能知道该端口是输出高电平还是低电平才能控制这些外设。

如果你对硬件有了解,那直接学习软件部分,一是先学一下编程软件的使用,我建议用KeiIC51软件,二是学习C语言的一些语法,语句等。比如最基本的五种算术运算符和表达式;熟悉六种关系运算符、三种逻辑运算符及其表达式,优先级等。在流程控制语句学习中要学习循环语句、选择语句、分支语句等;后面学习数组、函数、指针以及模块化程序的设计方法等。

在学习纯软件时我们可以借助Proteus等仿真软件进行仿真学习,这样学习单片机c语言效果会更好,我们通过写简单c程序在仿真软件验证,比如点亮Led灯的程序、数码管的程序等,这样循序渐进很快就能学会,对一般的单片机也能读懂了,甚至还能编写简单程序。我学习单片机程序语言就是按以上方法进行的,希望能对你有参考作用,同时欢迎各位朋友讨论你是如何学习单片机程序的?。

会使用51单片机的前提下,如何自学stm32?

单片机都是相通的,既然会51单片机,学起STM32来也很快,下面从区别以及学习方法上简单解答一下。51和STM32在学习上的区别STM32单片机是cortex的内核,32位,比51单片机功能强大很多,片上资源也多很多。51单片机在编程时都是直接操作寄存器,没有库函数的支持。由于功能有限,所以51单片机的寄存器的设置要相对简单一些。

而STM32单片机由于功能强大,引脚复用较多,在设置寄存器时会稍微麻烦一点,但是STM32有官方的库函数支持,也可以弱化寄存器的设置。如何学习STM32单片机STM32单片机和51单片机在硬件电路设计上区别不大,对于一些特殊的功能需要考虑专用的GPIO口。学习STM32还是主要针对编程。建议入手一块开发板,以开发板的外设电路为基础,学习STM32的编程。

学习GPIO的设置,在学习之处还是建议从寄存器设置入手,先不要直接学习库函数。在这一部分主要学习如何将GPIO口设置为输入、输出、如何设置为上拉、下拉模式,学习控制LED、蜂鸣器、继电器、按键输入等典型的应用。学习定时器的设置,定时器是单片机的标配,在做产品时定时器功能使用频率比较高,学习定时器的不同的配置模式、计数、定时等功能。

学习中断的设置,中断的使用可以大大提高单片机代码的执行效率,单片机的中断源有多种类型,如定时中断、外部中断、通讯接收中断、通讯发送中断、AD采用中断等。学习通讯功能的设置,单片机的通讯端口UART是标配,除此之外还有IIC,SPI,CAN,USB等,根据板载资源学习通讯功能的参数的设置。参与项目,学以致用学习单片机的目的就是为了设计产品,所以一定要学以致用,甚至都可以边做产品边学,找各种机会去练手,不管是自己做着玩,还是为了产生价值,避免以书为核心的盲目死学。

会51单片机,如何快速学习使用STM32单片机?

谢谢邀请,我是大学读的电子信息工程,最开始也是学习的51单片机,用51单片机做过几个小实验,毕业后,工作需要,做过半年AVR,然后又因为项目需要,就转到stm32单片机了,当时学习STM32是自学摸索,所以在学习STM32,我有自己的看法。STM32的固件库,除了启动文件.S文件,其他的底层,其实是使用寄存器地址,映射到相关的位置,然后使用结构体定义,用指针替代,最后形成对应的寄存器,比如GPIOE-


文章TAG:单片机  学习  
下一篇