当前位置:首页 > 单片机 > 单片机
[导读] 1.取指译码执行模型:首先我们来看看单片机是如何工作的,我们拿电脑的主板来作为对比,我们买电脑时,总是追求处理器的主频。处理器的工作原理是从存储器上取出一条指令,然后对指令译码,译码完后执行。然后取下

1.取指译码执行模型:首先我们来看看单片机是如何工作的,我们拿电脑的主板来作为对比,我们买电脑时,总是追求处理器的主频。处理器的工作原理是从存储器上取出一条指令,然后对指令译码,译码完后执行。然后取下一条指令,译码,执行。它为什么能这么有序的工作?是因为它有一个工作时钟,在这个工作时钟的统一管理下,处理器有序的工作,这里的主频就是工作时钟的速度,当然,现在你可能也知道主频越高,取指译码速度越快,性能越好。那么你可能会问,这跟51单片机有什么关系,OK,切入正题,单片机的工作也是这个原理,从存储器上取指,译码,执行。但是单片机的存储器在哪?在单片机的内部,对于电脑来说,是把处理器,内存集中在一块主板上。而现在你应该很明确,对于单片机它就相当于一块电脑主板,把处理器,存储器集中到一块芯片内部。从这个宏观的角度看,所有的单片机是不是都是一个原理,服从于取指,译码,执行的基本模型。OK,继续……
2. 51单片机的外设:我们在学习单片机时,所做的第一个实验都是一样的,点灯。也许你已经学会了用单片机做出好看的花样灯,或者用单片机驱动数码管显示出数字或字母。或者可以检测按键了。不错,我们仔细想想这些是什么,无非,你就是控制那一排排引脚输出高低电平,我们称这些引脚叫I/O口,输入输出,按键是输入,点灯是输出。其实你以为你学了三样东西,其实,你只学了一样东西,I/O控制。所以这些内容并不是单片机的内容,我们称之为单片机的外设,现在你应该很明确了,所谓的LCD液晶,AD芯片什么的都是单片机的外设。但是我们为什么要学习这些单片机的外设呢?还是为了熟悉单片机,你驱动的芯片多了,自然对编程模型就熟悉了。其实,我们用单片机就是在驱动外设,然后你问那定时器,中断,串口通信又是什么?对于中断,现在单片机在做一件事,突然,我给个信号,现在出了一个意外,你赶快去做另一件事,做完另一件再回来,就是这样。对于定时器,我举个例子,现在对于一盏灯,我要他每天晚上六点打开,每天早上六点关闭,我们会怎么做?设定一个计时器,假设当前是晚上六点,现在我让I/O口输出高电平点灯,同时打开计时器,定12个小时,12个小时一到,给一个中断,去把I/O口取反,关灯,是不是这样控制的。所以中断,定时器只是为了更好的让单片机进行控制工作。现在你应该很熟悉了,单片机就是一款自动控制的芯片。注意,是芯片,你做的工作就是如何编程来是这款芯片工作,是这款芯片在规定的程序下干活……怎么让单片机干活呢?五个字,配置寄存器。
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单片机的串口协议,你是通过配置寄存器来设置波特率,校验位的吧……万变不离其宗……

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