到8K字节,RAM增加到256字节,16位的定时器/计数器增加到3个,串行接口(UART)的通信速度率快6倍。
改进型8X44系列是在基本型上用一种新的串行接口SIU取代UART。SIU是一个HDLC/SDLC通信控制器,属于SIO的通信标准,通信软件已固化在器件内。由于SIU是有两根I/O线的串行通信方式,因而最适宜远距离通信和网络接口。 采用CMOS工艺的8XC51系列,其基本结构和功能与基本型相同。87C51和8XC252还具有两级程序保密系统,可禁止外部对片内ROM中的程序进行读取,为用户提供了一种保护软件不被窃取的有效手段。由于采用CMOS工艺,功耗极低。
超级型8XC252系列是超8位单片机。它们的结构、引脚和指令与MCS-51系列完全相同,但又具有MCS-96系列高速输入/输出(HIS/O)功能和脉冲宽度调制PWM,1个可做加减计数的定时器;1个可做编程计数器库阵列以及适用于串行口的场错误检测和自动地址识别。
51系列由Intel公司转让技术给Philips公司后也生产了很多个型号,产品性能也有提高。
ATMEL公司生产了AT89C51 AT89C52和AT89C1051、AT89C2051等,这些单片机片内采用可加密闪速存储器,性能优良,性价比及高。台湾也在生产51内核的单片机。
2 列的单片机由于其内部功能单元组成及指令系统不尽相同,表现出各种不同的特点,从用户使用角度来看应当有所选择。在各系列的单片机中,片内ROM的配置状态通常有4种形式;
(1)片内驻留掩膜ROM。这种单片机(如MCS-51中的8051)是由厂家用掩摸技术把应用程序写入片内ROM中。用户无法自行改写片内的程序,推广应用受限制。
(2)片内驻留EPROM。这种单片机(如MCS-51中的8751)可由用户把应用程序写入片内ROM中。用紫外线擦除后又能重新写入程序。
(3)片内无ROM。这种单片机(如MCS-51中的8031)必须外接EPROM芯片作为程序存储器,其容量可视需要来灵活配置。这是目前学校教学中使用最广泛的一种单片机,不仅其价格低廉,而且可供用户灵活使用。
(4)片内带闪速可编程电可擦除只读存储器(如AT89C51),这是目前应用产品开发中使用最多的一种单片机系列。
第二章 MCS-51单片机结构原理
2.1 MCS-51单片机的性能及结构
MCS-51系列单片机是在一块芯片上集成了CPU,RAM,ROM、定时器/计数器和多功能I/O口等基本功能部件的一台计算机。单片机必须配备部分外围元件才能使用,其系统核心是单片机芯片。
图2-1 MCS-51单片机的内部结构框图
2.2 CPU的结构
CPU包括运算器和控制器二大部分。
2.2.1 运算器
运算器包括算术/逻辑部件(ALU)、累加器A、暂存寄存器、寄存器B、程序状态寄存器(PSW),十进制调整电路等。运算器主要用于实现算术/逻辑运算及位操作运算。下面介绍运算器的各组成部分。
1、算术/逻辑部件ALU 2、累加器A 3、寄存器B
4、程序状态字寄存器PSW
图2-2 程序状态字寄存器PSW
CY(PSW.7):进位标志位。在进行加法(或减法)运算时,若运算结果最高位有进位或借位,则CY自动置“1”,否则CY置“0”,在进行布尔操作运算时,CY(简称C)作为布尔处理器。
AC:辅助进位标志位。当进行加法或减法时,若低4位向高4位有进位(或借位)时,AC被置“1”,否则AC被置“0”。在十进制调整指令中AC还作为十进制调整的判别位。
F0:用户标志位。用户可用软件对F0位置“1”或清“0”以决定程序的流向。
OV:溢出标志位,当运算结果溢出时OV为“1”,否则为“0”,此标志位反映了运算结果是否溢出。
PSW.1:未定义位。
P(PSW.0):奇偶标志位。MCS-51单片机采用的是偶校验。当累加器A中“1”的个数为奇数时,P置“1”,否则P置“0”。此位反映累加器A中内容“1”的奇偶性,它常常用于机间通信。
RS1、RS0:工作寄存器区选择位。用来选择当前工作的寄存器区。用户通过改变RS1 、RS0的内容来选择当前工作寄存器区。RS1、RS0的内容与工作寄存器区的对应关系如表2-1所示。
表2-1 RS!、RS0与片内寄存器组的对应关系
RS1 0 0 1 1 RS0 0 1 0 1 寄存器区 0 1 2 3 片内RAM地址 00H-07H 08H-0FH 10H-17H 18H-1FH 通用寄存器名称 R0-R7 R0-R7 R0-R7 R0-R7 2.2.2 控制器
1、指令寄存器IR和指令译码器ID。
指令寄存器是存放指令代码的地方。当执行指令时,CPU把从程序存储器中
读取的指令代码送入指令寄存器,然后指令译码器译码后由定时控制电路发生相应的控制信号,最终完成指令所规定的操作。 2、程序计数器PC
程序计数器PC的功能与普通微机相同,它用来存放CPU执行的下一条指令的地址。当一条指令按照PC所指的地址从程序存储器中取出后,PC会自动加1,指向下一条指令。程序计数器PC是一个16位的寄存器,可寻址64KB的程序存储器空间。
3、堆栈指针SP
4、数据指针寄存器DPTR
2.2.3 工作寄存器和特殊功能寄存器
1、工作寄存器
MCS-51有32个工作寄存器,分为四个区(或组)每个区为8个寄存器R0、R1、R2、R3、R4、R5、R6、R7,每一时刻只有一个区工作。由PSW寄存器中的RS1、RS0的值来决定当前的工作区:
当 RS1 RS0=00时,0区为工作区, RS1 RS0=01时,1区为工作区 RS1 RS0=10时,2区为工作区 RS1 RS0=11时,3区为工作区
这32个工作寄存器不但有它们的名称和区号,而且还有地址。00H-1FH共32个单元。
00H~07H为0区,分别对应R0~R7 08H~0FH为1区,分别对应R0~R7 10H~17H为2区,分别对应R0~R7 18H~1FH为3区,分别对应R0~R7
这32个单元为内部数据存储器(即片内RAM)的00H~1FH存贮空间,这与普通微机中的通用寄存器基本相同,所不同的是,普通微机的通用寄存器只有名称,不占有RAM空间,因此只有名字,没有对应的地址;而MCS-51单片机的工作寄存器R0~R7既可以用名字也可以用它的地址来表示。其中R0、R1寄存器除做工作寄
存器外还常做间址寻址的地址指针。
2、特殊功能寄存器SFR(又称专用寄存器) 这21个特殊功能寄存器详情见表2-2。
表2-2 特殊功能寄存器SFR
特殊功能寄存器 功能名称 B A PSW IP P3 IE P2 SBUF SCON P1 TL1 TL0 TH1 TH0 TMOD TCON PCON DPL DPH SP P0 通用寄存器 累加器 程序状态寄存器 中断优先级控制寄存器 P3口数据寄存器 中断允许控制寄存器 P2口数据寄存器 串行口发送/接收缓冲器 串行口控制寄存器 P1口数据存储器 T1计数器低8位 T0计数器低8位 T1计数器高8位 T0计数器高8位 地址 复位后初态 F0H 00H EDH 00H D0H 00H B8H XXX00000B B0H FFH A8H 0XX00000B A0H FFH 99H 不定 98H 00H 90H FFH 8BH 00H 8AH 00H 8DH 00H 8CH 00H 定时器/计数器方式控制寄存器 89H 00H 定时器控制寄存器 电源控制寄存器 地址寄存器低8位 地址寄存器高8位 堆栈指针寄存器 P0口数据寄存器 88H 00H 87H 00H 82H 00H 83H 00H 81H 07H 80H FFH 这21个特殊功能寄存器中,有11个寄存器具有位寻址功能,即寄存器中的每位都具有位地址,可以按位寻址。11个寄存器的位地址如图2-3所示。