一、单片机是什么?
单片机(Microcontroller Unit,简称MCU)是一种集成电路芯片,它将计算机的CPU(中央处理单元)、存储器(包括RAM和ROM)、输入/输出接口(I/O)以及其他功能模块集成在一个小型的芯片上。单片机通常用于嵌入式系统,即那些嵌入在设备内部、不需要用户直接交互的计算机系统。
单片机的主要特点包括:
集成度高:单片机将多个电子部件集成在一个芯片上,体积小、重量轻,便于嵌入到各种设备中。
功耗低:由于集成度高,单片机的功耗相对较低,适合电池供电的便携式设备。
控制功能强:单片机通常用于控制任务,如家用电器、工业自动化、汽车电子等。
成本效益:单片机的生产成本相对较低,适合大规模生产。
可靠性高:由于集成在一个芯片上,减少了外部连接,提高了系统的可靠性。
灵活性:单片机可以通过编程来实现不同的功能,适应不同的应用需求。
实时性:单片机能够快速响应外部事件,适合需要实时控制的场合。
现在大家比较熟知的单片机是普中的51单片机,其内核是89C51,这也是我接下来主要讲解的单片机。

注:图1-1,普中的89C51单片机
二、51单片机的分类
51单片机最主要的是它的芯片,而芯片的制造厂商有很多,且它的芯片种类也有很多。下面是一些主流厂商和他们制造的单片机型号。
1.STC系列
STC系列是由中国宏晶科技生产的一类51单片机。宏晶科技在国内有着较高的知名度,并且产品质量良好。STC系列单片机有着丰富的型号选择,从较低性能的51系列到高性能的ARM系列都有覆盖。其中较为常见的型号有STC89C51、STC89C52等,它们在不同领域都有着广泛的应用。
2、Atmel系列
Atmel公司是一家专业从事微控制器、存储器和半导体解决方案的制造商,其51单片机产品在市场有着良好的声誉。Atmel系列单片机以其低功耗和可靠性而受到广泛认可。常见型号有AT89C51、AT89C52等,它们在消耗电子、智能家居等领域应用广泛。
3、Silicon Labs系列
Silicon Labs是一家总部位于美国的半导体公司,其单片机产品拥有较高的性能和集成度。Silicon Labs系列的单片机在无线通信、工控领域等有着广泛的应用。常见的型号有C8051F120、C8051F340等,它们具有较高的运算速度和丰富的外设接口。
4、Renesas系列
Renesas电子公司是一家位于日本的半导体制造商,其51单片机产品具有较高的可靠性和稳定性。Renesas系列的单片机在汽车电子、工业控制等领域应用广泛。常见的型号有R5F21276、R5F100GJ等,它们具有较高的运算速度和丰富的外设接口。
而单片机的芯片有很多种,比如:
(1)无ROM(ROMless)型:8031、80C31、8032、80C32
(2)带MaskROM(掩模ROM)型:8051、80C51、8052、80C52
(3)带EPROM型:8751、87C51、8752
(4)带E²PROM型:8951、89C51、8952、89C52
而大家比较熟知且用的多的就是89C51和89C52了。

