单片机简称为单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上,相当于一个微型的计算机。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的并对体积要求严格的控制设备当中。Intel的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。

硬件

微处理器(CPU)

它是单片机的核心部件,包括运算器和控制器。运算器既是算术逻辑单元ALU,其功能是进行算术运算和逻辑运算。控制器一般由指令寄存器、指令译码器、时序电路和控制电路组成。其作用是完成取指令、将指令译码形成各种微操作并执行指令,同时控制计算机的各个部件有条不紊地工作。

内部数据存储器(RAM)

用于存放运算的中间结果,数据暂存和缓冲,标志位等。是与CPU直接交换数据的内部存储器。它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储介质。RAM工作时可以随时从任何一个指定的地址写入(存入)或读出(取出)信息。

特点是:掉电后会丢失数据。

程序存储器(ROM)

ROM是只读存储器,它的特点是只能读出原有的内容,不能由用户再写入新内容。原来存储的内容是采用掩膜技术由厂家一次性写入的,并永久保存下来。它一般用来存放专用的固定的程序和数据。只读存储器是一种非易失性存储器,一旦写入信息后,无需外加电源来保存信息,不会因断电而丢失。

输入/输出口(I/O口)

每个设备都会有一个专用的I/O地址,用来处理自己的输入输出信息。CPU与外部设备、存储器的连接和数据交换都需要通过接口设备来实现,前者被称为I/O接口,而后者则被称为存储器接口

准双向口输出

准双向口输出就是可作为输出也可作为输入口,因此这个口是不定的,是准双向类型,不用重新I/O口的输出状态 。准双向口有3个上拉晶体管以便根据不同的需要设置表不同的参数。这三个晶体管分别是起到强上拉、极弱上拉、弱上拉功能。

推挽输出

推挽输出是因为它的输出结构类似于推挽结构,它是一种由两个三极管(或者其他MOS管等)分别受到一个信号的控制,这信号的互补的,就是说只有一个三极管导通,一个三极管导通的时候另一个就要截止。推挽输出可以输出高电平,也可以输出低电平。当锁存器为“1”时候可以持续提供强上拉,这种输出结构可以驱动需要很大电流的器件。

开漏输出

这种结构作为逻辑输出时候,必须要有外部上拉,上拉电阻要为10K左右比较好,一般是通过电阻加到VCC电源,这样才可以读取外部状态,也就是说此时的开漏输出的可以作为外部的输入I/O口。

总线

总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束, 按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。

地址总线(AB)

地址总线(Address Bus)是专门用来传送地址的,由于地址只能从CPU传向外部存储器或I/O端口,所以地址总线总是单向三态的,这与数据总线不同。地址总线的位数决定了CPU可直接寻址的内存空间大小,比如8位微机的地址总线为16位,则其最大可寻址空间为2^16=64KB,16位微型机的地址总线为20位,其可寻址空间为2^20=1MB。一般来说,若地址总线为n位,则可寻址空间为2^n位。

数据总线(DB)

数据总线(Data Bus)规范了一个大的集成应用系统中同构系统、异构系统等方面进行数据共享和交换实现方法,系统间数据交换标准。可用于微处理与内存,微处理器与输入输出接口之间传送信息。数据总线的宽度是决定计算机性能的一个重要指标。目前,微型计算机的数据总线大多是32位或64位。

控制总线(CB)

控制总线(Control Bus)主要用来传送控制信号和时序信号。控制信号中,有的是微处理器送往存储器和输入输出设备接口电路的,比如:读/写信号、片选信号、中断响应信号等;也有是其它部件反馈给CPU的,比如:中断申请信号、复位信号、总线请求信号、设备就绪信号等。

时钟电路

时钟电路的工作原理是单片机外部接上振荡器(也可以是内部振荡器)提供高频脉冲经过分频处理后,成为单片机内部时钟信号,作为片内各部件协调工作的控制信号。作用是来配合外部晶体实现振荡的电路,这样可以为单片机提供运行时钟。时钟信号可以由两种方式产生:一种是内部方式,利用芯片内部的振荡电路,产生时钟信号:另一种为外部方式,时钟信号由外部引入。

1个机器周期=6个状态周期=12个时钟周期。

电源电路

电源电路是指提供给用电设备电力供应的电源部分的电路设计,使用的电路形式和特点。既有交流电源也有直流电源。

串行口(TXD,RXD)

串行口是单片机与外界进行信息交换的工具。51单片机有一个可编程的全双工串行通信接口。可用作异步通信方式(UART),与串行传送信息的外部设备相连接。

其它

通信方式

对于点对点之间的通信,按照消息传送的方向与时间关系,通信方式可分为单工通信、半双工通信及全双工通信三种。

单工通信

单工通信(Simplex Communication)是指消息只能单方向传输的工作方式。在单工通信中,通信的信道是单向的,发送端与接收端也是固定的,即发送端只能发送信息,不能接收信息;接收端只能接收信息,不能发送信息。基于这种情况,数据信号从一端传送到另外一端,信号流是单方向的。

半双工通信

半双工通信(Half-duplex Communication)可以实现双向的通信,但不能在两个方向上同时进行,必须轮流交替地进行。在这种工作方式下,发送端可以转变为接收端;相应地,接收端也可以转变为发送端。但是在同一个时刻,信息只能在一个方向上传输。因此,也可以将半双工通信理解为一种切换方向的单工通信。

全双工通信

全双工通信(Full duplex Communication)是指在通信的任意时刻,线路上存在A到B和B到A的双向信号传输。 全双工通信允许数据同时在两个方向上传输,又称为双向同时通信,即通信的双方可以同时发送和接收数据。在全双工方式下,通信系统的每一端都设置了发送器和接收器,因此,能控制数据同时在两个方向上传送。全双工方式无需进行方向的切换,因此,没有切换操作所产生的时间延迟,这对那些不能有时间延误的交互式应用(例如远程监测和控制系统)十分有利。这种方式要求通讯双方均有发送器和接收器,同时,需要2根数据线传送数据信号。

计数器

每隔一个固定时间,记一个数。计数器是根据一个时钟(这个时钟来自ARM的APB总线,经过分频器分频得到)来工作。

定时器

定时器内部有一个计数器,记时到一定时间后,定时器产生中断提醒CPU,CPU会去处理中断并去处理定时器中的ISR,从而执行预先设定好的事件。

中断系统

单片机中断(Interrupt)是硬件驱动事件,它使得CPU暂停当前的主程序,转而去执行一个中断服务子程序。

中断就相当于闹钟,让CPU在特定的时间做特定的事。