51单片机的学习经验总结

51单片机的学习经验总结,第1张

1.取指译码执行模型:首先我们来看看单片机是如何工作的,我们拿电脑的主板来作为对比,我们买电脑时,总是追求处理器的主频。处理器的工作原理是从存储器上取出一条指令,然后对指令译码,译码完后执行。然后取下一条指令,译码,执行。它为什么能这么有序的工作?是因为它有一个工作时钟,在这个工作时钟的统一管理下,处理器有序的工作,这里的主频就是工作时钟的速度,当然,现在你可能也知道主频越高,取指译码速度越快,性能越好。那么你可能会问,这跟51单片机有什么关系,OK,切入正题,单片机的工作也是这个原理,从存储器上取指,译码,执行。但是单片机的存储器在哪?在单片机的内部,对于电脑来说,是把处理器,内存集中在一块主板上。而现在你应该很明确,对于单片机它就相当于一块电脑主板,把处理器,存储器集中到一块芯片内部。从这个宏观的角度看,所有的单片机是不是都是一个原理,服从于取指,译码,执行的基本模型。OK,继续……

3.配置寄存器:学习51单片机,不管你是刚刚开始学,还是学习有一段时间了,你应该很熟悉的字眼,寄存器。我想说单片机的基本思想就是五个字:配置寄存器。单片机怎么工作,比如,你让I/O口输出高电平,怎么输出,在C语言里,你是通过P1=0xFF来实现的,为什么这么写,你去看看头文件reg51.h里的内容,它定义了一个寄存器为P1,然后你向这个寄存器里写入了8个1,于是输出高电平。你是通过配置寄存器的内容来控制I/O口的。我们再想一下,定时器你是怎么配置的,同样的原理,你是通过配置TMOD,TCON,TH,TL等若干个寄存器完成的吧,然后给单片机定了一个时间,当然,你说这些是简单的,还有复杂的呢?那我就再举个例子吧,只要是写单片机程序,你基本都是在配置寄存器,例如,STC系列的单片机带了PWM功能,你如何让单片机输出一个符合你要求的PWM信号呢,你绝对是通过给某个寄存器写入一个值,这个值控制频率。再给一个寄存器写入一个值,这个值控制占空比,然后通过哪个脚输出,你又是通过一个寄存器来控制的。所以整个过程都是控制寄存器。那么你说,51是这样的,其他的呢?STM32,高端的单片机,工作起来也是配置寄存器,STM32时钟信号的选择,是通过控制RCC,I/O的控制是通过控制GPIO,当然,它采用的方式是存储器统一编址,就是你定义某个寄存器不再是51的sfr和sbit,而是用指针直接访问地址的方式,比如访问某个寄存器,从器件手册上查找该寄存器的地址为0xXXXXXXXX,那么配置时使用*(long unsigned *)(0xXXXXXXXX)=0xFFFFFFFF的方式,本质不变。这样看来,那么msp430,PIC都是这样的,只是他们的寄存器不同,配置方式不同,写入的值不同而已。如果你真的懂了51单片机,真的懂了单片机配置寄存器的原理。你只要花两个小时看懂芯片手册,熟悉了开发环境,一天就能上手新的芯片……题外话就是,看arm等等芯片很高端,如果是裸机编程的话,那么跟也是配置寄存器,原理一样,当然加了 *** 作系统就不同了, *** 作系统的框架就是重要的了。

4.关于通信协议:对于任何单片机来说,最为难的问题就是通信协议了,对于这个问题,我不想说的太多,毕竟不是在做通信原理,只是要说明的一点就是,“有通信就有协议,这是什么意思?就是说单片机在驱动任何芯片的时候,必须要服从这款芯片的的时序,比如先使能这个芯片,然后给出写信号或者读信号,然后芯片在发出响应信号,再对芯片进行 *** 作。为什么要这样呢?首先,对于芯片来说,它有自己的 *** 作方式,如果没有固定的方式,那就乱套了,其实联想到人身上也是这样的,中国人和美国人交流时,如果没有翻译,就需要打手势,这个手势双方都能懂,于是就能通信。芯片协议也是这样的,单片机和芯片都能理解,于是他们都能工作。还有一点就是像有些芯片带了SPI的协议,IIC的协议等等,如果它自带了,那么他协议已经设置好了,回归到本质,使用这个协议又是配置寄存器了。比如51单片机的串口协议,你是通过配置寄存器来设置波特率,校验位的吧……万变不离其宗……

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2601563.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-09
下一篇 2022-08-09

发表评论

登录后才能评论

评论列表(0条)

保存