1.1简介
51 单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8004单片机,后来随着Flash rom技术的发展,8004 单片机取得了长足的进展,成为应用最广泛的 8 位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51 单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是51系列的单片机一般不具备自编程能力。
80C51是MCS-51系列中的一个典型品种;其它厂商以8051为基核开发出的 CMOS工艺单片机产品统称为 80C51 系列。当前常用的80C51 系列单片机主要产品有:
Intel(英特尔)的:i80C31、i80C51、i87C51,i80C32、i80C52、i87C52 等;
ATMEL(艾德梅尔)的:AT89C51、AT89C52、AT89C2051,AT89S51(RC),AT89S52 (RC)等;
Philips(飞利浦)、华邦、Dallas(达拉斯)、Siemens(西门子)等公司的许多产品;
STC(国产宏晶)单片机:STC89C51、STC89C52、STC89C516、STC90C516 等众多品牌。
80C51芯片管脚图如下所示:
上图中左图是51单片机非常经典的管脚图,通常采用的是 DIP-40 封装。 其内部资源如下:
- 8位CPU
- 4kbytes程序存储器(ROM) (52为8K)
- 128bytes的数据存储器(RAM)(52有256bytes的RAM)
- 32条I/O口线
- 111条指令,大部分为单字节指令
- 21个专用寄存器
- 2个可编程定时/计数器
- 5个中断源,2个优先级(52有6个)
- 一个全双工串行通信口
- 外部数据存储器寻址空间为64kB
- 外部程序存储器寻址空间为64kB
- 逻辑操作位寻址功能
- 双列直插40PinDIP封装
- 单一+5V电源供电
- CPU:由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器;
- RAM:用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据;
- ROM:用以存放程序、一些原始数据和表格;
- I/O口:四个8位并行I/O口,既可用作输入,也可用作输出;
- T/C:两个定时/记数器,既可以工作在定时模式,也可以工作在计数模式;
- 五个中断源的中断控制系统;
- 一个全双工 UART(通用异步接收发送器)的串行 I/O 口,用于实现单片机之间或单片机与微机之间的串行通信;
- 片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。最佳振荡频率为6M---12M。
其内部结构图如下所示:
总线(BUS)是单片机各部件之间传送信息的公共通道。单片机中有内部总线和外部总线两类,内部总线是CPU内部之间的连线,外部总线是指CPU与其它部件之间的连线;外部总线有三种: 数据总线DB(Data Bus),地址总线AB(Address Bus)和控制总线CB(Control Bus)。
1.2STC89Cxx简介
51单片机大部分使用的是AT89C51或者AT89C52。随着我国芯片技术的快速发展,宏晶公司推出的增强型51单片机 STC89Cxx/STC90Cxx等系列更受大众喜爱,除内部资源及功能大大增强外,还有一个非常重要的是它支持ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器或专用仿真器。宏晶公司推出的51芯片种类非常多,我们只需选择一款经典的学习即可。
本次开发板上使用的是STC89C52,下面我们看下常见 PDIP 封装(直插封装)的 51 单片机芯片实物图如下所示:
上图可看到芯片表面印有 STC89C52RC 40I-PDIO40 1947H0XN52.X90C 丝印,下面我们了解下芯片表面丝印的含义:
STC--表示芯片为STC公司生产的产品,其他公司的也有AT、SST等。
8--表示该芯片为8051内核芯片。
9--表示内部含有Flash EEPROM存储器,还有如80C51中0表内部含有
MaskROM(掩模 ROM)存储器;如87C51中7表示内部含有EPROM(紫外线可擦除ROM)存储器。
C--表示该器件为CMOS产品。还有如89LV52和89LE58中的LV和LE都表示该芯片为低电压产品(通常为3.3V电压供电);而89S52中S表示该芯片含有可串行下载功能的Flash存储器,即具有ISP可在线编程功能。
5--固定不变。
2--表示该芯片内部程序存储(FLASH)空间大小,1为4KB,2为8KB,3为12KB,即该数乘 以 4KB 就是芯片内部的程序存储空间大小。程序空间大小决定了一个芯片所能装入执行代码的多少。一般来说,程序存储空间越大,芯片价格也越高,所以我们再选择芯片的时候要根据自己需求选择合适芯片。
RC--STC单片机内部 RAM(随机读写存储器)为512B(字节)。还有如 RD+表示内部RAM 为 1280B。还有芯片会省略此部分。
注意:该512B这在物理和逻辑上都分为两个地址空间:内部RAM(256字节)和内部扩展RAM(256字节),此外,STC89C52RC还可以访问在片外扩展的64KB外部数据存储器。内部512字节的RAM分为三个部分:低128字节(00H-7FH)、高128字节(80H-FFH)以及内部扩展的256字节RAM空间(00H-FFH)。低128字节的空间既可以直接寻址也可以间接寻址,而高128字节的空间和特殊功能寄存器区SFR的地址空间(80H-FFH)貌似共用相同的地址范围,但物理上是独立的,使用时通过不同的寻址方式加以区分。
1.3 51单片引脚介绍
在上述40个引脚中,按照功能可大致分为4类:
①电源引脚。如 VCC、GND
②时钟引脚。如 XTAL1、XTAL2
③编程控制引脚。如RST、PSEN、ALE/PROG、EA/Vpp。
④I/O 口引脚。如 P0、P1、P2、P3,4组8位I/O 口。
P0口(32脚~39脚):双向8位三态 I/O 口,每个口可独立控制。51单片机P0口内部没有上拉电阻,若输出高时为高阻态,不能正常输出高电平,因此该组 I/O口在使用时务必要外接上拉电阻,一般我们选择接入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口相似。作为第二功能使用时,各引脚的定义如下:
从图中可知,P3 口的每一个引脚均可独立定义为第一功能的输入/输出或第二功能。
1.4 51单片开发板