注:图1-2 MCS-51就是80C51
STC89C52RC的解读:
STC:前缀,表示芯片为STC公司生产的产品。
8:表示该芯片为8051内核芯片。
9:表示内部含有Flash EEPROM存储器。
C:表示该器件为CMOS产品。
5:固定不变。
2:表示该芯片内部程序存储空间大小,2代表8KB。
RC:表示STC单片机内部RAM(随机读写存储器)为512B。
40:表示芯片外部晶振最高可接入40MHz。
I:产品级别,表示芯片使用温度范围。I表示工业级,温度范围:-40℃-+85℃。
PDIP:表示封装型号。PDIP表示双列直插式。
三、51单片机的结构
STC89C51单片机是一种基于Intel 8051微控制器架构的增强型单片机,由STC(宏晶科技)生产。以下是STC89C51单片机的主要结构组成:
1.中央处理单元(CPU):STC89C51单片机内含一个8位的微处理器CPU,这是单片机的核心部分,负责执行指令、处理数据和控制各个部件的协调工作。
2.存储器:存储器是单片机的重要组成部分,STC89C51单片机的存储器包括程序存储器(ROM/EEPROM)和数据存储器(RAM)。
程序存储器:STC89C51单片机内部集成了4KB的程序存储器Flash ROM,用于存放程序、一些原始数据和表格。此外,还可以外接64KB的程序存储器ROM,以满足更大容量的程序存储需求。在单片机中,由引脚EA上的电平选择内、外ROM:当EA=1时,CPU执行片内的4KROM中的程序;当EA=0时,CPU选择片外ROM中的程序。但需要注意的是,如果程序计数器的指针PC值超过0FFFH(4K)时,单片机就要自动转向片外的ROM存储器,并从1000H单元开始执行程序(无法使用片外ROM的低4K空间)。
数据存储器:STC89C51单片机内部具有128B/256B的数据存储器RAM,用以存放可以读/写的数据,如运算的中间结果、最终结果以及欲显示的数据等。此外,还可以外接64KB的数据存储器RAM。内部RAM从功能上将空间分为二个不同的块:低128B的RAM块和高128B的SFR(Special Function Register,特殊功能寄存器)块。在低128B的RAM存储单元中又可划分为工作寄存器区和通用存储数据的“便签区”。高128B的专用寄存器区SFR中仅使用了部分寄存器(如51系列中仅使用了21个),其它单元则不能使用。
3.输入/输出(I/O)接口:STC89C51单片机具有四个8位并行I/O接口P0~P3,每个口既可以用作输入,也可以用作输出。这些接口是单片机与外部电路或设备进行数据交换的重要通道。
P0口:双向8位三态IO口,此口为地址总线(低8位)及数据总线分时复用口。
P1口:8位准双向IO口。
P2口:8位准双向IO口,与地址总线(高8位)复用。
P3口:8位准双向IO口,双功能复用口。P1、P2、P3内部均有固定的上拉电阻。
4.定时/计数器:STC89C51单片机具有两个或三个定时/计数器,每个定时/计数器都可以设置成计数方式,用以对外部事件进行计数;也可以设置成定时方式,并根据计数或定时的结果实现计算机控制。
5.串行口:STC89C51单片机具有一个全双工的串行I/O口,可实现单片机与单片机或其它微机之间的串行通信。这个串行口具有四种工作模式,可以根据实际需要进行配置。
6.中断系统:STC89C51单片机具有五个中断源的中断控制系统。中断系统能够使单片机在处理主程序的同时,对外部或内部的中断请求进行响应,从而实现多任务处理。
7.时钟电路与振荡器:STC89C51单片机内部有时钟产生电路,但需外接晶振和电容才能构成完整的振荡器。这个振荡器为单片机提供了稳定的工作时钟信号。
8.节电工作方式:STC89C51单片机具有节电工作方式,包括休闲方式和掉电方式。在空闲方式中,CPU停止工作,而RAM、定时器/计数器、串行口和中断系统都继续工作,此时的电流可降到大约为正常工作方式的15%。在掉电方式中,片内振荡器停止工作,由于时钟被“冻结”,使一切功能都暂停,故只保存片内RAM中的内容,直到下一次硬件复位为止。这种方式下的电流可降到15μA以下,最小可降到0.6μA。

注:图1-3为89C51单片机内部结构图
下面介绍的是mcs-51
MCS-51单片机存储器的配置特点
① 内部集成了4K的程序存储器ROM;
② 内部具有256B的数据存储器RAM;
③ 可以外接64K的程序存储器ROM和 数据存储器RAM。
从物理结构的角度讲,51单片机的存储系统可以分为四个存储空间:既片内ROM,RAM和片外ROM、RAM。
从逻辑上讲(既编程的角度),51单片机的存储系统实际上分为三个存储空间。
1. 片内数据存储器RAM;
2. 片外数据存储器RAM;
3. 片内或外的程序存储器ROM(由EA电平决定)。
1.程序存储器ROM用于存放程序、常数或表格。
2.在51单片机中,由引脚 /EA 上的电平选择内、外ROM: EA=1时,CPU执行片内的4KROM中的程序; EA=0时,CPU选择片外ROM中的程序。
3.无论是使用片内还是使用片外ROM,程序的起始地址都是从ROM的0000H单元开始。
4.尽管系统可以同时具备片内ROM和外部ROM,但是在一般正常使用情况下,通过/EA的设定来选择其一(或者使用内部ROM,或者使用外部ROM)。
5.如果EA=1(执行片内程序存储器中程序时):如果程序计数器的指针PC值超过0FFFH(4K)时,单片机就要自动的转向片外的ROM存储器且从1000H单元开始执行程序(无法使用片外ROM的低4K空间)。
6.当程序超过4K时,有两种使用程序存储器ROM的方法:
①设置EA=0,使用外部ROM。从地址=0000H开始;
②设置EA=1,使用内部的4KROM和外部ROM(地址从1000H开始的单元)。
程序存储器六个特殊的单元:
在ROM中有六个单元具有特定功能。
0000H单元:复位时程序计数器PC所指向的单元,因此用来 存放程序中的第一条指令;
0003H单元:外部中断/INT0的矢量入口地址;
000BH单元:定时器T0溢出中断的矢量入口地址;
0013H单元:外部中断/INT1的矢量入口地址;
001BH单元:定时器T1的溢出中断矢量入口地址;
0023H单元:串行口接收、传送的中断矢量入口地址。
矢量入口单元:在编写中断程序时,写入对应的“跳板指令”
单片机第一条指令的两个特征:
①存放在ROM的0000H单元;
②必须是“跳转指令”以跳过下面的5个中断矢量,转到后面的真正的主程序入口0100H单元。
ORG 0000H LJMP 0100H
ORG 0100H
START: MOV A,#00H
END
外部程序存储器:
当单片机使用外ROM存储器时(扩展系统),必须设定/EA=0,此时单片机的端口功能就要发生相应的改变:
① P0、P2作为外部ROM的地址和数据总线;
② 使用引脚/psen信号来选通外部ROM的数据三态输出。
内部数据存储器RAM:
无论在物理上还是逻辑上,系统中RAM 都可分为两个独立空间:内部和外部RAM。由不同的指令来访问。
1.访问内部数据存储单元时,使用 MOV 指令;
2.访问外部数据存储器时,使用 MOVX 指令。内部RAM从功能上将256B空间分为二个不同的块:
1.低128B的RAM块;
2.高128B的SFR(Special Function Register )块。
在低128B的RAM存储单元中又可划分为:
1.工作寄存器区;
2.位寻址区;
3.通用存储数据的“便签区”。
高128B的专用寄存器区SFR中仅仅使用了21寄存器(51系列),其它107个单元不能使用。
四、89C51单片机的结构框图及原理解析
1、一个8位 的微处理器CPU。
2、片内数据存储器(RAM128B/256B):用以存放可以读/写的数据,如运算的中间结果、最终结果以及欲显示的数据等。
3、片内4kB程序存储器Flash ROM(4KB):用以存放程序、一些原始数据和表格。
4、四个8位并行I/O(输入/输出)接口 P0~P3:每个口可以用作输入,也可以用作输出。
5、两个或三个定时/计数器: 每个定时/计数器都可以设置成计数方式,用以 对 外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果 实现计算机控制
6、一个全双工UART的串行I/O口:可实现单片机与单片机或其它微机之间串行通信。
7、片内振荡器和时钟产生电路:但需外接晶振和电容。
8、五个中断源的中断控制系统。
9、具有节电工作方式:休闲方式及掉电方式。

