MCS-51单片机的汇编语言程序由若干条汇编语言指令和伪指令构成。指令存放在程序存储器中,被单片机读取并执行,且执行结果将影响单片机自身的状态。
单片机由中央处理器(含部分特殊功能寄存器)、内部RAM、程序存储器、各种外设(IO端口、定时器、串行接口、中断处理电路等等)及对应控制寄存器、时钟电路、复位电路等几部分组成。
MCS-51单片机4个并行I/O端口引脚的内部结构如图2-10所示,每个端口有8个相互独立且内部结构完全相同的引脚。图2-10中的字母X代表引脚序号,是0~7的整数。接下来将分别介绍P0、P1、P2和P3口的引脚特性。
MCS-51系列单片机产品有8051,8031,8751,80C51,80C31等型号(前三种为CMOS芯片,后两种为CHMOS芯片)。它们的结构基本相同,其主要差别反映在存储器的配置上。8051内部设有4K字节的掩模ROM程序存储器,8031片内没有程序存储器,而8751是将8051片内的ROM换成EPROM。由ATMEL公司生产的89C51将EPROM改成了4K的闪速存储器。
它是80C51单片机中最具有特色的部分,几乎所有80C51系列功能的增加和扩展都是通过增加特殊功能寄存器来达到目的的。英文缩写为SFR,是Special Function Register(特殊功能寄存器)的缩写。
MCS-51单片机的CPU字长为8位,内部包含运算器、控制器和特殊功能寄存器。由于特殊功能寄存器在功能和使用方法方面与存储器比较相似,因此将与存储器一同讲解。本小节仅介绍运算器和控制器的基本情况。
MCS-51单片机内部集成了微处理器、存储器、输入接口和输出接口,其体系结构如图2-1所示。在MCS-51单片机中,ROM存放程序代码,RAM存放数据,因此ROM和RAM分别被称为程序存储器和数据存储器。因为,程序存储器和数据存储器是独立分开的,所以MCS-51单片机属于哈佛体系结构。
在微型计算机中,所有信息(如数值、符号和图像等)均以二进制形式存储、传输和计算。由于二进制数冗长、不方便读写和辨认,因此,现代微型计算机也支持编程时使用书写长度更短的十六进制数和十进制数,同时也为各种非数值信息提供了相应的数值编码(即用数值表示非数值信息)方法。
I2 C总线是Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线(串行时钟线和串行数据线)即可在连接于总线上的器件之间传送信息。这种总线的主要特性如下:
中断系统是计算机的重要组成部分。实时控制、故障自动处理、计算机与外围设备间的数据传送往往采用中断系统。中断系统的应用大大提高了计算机效率。
Philips公司生产的与MCS 51单片机兼容的CMOS型单片机中,8XC552的功能最强,最具有代表性。它除了具有8051单片机的全部功能之外,又增加了大量的硬件:高速I/O、PWM、A/D、WDT、计数器的捕获/比较逻辑、串行总线I2CBUS等都集成在片内。
定时器T2和连接到这个寄存器上的4个16位捕捉寄存器及1个比较器组成定时器T2与捕捉比较逻辑。当在相应引脚上电平发生变化时,捕捉寄存器将捕捉定时器T2的内容,比较逻辑是以固定的时间去设置、复位和触发P4口的输出。
Philips公司生产的与MCS 51单片机兼容的CMOS型单片机中,8XC552的功能最强,最具有代表性。它除了具有8051单片机的全部功能之外,又增加了大量的硬件:高速I/O、PWM、A/D、WDT、计数器的捕获/比较逻辑、串行总线I2CBUS等都集成在片内。
8XC51GB有15个中断源,对应有15个固定的中断矢量地址(见图10.8)。其中有7个外部中断是INT0~INT6,外部中断引脚与端口3和端口5引脚的功能复用;有8个内部中断,它们分别是3个定时器中断(定时器T0、T1、T2)、2个可编程定时计数器阵列中断(PCA、PCA1)、1个串行口中断、1个SEP中断和1个A/D中断。下面分别对各个中断作简要介绍。
中断服务处理子程序可简称为中断服务处理程序或中断程序,用于处理单片机的中断事件,只能被单片机硬件调用执行,而不能通过子程序调用指令(ACALL或LCALL)调用执行。中断服务处理程序只能通过RETI指令返回。