单片机介绍
单片机简介
一台能够工作的计算机要有这几个部件构成:CPU
(进行运算、控制)、RAM
(数据存储)、ROM
(程序存储)、输入/输出设备
,而字啊单片机中,这些部件全部被做到一块集成电路芯片中,所以就称为单片机(也称为微控制器MCU)
51单片机时对所有兼容
Intel 8031
指令系统的单片机的统称
- Intel(英特尔) :
i80C31
、i80C51
、i87C51
、i80C32
、i80C52
、i87C52
等 - ATMEL(艾德梅尔) :
AT89C51
、AT89C52
、AT89C2051
、AT89S51(RC)
、AT89S52(RC)
等 - STC(国产宏晶) :
STC89C51
、STC89C52
、STC89C516
、STC90C516
等
STC89CXX芯片介绍
命名规则
- STC: 前缀,表示芯片为STC公司生产的产品。其他前缀还有如:AT,I,Winbond,SST等。
- 8: 表示该芯片为8051内核芯片。
- 9:表示内部含 FlashE²PROM 寄存器。还有如80C51中0表示内部含有 Mask Rom(掩模ROM)存储器;又如87C51中7表示内部含有EPROM存储器(紫外线可擦出除ROM)。
- C: 表示该器件为CMOS产品。还有如89LV52和89LE58中的LV和LE都表示该芯片为低电压产品(通常为3.3V供电);而89S52中S表示该芯片含有可串行下载功能的Flash存储器,即具有ISP可在线编程功能。
- 5: 固定不变。
- 1:表示该芯片内部程序存储空间大小。1为4KB,2为8KB……
- RC: STC单片机内部RAM(随机读写存储器)为512B。还有如RD+表示内部RAM为1280B。
- 40: 表示芯片外部晶振最高可接入40MHz。对AT单片机数值一般为24.,表示外部可接入晶振最高24MHz。例如还有
- I:产品级别,表示芯片使用温度还未。I表示工业级(Industrial),温度范围:
-40℃~+85℃
;- C表示商业级(Commercial),温度范围:
0~75℃
- A表示汽车级(Automotive),温度范围:
-40°C~+125℃
- M表示军用级(Military),温度范围:
-55℃~150℃
- C表示商业级(Commercial),温度范围:
- PDIP:表示封装型号。PDIP表示双列直插式。
- 1947:生产日期为19年第47周
内部资源
STC89C51RC/RD+系列单片机是STC推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择,HD版本和90C版本内部集成MAX810专用复位电路。
- 增强型8051单片机,6时钟/机器周期和12时钟/机器周期可任意选择,指令代码完全兼容传统8051
- 工作电压:
5.5V - 3.3V
(5V单片机) /3.8V - 2.0V
(3V单片机) - 工作频率范围:
0 ~ 40MHz
,相当于普通8051的0 ~ 80MHz
,实际工作频率可达48Mhz - 用户应用程序控件:4K / 8K / 13K / 16K / 32K / 64K 字节
- 片上集成1280字节或512字节RAM
- 通用通用IO口(35/39个),复位后为:P1/P2/P3/P4是准双向口/弱上拉(普通8051传统I/O口):PO口是开漏输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。
- ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片
- 有EEPROM功能
- 看门狗
- 内部集成MAX810专用复位电路(HD版本和90C版本才有),外部晶体20M以下时,可省外部复位电路。
- 共3个16位定时器/计数器,其中定时器0还可以当成2个8位定时器使用。
- 外部中断4路,下降沿中断或低电平触发中断,Power Down模式可由外部中断低电平触发中断方式唤醒。
- 通用异步串行口(UART),还可用定时器软件实现多个UART
- 工作温度范围:-40~+85℃(工业级)/0~75℃(商业级)
- 封装:LOFP-44,PDIP-40,PLCC-44,PQFP-44
脚位判断
通过小圆点或凹槽判断引脚1
,通常单片机的引脚为逆时针排序
脚位功能
我们按其功能类别可分为四类:
- 电源引脚。如
VCC
、GND
- 时钟引脚。如
XTAL1
、XTAL2
- 变成控制引脚。如
RST
、PSEN
、ALE/PROG
、EA/Vpp
- I/O扣引脚。如
P0
、P1
、P2
、P3
,4组8位I/O口
VCC(40脚)/GND(20脚)
电源引脚,不同型号单片机接入对应电压,常压为+5V
,低压为+3.3V
XTAL1(19脚)/XTAL2(18脚)
外接时钟引脚。XTAL1为片内振荡电路的输入端。XTAL2为片内振荡电路的输出端。8051的时钟有两种方式,一种是片内时钟振荡方式,即需在这两个引脚处外接石英和振荡电容,振荡电容的值一般取10p~30p
;另一种是外部时钟方式,即将XTAL1接地,外部时钟信号从XTAL2脚输入。通常使用第一种方式
RST(9脚)
复位引脚。当输入连续两个机器周期以上高电平时为有效,用来完成单片机的复位初始化操作,即单片机从头开始执行程序。
PSEN(29脚)
程序存储器允许输出控制端。在读外部程序存储器时PSEN低电平有效,以实现外部程序存储器单元的读操作,由于现在我们使用的单片机内部已经有足够大的 ROM,所以几乎没有人再去扩展外部 ROM
ALE/PROG(30脚)
在扩展外部 RAM 时,ALE 用于控制把 PO 口的输出低8位地址送锁存器锁存起来,以实现低位地址和数据的隔离。ALE有可能是高电平也有可能是低电平,当 ALE为高电平时,允许地址锁存型号,当访问外部存储器时,ALE信号负跳变(即由正变负)将P0口上低8位地址信号送入锁存器;当ALE 为高电平时,P0 口上的内容和锁存器输出一致。关于锁存器后面我们会有介绍。在没有访问外部存储器期间,ALE以1/6振荡周期频率输出(即6分频)当访问外部存储器时,以1/12振荡周期输出(12分频)。从这里可以看到,当没有扩展外部 RAM 时,ALE 会以 1/6 振荡周期的固定频率输出,因此可以作为外部时钟,或作为外部定时脉冲使用。PROG为编程脉冲的输入端,单片机的内部有程序存储器(ROM),它的作用是用来存放用户需要执行的程序,那么我们怎样才能将写好的程序存入这个 ROM 中呢?实际上,我们是通过编程脉冲输入才写进去的,这个脉冲的输入端口就是PROG。现在绝大多数单片机都已经不需要编程脉冲引脚往内部写程序了,比如我们使用的 STC单片机,它可以直接通过串口往里面写程序,只需要三条线与计算机相连即可。而且现在的单片机内部都已经带有丰富的 RAM,所以也不需要再扩展 RAM 了,因此 ALE/PROG 引脚用于不大,大家了解即可。
EA/Vpp(31脚)
EA接高电平时,单片机读取内部程序存储器。当扩展有外部 ROM 时,当读取完内部 ROM 后自动读取外部 ROM。EA 接低电平时,单片机直接读取外部 ROM。我们没有外扩 ROM,并且需要单片机直接读取内部程序存储器因此 EA/Vpp 脚直接接高电平。
P0口(39脚~32脚)
双向8位三态 I/O 口,每个口可独立控制。51 单片机 PO 口内部没有上拉电阻,若输出高时为高阻态,不能正常输出高电平,因此该组 I/O 口,每个口可独立控制。51 单片机 P0 口内部没有上拉电阻,若输出高时为高阻态,不能正常输出高电平,因此该组 I/0口在使用时务必要外接上拉电阻,一般我们选择接入 10K 欧上拉电阻。
P1口(1脚~8脚)
准双向8位 I/O口,每个口可独立控制,内部自带上拉电阻,这种接口输出没有高阻态,输入也不能锁存,故不是真正的双向 I/O口。之所以称它为“准双向”是因为该口在作为输入使用前,要先向该口进行写 1操作,然后单片机内部才可正确读出外部信号,也就是要使其先有个“准”备的过程,所以才称为准双向口。对 52 单片机 P1.0引脚的第二功能未 T2 定时器计数器的外部输入,P1.1引脚的第二功能为 T2EX 捕捉、重装触发,即 T2的外部控制端。
P2口(21脚~28脚)
准双向8位 I/O 口,每个口可独立控制,内部自带上拉电阻,与 P1 口相似。
P3口(10脚~17脚)
准双向8位 I/O 口,每个口可独立控制,内部自带上拉电阻。作为第一功能使用时就当做普通 I/O 口,与 P1口相似。作为第二功能使用时,各引脚的定义如下:
STC89C51芯片内部结构
STC89C51 单片机中包含中央处理器(CPU)、程序存储器(Flash)、数据存储器(SRAM)、定时/计数器、UART 串口、I/O 接口、EEPROM、看门狗等模块。STC89C51系列单片机几乎包含了数据采集和控制中所需的所有单元模块,可称得上一个片上系统。