注:图1-4为89C51单片机结构框图
在空闲方式中,CPU停止工作,而RAM、定时器/计数器、串行口和中断系统都继续工作。此时的电流可降到大约为正常工作方式的15%。在掉电方式中,片内振荡器停止工作,由于时钟被“冻结”,使一切功能都暂停,故只保存片内RAM中的内容,直到下一次硬件复位为止。这种方式下的电流可降到15 μA以下,最小可降到06 μA。
五、51单片机最小系统介绍

注:图1-5为51单片机最小系统的电路原理图
单片机的最小系统是由组成单片机系统必需的一些元件构成的,除了单片机之外,还需要包括电源供电电路、时钟电路、复位电路。
功能详解
1:电源电路
电源电路就是单片机的供电电路,一般是3.3V或者5V,具体多少要参考各种型号的单片机的工作电压,通常情况下是5V,这里是指通常情况下。
2:时钟电路
时钟电路就是晶振电路,一般选择12Mhz的晶振,方便使用定时器、计数器的功能。AT 89C51中有高增益的反相放大器,它是是构成内部振荡器的主要单元,XTAL2和引脚XTAL1分别是该放大器的输出端和输入端。
片外石英晶体或陶瓷谐振器和放大器共同构成自激振荡器,旁路电容Cl、C2与外接石英晶体(或陶瓷谐振器)接在具有反馈功能的放大器中,构成了并联反馈振荡电路。
对外接旁路电容Cl、C2即使没非常严厉的要求,但是电容容量的大小也会轻微影响振荡器频率的稳定性、振荡频率的幅值、起振的难易程序程度和温度稳定性等等。加入使用石英晶体,通常电容选择30pF±10pF,而如果使用陶瓷谐振器,通常选择电容40pF±10F。
3:复位电路
无论是在单片机刚开始接上电源时,还是运行过程中发生故障都需要复位。复位电路用于将单片机内部各电路的状态恢复到一个确定的初始值,并从这个状态开始工作。单片机的复位条件:必须使其RST引脚上持续出现两个(或以上)机器周期的高电平。单片机的复位形式:上电复位、按键复位。
上电复位电路中,利用电容充电来实现复位。在电源接通瞬间,RST引脚上的电位是高电平(Vcc),电源接通后对电容进行快速充电,随着充电的进行,RST引脚上的电位也会逐渐下降为低电平。只要保证RST引脚上高电平出现的时间大于两个机器周期,便可以实现正常复位。
按键复位电路中,当按键没有按下时,电路同上电复位电路。如在单片机运行过程中,按下RESET键,已经充好电的电容会快速通过200Ω电阻的回路放电,从而使得RST引脚上的电位快速变为高电平,此高电平会维持到按键释放,从而满足单片机复位的条件实现按键复位。
六、51单片机原理图
这篇文章仅学习交流!!!