第二章单片机系统设计基础一、单片机与嵌入式计算机将CPU、存储器、接口等部件集成在一块芯片上的系统称为单片机SCM(SingleChipMicrocompute)。从单片机诞生这天起,就与它的哥哥微型计算机系统分道扬镳。微型计算机系统走的是通用化的发展道路,也就是不断增加自身的功能。而单片机走的是专用化的发展道路,即朝着控制器的方向发展,使计算机成为进入人类社会全面智能化时代的有力工具。1、关于嵌入式计算机嵌入式计算机就是“嵌入到对象体系中的专用计算机系统”。由此可见,单片机是根据计算机的特殊结构来命名的,而嵌入式计算机是根据计算机形态上来命名的。现在有一个趋势,就是将单片机统一在嵌入式计算机名下。2、单片机的历史和发展在微型计算机系统跟着大型机、巨型机朝着通用性(多功能)方向狂奔的同时,又开辟了另一条道路来发展。1976年Intel公司推出了世界上第一片单片机芯片8048。Intel公司经过不断完善单片机产品,在1980年推出被业界公认经典产品MCS-51系列单片机。这是一款经历了近三十年,仍然是单片机领域内的主流产品,单片机的历史和发展续又经过4年的努力,1984年Intel公司研制出了高性能MCS-96系列单片机。上世纪80年代和90年代是单片机迅速发展和应用年代,各种单片机围绕着应用对象,不断地在内部添加外围接口电路,如A/D转换器、D/A转换器、PWM、日历时钟、电源监测、程序运行监测电路等。突出地显示出单片机对其应用对象的智能化控制能力。因此单片机的称呼也逐渐从SCM变成微控制器MCU(MicroControllerUnit)。单片机的历史和发展续由于单片机或嵌入式计算机的应用领域被不断地拓展,应用系统的外围电路也不断地被集成进嵌入式计算机中,芯片最大化的趋势十分明显,由此,片上系统SoC(SystemonChip)的概念也应运而生。也就是将嵌入式应用系统中的电路元器件尽可能地集成在一块或几块芯片中,这样做的好处是,应用系统电路板非常简洁,减少体积和功耗,提高可靠性。2、单片机产品的类型1)51系列单片机Intel公司在1980年推出被业界公认经典产品MCS-51系列单片机。这是一款经历了近三十年,仍然是单片机领域内的主流产品,这不能不说是件了不起的事情。单片机产品的类型续2、AVR系列单片机AVR单片机是Atmel公司推出的单片机,其显著的特点是高速度、低功耗。它取消机器周期以时钟周期为指令周期实行作业。单片机产品的类型续3、PIC系列单片机PIC单片机系列是美国微芯公司(Microchip)的产品,是当前市场份额增长最快的单片机之一。单片机产品的类型续4、ARM系列ARM公司位于英国,由Acom、苹果公司和VLSI公司联合出资。ARM公司本身不生产芯片,靠转让设计许可盈利,它设计的芯片由联合伙伴公司生产各具特色的芯片。ARM公司专注于设计,其内核耗电少、成本低、功能强,具有16位/32位双指令集。ARM已成为移动通讯、手持电脑、多媒体数字产品嵌入式解决方案的标准。80%的手机采用ARM核芯片。二、嵌入式系统的应用模式1、低端应用模式以电子技术应用工程师为主体,实现传统电子系统的智能化。电子工程师在控制、仪器仪表、机械电子等方面的嵌入式应用。嵌入式系统的嵌入式应用特点,决定了它的多学科交叉特点。嵌入式系统的应用模式续2、高端应用模式随着后PC时代的到来,网络、通信技术得以发展;同时,嵌入式系统软、硬件技术有了很大的提升,为计算机专业人士介入嵌入式系统应用开辟了广阔天地。计算机专业人士的介入,形成的计算机应用模式带有明显的计算机的工程应用特点。MCS-51单片机结构原理一.单片机内部系统结构和资源二.外部引脚1)P0口~P3口:4832根线2)ALE,PSEN,EA:系统扩展控制线3根3)XTAL1,XTAL2:时钟电路接入线2根4)RST:复位线5)VCC,VSS:工作电源线,接地线2根三.CPU51系列单片机中的CPU其结构特性都是相同的,具体如下所述:1.CPU字长8位,内含布尔处理器、算术逻辑运算部件ALU、控制器和工作寄存器组。2.算术运算包括:加、减、乘、除,以及增量运算(加1)和减量运算(减1)。8421BCD码调整。3.逻辑运算包括:与、或、非、异或运算。4.位操作包括:置“1”、清“0”、与、或、非。5.指令系统有111条指令。6.工作寄存器:共分4个区,每一个区有8个寄存器(R0~R7)。这些寄存器放在内部数据存储器区。四.存储器组织1.存储器分类1)存储器系统按功能分成两部分(哈佛结构)程序存储器:64KB数据存储器:64K+128~256字节2)存储器系统按空间分成两部分:片内存储器:程序存储器0~32KB字节,数据存储器128~256个字节。片外存储器:程序存储器,数据存储器64K。存储器组织续位存储器:256位字节存储器3)按存放信息的位数来分2.程序存储器1)程序存储器空间:片内,片外2)编址:共64K,片内,片外统一编址,用16位二进制编地址。3)控制线:EA,PSEN,ALEEA=1,表示片内有程序存储器,地址从0000H开始,如果有4K,则末地址为0FFFH;片外程序存储器的地址从1000H开始。EA=0,表示片内无程序存储器,程序存储器全部在片外。控制线说明续PSEN:是系统访问外部程序存储器的专线,低电平有效。ALE:地址锁存控制信号,用于将访问片外程序存储器的低8位地址打入地址锁存器。3.数据存储器(1)数据存储器空间:片内,128~256byte;片外,0~64KB;(2)编址:片内数据存储器用8位二进制编地址;片外数据存储器用16位二进制编地址。(3)片内数据存储器89C52有256个字节,按功能分1)工作寄存器区:0~1FH,分4个区。2)位寻址区20H~2FH,用于存放各种程序标志,位控制变量。每一位有一个地址,位地址的表示法。例3.166H=(2CH).6。3)堆栈和数据缓冲器30H~7FH,80H~FFH。4.特殊功能寄存器ACC:(Accumulator)累加器PSW(ProgramStateWord)程序状态字寄存器,用于保存指令执行的结果,工作寄存器区的选择。D7D6D5D4D3D2D1D0CYACF0RS1RS0OVF1P工作寄存器区的选择例3.2PSW的D3、D4位用于设置工作寄存器区。特殊功能寄存器位地址例3.2ACC中的D3位,可以表示为:E3、ACC.3;例3.3PSW中的D4位,可以表示为,RS1和PSW.4。(4)控制线:2根RD:对片外数据存储器进行读(取)操作。WR:对片外数据存储器进行写(存)操作。五.I/O接口有4个并行口P0~P3,一个串行口。每一个并行口都可以位寻址,即对每一位进行输入/输出控制。1、P1口P1口有8位,即P1.0~P1.7,P1.0~P1.7具有准双向口功能,P1.0、P1.1还具有其它功能。换句话说P1.0、P1.1是多种功能复用的准双向口。P1.0、P1.1第二功能P1.0、P1.1第二功能是用于定时器/计数器T2,其中P1.0用于引入外部计数信号,P1.1用于捕捉外部控制信号。2、P3口它是一个多功能端口,第一功能与P1口类似,第二功能如下所述:3、P0口它是一个多功能端口,第一功能与P1口类似,第二功能是当单片机工作在扩展方式时作为数据线/地址线的低8位。4、P2口它是一个多功能端口,第一功能与P1口类似,第二功能是当单片机工作在扩展方式时作为地址线的高8位。六.寻址方式寻找操作数的方式,即寻找数据的方式和寻找地址的方式。(一)立即寻址:指令中直接给出操作数本身。例3.7MOVA,#70H该指令是将常数70H复制在累加器ACC中,70H就称为立即数。指令代码见图3-4。图3-4ACC程序存储器PC+101110000立即数PC01110100操作码(二)直接寻址指令中直接给出操作数地址,而不是数据。例3.9MOVA,70H;70H直接地址E5H操作码地址片内数据存储器70H39H该指令执行后,累加器ACC的内容为39H。ACC指令第一字节指令第二字节(三)寄存器寻址指令中给出操作数所在的寄存器地址,即操作数在寄存器中。例3.11MOVA,R3;指令代码为,11101rrr,即11101011若该指令执行前,(A)=20H,(R3)=30H该指令执行后,(A)=(R3)=30H(四)寄存器间接寻址指令中给出的寄存器,其内容不是操作数,而是操作数地址。例3.12MOVA,@R1;若执行前R1的内容为30H,30H的内容为56H,ACC的内容为78H。则,执行后ACC的内容为56H。如下图所示例3.12图示30H30H56H56H程序存储器PC11100111操作码R1地址存储器ACC关于RAM区80H~FFH和SFR的寻址方式由于SFR的地址空间是80H~FFH,恰好与RAM区80H~FFH在地址上发生冲突,因此采用不同的寻址方式来区分对两者的访问!具体是:对RAM区80H~FFH采用寄存器间接寻址的方式,如MOVR0,#80HMOV@R0,A对SFR采用直接寻址的方式,如MOV80H,A或MOVP0,A(五)基寄存器加变址寄存器间接寻址这种寻址方式以PC程序计数器或DPTR数据指针为基寄存器,以ACC累加器为变址寄存器,两者相加的结果就是操作数地址。1.基址寄存器:存放某数据区首地址的寄存器,有DPTR和PC。2.变址寄存器:存放存储器地址变值的寄存器,有ACC。例3.14MOVCA,@A+PC;源操作数地址=(PC)+(ACC)该指令的功能使ACC←((PC)+(ACC))例3.15MOVCA,@A+DPTR;源操作数地址=(DPTR)+(ACC)该指令的功能使ACC←((DPTR)+(ACC))其中变址寄存器ACC的内容是一个正整数。(六)相对寻址操作数是一个地址,其值为当前PC值加上一个偏移量e例3.16SJMP转移地址;转移地址=当前PC值+e当前PC值:该指令进入到执行阶段时PC的值,其值为该指令地址+该指令长度。若该指令地址=12D4H,该指令长度=2个字节。则当前PC值=12D4H+2=12D6H例3.17续若该指令地址为12D4H,e=05H,则转移地址=当前PC值+e=12D4H+2+05H=12DBH七、指令系统1.指令按功能分类编排一共分四类1.数据传送类2.数据处理类3.位操作类4.控制转移类指令是CPU控制系统各部件执行相关操作的指示或命令。51系列单片机的指令系统共有111条指令,它们是程序设计的基础。2、指令按时间分类单机器周期指令双机器周期指令四机器周期指令3、指令按长短分类单字节指令双字节指令三字节指令不同机器周期的指令04H例:MOVX@DPTR,A1)1字节1周期指令2)2字节1周期指令例:ADDA,#30H30H24HF0H例:INCA指令3)1字节2周期指令CPU时序图影响标志位的指令加法和减法指令影响4个标志位(Cy、AC、OV、P)。目的操作数是ACC的逻辑运算指令影响P位。目的操作数是ACC数据传送指令影响P位。目的操作数是ACC的加1和减1指令影响P位。比较不相等指令影响Cy位。4、汇编语言中的伪指令起始指令ORGnn;结束指令END定义字节数据指令[标号:]DB项或项表定义字数据指令[标号:]DW项或项表定义字节变量指令符号名DATAaddr8定义位变量指令符号名BITaddr8等值指令符号名EQU表达式定义字节变量指令符号名XDATAaddr8八、MCS-51中断系统为了使计算机具有机变的处理事件的能力,在计算机内部设置中断系统。另外,在计算机与外围设备传递数据时,为了避免高速的CPU被低速的外围设备拖住,中断技术也能帮助CPU摆脱这一困境。1、中断的概念首先一个问题是,什么是中断?在人们的日常生活中有无中断的事例呢?1.1、什么是中断?一切均来自生活。在日常生活中,或者是在企事业单位中,人们经常会遇到这样的事。当一个经理正在阅读秘书堆在他(她)桌面上的文件时,他(她)桌面上的