1、单片机应用技术目目 录录1243 35第第1章章 绪论绪论第第2章章 MCS-51单片机结构和原理单片机结构和原理第第3章章 MCS-51指令系统指令系统第第4章章 MCS-51汇编语言程序设计汇编语言程序设计第第5章章 MCS-51的中断系统及定时器的中断系统及定时器/计数器计数器下一页返回目目 录录6793 8第第6章章 MCS-51串行接口串行接口第第7章章 MCS-51单片机系统扩展单片机系统扩展第第8章章 数数/模和模模和模/数转换器接口数转换器接口第第9章章 MCS-51单片机的应用系统实例单片机的应用系统实例上一页返回谢谢观赏 第第1章章 绪论绪论1243 31.1 单片机基础知
2、识单片机基础知识1.2 单片机的应用单片机的应用1.3 MCS-51 系列单片机与系列单片机与AT89C5x系系列单片机列单片机1.4 Vision 集成开发环境介绍集成开发环境介绍返回1.1单片机基础知识 1.1.1什么是单片机 单片机是一片半导体硅片集成中央处理单元(CPU)、存储器(RAM,ROM)、并行I/0、串行I/0、定时器/计数器、中断系统、系统时钟电路及系统 总线的微型计算机。它具有微型计算机的属性,因而被称为单片微型计算机,简称单片机。单片机主要应用于测控领域。使用时,单片机通常是处于测控系统的核心地位并嵌入其中,因此,国际上通常把单片机称为嵌入式控制器(EMCU,embed
3、dedmicrocontroller unit),或微控制器(MCU,microcontroller unit)。我国的研究者习惯于使用“单片机”这一名称。下一页返回1.1单片机基础知识 单片机是计算机技术发展史上的一个重要里程碑,标志着计算机正式形成了通用计算机系统和嵌入式计算机系统两大分支。单片机体积小、成本低,可嵌入到工业控制单元、机器人、智能仪器仪表、汽车电子系统、武器系统、家用电器、办公自动化设备、金融电子系统、玩具、个人信息终端及通信产品中。按照其用途可将单片机分为通用型和专用型两大类。(1)通用型单片机就是其内部可开发的资源(如存储器、I/0等各种外围功能部件)可以全部提供给用户
4、。用户根据需要,设计一个以通用单片机芯片为核心,再配以外围接口电路及其他外围设备,并编写相应的软件来满足各种不同需要的测控系统。人们通常所说的单片机和本书介绍的单片机都是指通用型单片机。上一页 下一页返回1.1单片机基础知识(2)专用型单片机是专门针对某些产品的特定用途而制作的单片机。例如,各种家用电器中的控制器等。由于用途特定,单片机芯片制造商常与产品厂家合作,设计和生产“专用”的单片机芯片。由于在设计中已经对“专用”单片机的系统结构最简化、可靠性和成本的最佳化等方面做了全面的综合考虑,所以“专用”单片机具有十分明显的综合优势。无论“专用”单片机在用途上有多么“专”,其基本结构和工作原理都是
5、以通用单片机为基础的。上一页 下一页返回1.1单片机基础知识 1.1.2单片机的特点 单片机是集成电路技术与微型计算机技术高速发展的产物,其体积小、价格低、应用方便、稳定可靠,因此,给工业自动化等领域带来了一场重大技术革命。由于单片机体积小,可很容易地嵌入到系统之中,以实现各种方式的检测、计算或控制,这一点,一般微型计算机根本做不到。单片机本身就是一个微型计算机,因此只要在单片机的外部适当增加一些必要的外围扩展电路,就可以灵活地构成各种应用系统,如工业自动检测监视系统、数据采集系统、自动控制系统、智能仪器仪表等。上一页 下一页返回1.1单片机基础知识 为什么单片机应用广泛?主要是因为其具有以下
6、优点:(1)功能齐全、应用可靠、抗干扰能力强。(2)简单方便、易于普及。单片机技术容易掌握。应用系统设计、组装、调试已经是一件容易的事情,工程技术人员通过学习可很快掌握其应用设计技术。(3)发展迅速、前景广阔。短短几十年,单片机经过4位机、8位机、16位机、犯位机等几大发展阶段。尤其是集成度高、功能日臻完善的单片机不断问世,使单片机在工业控制及工业自动化领域获得长足发展和广泛应用。目前,单片机内部结构愈加完美,片内外围功能部件越来越完善,为向更高层次和更大规模的发展奠定坚实的基础。上一页 下一页返回1.1单片机基础知识(4)具有嵌入容易、用途广泛、体积小、性能价格比高、应用灵活性强等特点,在嵌
7、入式微控制系统中具有十分重要的地位。单片机出现前,制作一套测控系统,需要大量的模拟电路、数字电路、分立元件以实现计算、判断和控制功能。但是,该测控系统的体积庞大,线路复杂,连接点多,易出现故障。单片机出现后,测控功能的绝大部分由单片机的软件程序来实现,其他电子线路则由片内的外围功能部件来替代。1.1.3单片机的发展概况 单片机按其处理的二进制位数主要分为:4位单片机、8位单片机、16位单片机和犯位单片机。上一页 下一页返回1.1单片机基础知识 单片机的发展大致分为4个阶段:第一阶段(1974-1976年):单片机初级阶段。因工艺限制,单片机采用双 片的形式而且功能比较简单。1974年12月,仙
8、童公司推出了8位的F8单片机,实际上只包括了8位CPU,64B RAM和2个并行口。第二阶段(1976-1978年):低性能单片机阶段。1976年,Intel的MCS-48单片机(8位)极大地促进了单片机的变革和发展;1977年GI公司推出了 PIC1650,但这个阶段仍处于低性能阶段。第三阶段(1978-1983年):高性能单片机阶段。1978年,Zilog公司推出Z8单片机;1980年,Intel公司在MCS-48系列基础上推出MCS一51 系列,M otorola推出6801单片机。这些单片机的出现使其性能及应用跃上新的台阶。上一页 下一页返回1.1单片机基础知识 此后,各公司的8位单片
9、机迅速发展。推出的单片机普遍带有串行I/0口、多级中断系统、16位定时器/计数器,片内ROM,RAM容量加大,且寻址范围可达64 KB,有的片内还带有A/D转换器。由于这类单片机的性能价格比高,所以被广泛应用,是当时应用数量最多的单片机。第四阶段(1983年至今):8位单片机巩固发展及16位单片机、犯位单片机推出阶段。16位典型产品是Intel公司的MCS-96系列单片机。而32位单片机除了具 有更高的集成度外,其数据处理速度比16位单片机提高许多,性能比8位、16位单片机更加优越。上一页 下一页返回1.1单片机基础知识 20世纪90年代是单片机制造业大发展时期,Motorola、Intel、
10、ATMEL、德州仪器(TI)、三菱、日立、飞利浦、LG等公司开发出一大批性能优越的单片机,极大地推动了单片机的应用。近年来又涌现出不少新型的高集成度的单片机产品,出现了产品丰富多彩的局面。目前,除8位单片机得到广泛应用外,16位单片机、32位单片机也得到广大用户青睐。上一页返回1.2单片机的应用 单片机是在一块芯片上集成了一台微型计算机所需的CP玖存储器、输入/输出部件和时钟电路等。因此,它具有体积小、使用灵活、成本低、易于产品化、抗干扰能力强、可在各种恶劣环境下可靠地工作等特点。特别是它应用面广、控制能力强的优点,使它在工业控制、智能仪表、外设控制、家用电器、机器人、军事装置等方面得到了广泛
11、的应用。单片机主要可用于以下几方面:1.侧控系统中的应用 控制系统特别是工业控制系统的工作环境恶劣,各种干扰也强,而且往往要求实时控制,故要求控制系统工作稳定、可靠、抗干扰能力强。单片机最适宜用于控制领域,如炉子恒温控制、电镀生产线自动控制等。下一页返回1.2单片机的应用 2.智能仪表中的应用 用单片机制作的测量、控制仪表,能使仪表向数字化、智能化、多功能化、柔性化发展,并使监测、处理、控制等功能一体化,使仪表重量大大减轻,便于携带和使用,同时降低了成本,提高了性能价格比,如数字式RLC测量仪、智能转速表、计时器等。3.智能产品中的应用 单片机与传统的机械产品结合,使传统机械产品结构简化、控制
12、智能化,构成新型的机、电、仪一体化产品,如数控车床、智能电动玩具、各种家用电器和通信设备等。上一页 下一页返回1.2单片机的应用 4.在智能计算机外设中的应用 在计算机应用系统中,除通用外部设备(键盘、显示器、打印机等)外,还有许多用于外部通信、数据采集、多路分配管理、驱动控制等接口。如果这些外部设备和接口全部由主机管理,势必造成主机负担过重、运行速度降低,并且不能提高对各种接口的管理水平。但如果采用单片机专门对接口进行控制和管理,则主机和单片机就能并行工作,这不仅大大提高了系统的运算速度,而且单片机还可对接口信息进行预处理,以减少主机和接口间的通信密度、提高接口控制管理的水平,如绘图仪控制器
13、,磁带机、打印机的控制器等。上一页 下一页返回1.2单片机的应用 综上所述,单片机在很多应用领域都得到了广泛的应用。目前,国外的单片机应用已相当普及。国内虽然从1980年开始才着手开发应用,但至今也已拥有数十家专门生产单片机开发系统的工厂或公司,愈来愈多的科技工作者投身到单片机的开发和应用中,并且在程序控制、智能仪表等方面涌现出大量科技成果。可以预见,单片机在我国必将有着更为广阔的发展前景。上一页返回1.3 MCS-51系列单片机与AT89 CS x系列单片机 1.3.1 MCS-51系列单片机 MCS是Intel公司单片机的系列符号,如MCS-48,MCS-51,MCS-%系列单片机。MCS
14、-51系列单片机是在MCS-48系列单片机基础上,于20世纪80年代初发展起来的,是最早进入我国,并在我国得到广泛应用的单片机主流品种。MCS-51系列品种丰富,经常使用的是基本型和增强型。1.基本型 典型产品有:8031/8051/8751。下一页返回1.3 MCS-51系列单片机与AT89 CS x系列单片机 8031内部包括一个8位CPU,1288 RAM,21个特殊功能寄存器(SFR),四个8位并行I/0口、一个全双工串行口、两个16位定时器/计数器、五个中断源,但片内无程序存储器,需外扩程序存储器芯片。8051是在8031的基础上,片内又集成有4KB ROM作为程序存储器。所以805
15、1是一个程序不超过4KB的小系统。ROM内的程序是公司制作芯片时,代用户烧制的。8751与8051相比,片内集成的4KB EPROM取代了8051的4KB ROM来作为程序存储器。上一页 下一页返回1.3 MCS-51系列单片机与AT89 CS x系列单片机 2.增强型 Intel公司在基本型基础上,推出增强型一52子系列,典型产品:8032/8052/8752。内部RA M增到256 B,8052片内程序存储器扩展到8KB,16位定时器/计数器增至3个,有6个中断源,串行口通信速率提高5倍。表1-1列出了基本型和增强型的MCS-51系列单片机片内的基本硬件资源。1.3.2 AT89CSx(A
16、T89SSx)系列单片机 20世纪80年代中期以后,Intel集中精力开发、研制高档CPU芯片,淡出单片机芯片的开发和生产。上一页 下一页返回1.3 MCS-51系列单片机与AT89 CS x系列单片机 MCS-51系列单片机设计上的成功以及较高的市场占有率,使其已成为许多厂家、电气公司竞相选用的对象。Intel公司以专利形式把8051内核技术转让给ATMEL、Philips、Cygnal、ANALOG,LG,ADI、Maxim,DALLAS等公司。生产的兼容机与8051兼容,采用CMOS工艺,因而常用80C51系列单片机来称呼所有这些具有8051指令系统的单片机,这些兼容机的各种衍生品种统称
17、为51系列单片机或简称为51单片机,是在8051的基础上又增加一些功能模块(称其为增强型、扩展型子系列单片机)。近年来,世界上单片机芯片生产厂商推出的与8051(80C51)兼容的主要产品如表1-2所示。上一页 下一页返回1.3 MCS-51系列单片机与AT89 CS x系列单片机 在众多的衍生机型中,ATMEL公司的AT89C5x/AT89S5x系列单片机,尤其是AT89 C51/AT89 S5和AT89C52/AT89S52在8位单片机市场中占有较大的市场份额。ATMEL公司1994年以E2PROM技术与Intel公司的80C51内核的使用权进行交换。ATMEL公司的技术优势是闪烁(Fla
18、sh)存储器技术,将Flash技术与 80C51内核相结合形成了片内带有Flash存储器的AT89 C5 x/AT89 S5x系列单片机。AT89 CS x/AT89 S5 x系列单片机与MCS-51系列单片机在原有功能、引脚以及指令系统方面完全兼容。上一页 下一页返回1.3 MCS-51系列单片机与AT89 CS x系列单片机 AT89 S5 x的“S”档系列机型是ATMEL公司继AT89 C5 x系列之后推出的新机型,代表性产品为AT89 S51和AT89 S52。基本型的AT89 C51与AT89 S51以及增强型的AT89 C52与AT89 S52的硬件结构和指令系统完全相同。使用AT
19、89 C51的系统,在保留原来软硬件的条件下,完全可以用AT89 S51直接代换。与AT89 C5 x系列单片机相比,AT89 S5 x系列单片机的时钟频率以及运算速度有了较大的提高。例如,AT89 S51工作频率的上限24MHz,而AT89 S51工作频率的上限则为33MHzo AT89S51片内集成有双数据指针DPTR、看门狗定时器,具有低功耗空闲工作方式和掉电工作方式。目前,AT89 S5 x系列已逐渐取代AT89 C5 x系列。上一页 下一页返回1.3 MCS-51系列单片机与AT89 CS x系列单片机 表1-3为ATMEL公司AT89C5x/AT89S5x系列单片机主要产品片内硬件
20、资源。由于种类多,要依据实际需求来选择合适的型号。表1-3中的AT89 C 1051与AT89 C2051为低档机型,均为20只引脚。当低档机满足设计需求时,就不要采用较高档次的机型。表1-3中,“LV”代表低电压,它与AT89 S51的主要差别是其工作时钟频率为12MHz,工作电压为2.7 6 V,编程电压VPP为12 V。AT89 LV51的低电压电源工作条件可使其在便携式、袖珍式、无交流电源供电的环境中应用,特别适于电池供电的仪器仪表和各种野外操作的设备中。上一页 下一页返回1.3 MCS-51系列单片机与AT89 CS x系列单片机 尽管AT89 C5 x/AT89 S5 x系列单片机
21、有多种机型,但掌握好基本型AT89 S51单片机十分重要,因为它们是具有8051内核的各种型号单片机的基础,最具典型性和代表性,同时也是各种增强型、扩展型等衍生品种的基础。本书以AT89 S51作为51单片机的代表性机型来介绍单片机的原理及应用。上一页返回1.4 Vision集成开发环境介绍 Vision集成开发环境是美国Keil公司的产品,它集编辑、编译(或汇 编)、仿真调试等功能于一体,具有当代典型嵌入式处理器的流行界面。常用的版本是 Vision2,较新的版本是 Vision3,Vision4。目前,它支持世界上几十家公司的数百种嵌入式处理器,包括80C51系列的各种单片机、非80C51
22、系列的各种单片机及ARM等。它支持汇编程序的开发,也支持C语言程序的开发。1.4.1 Vision的界面 Vision3的界面如图1-1所示。它具有菜单栏、快捷工具栏,可以打开的主要界面是工程窗口和对应的文件编辑窗口、运行信息显示窗口、存储器信息显示窗口等。下一页返回1.4 Vision集成开发环境介绍 为了便于单片机资源的观察,在工程窗口中可以展开Register标签,从而可以方便地观察单片机寄存器的状态,打开存储器信息窗口可以显示ROM,RAM的内容,还可以打开多种窗口用于应用软件的调试。1.4.2目标程序的生成 1.建立工程 为了获得目标程序,通常需要利用多个程序构成工程文件,这些程序包
23、括汇编语言源文件、c语言源文件、库文件、包含文件等。生成目标文件的同时,还可以自动生成一些便于分析和调试目标程序的辅助文件。对这些文件进行较好的管理与组织,常用的方法就是建立一个工程文件。上一页 下一页返回1.4 Vision集成开发环境介绍 用鼠标单击Project菜单下的New Vision Project,在弹出的窗口中输入准备建立的工程文件名。2.配置工程 刚建立的工程仅是一个框架,应根据需求添加相应的程序。在工程窗口的Source Groupl处单击鼠标右键会弹出一个菜单,点击其中的选项Add Files toGroup Source Groupl,在弹出的窗口中改变文件类型,填入文
24、件名。3.编译工程 工程的编译是正确生成目标程序的关键,要完成这一任务应该进行一些基本设置。在Project菜单的下拉选项中,单击Open for Target Targetl,弹出的窗口如图1-2所示。上一页 下一页返回1.4 Vision集成开发环境介绍 工程的编译设置内容较多,多数可以选用默认设置,但有些内容必须确认或修改,这些内容包括:(1)Device标签,单片机型号的选择。(2)Target标签,晶振频率的设置。(3)Output标签,输出文件选项Create HEX File上要打钩。(4)Debug标签,软件模拟方式与硬件仿真方式的选择。这些配置完成后就可以进行工程的编译了。在
25、Project菜单的下拉选项中,单击Rebuild All Target Files选项,系统进行编译并提示编译信息。如果有错误,进行修改后重新编译,直至无错并生成目标文件。此时在该工程的文件夹下会找到新生成的文件。上一页 下一页返回1.4 Vision集成开发环境介绍 1.4.3仿真调试 目标文件的正确无误是应用系统的基本要求,要想达到这一目标通常要经过仿真调试过程。仿真调试可以分两大类:一类是软件模拟,即Simulator;另一类是硬件仿真,即Monitor。前者无需硬件仿真器,但是无法仿真目标系统的实时功能,常用于算法模拟;后者需要硬件仿真器,它可以仿真目标系统的实时功能,常用于应用系统
26、的硬件调试。在Debug菜单的下拉选项中单击Start/Stop Debug Session,会使Debug菜单下的Run、Step等选项成为可选状态。程序运行时可以利用Vision的调试功能观察存储器、寄存器、片内设备、片外设备的状态,特别是可以利用开发环境的虚拟串口与模拟单片机的串口交互信息,为应用程序的调试带来极大的方便。上一页返回表1-1 MCS-51系列单片机的片内硬件资源返回表1-2 与80 C51兼容的主要产品返回表1-3 ATMEL公司生产的AT89S5x系列单片机的片内硬件资源返回图1-1 Vision3的界面返回图1-2编译设置界面返回谢谢观赏第第2章章 MCS-51单片机
27、结构和原理单片机结构和原理1243 32.1 MCS-51单片机的内部结构单片机的内部结构2.2 MCS-51单片机的引脚及其片外总线单片机的引脚及其片外总线2.3 复位和复位电路复位和复位电路2.4 CPU的时钟与时序的时钟与时序返回2.1 MCS-51单片机的内部结构 2.1.1 MCS-51系列的80 C51单片机结构 MCS-51单片机是在一块芯片中集成了CPU,RAM,ROM、定时器/计数器和多种功能的I/0线等一台计算机所需要的基本功能部件。MCS-51单片机内包含下列几个部件:(1)一个8位CPU.(2)一个片内振荡器及时钟电路。(3)4K字节ROM程序存储器。(4)128字节R
28、AM数据存储器。(5)两个16位定时器/计数器。下一页返回2.1 MCS-51单片机的内部结构(6)可寻址64 K外部数据存储器和64 K外部程序存储器空间的控制电路。(7)32条可编程的I/0线(四个8位并行I/0端口)。(8)一个可编程全双工串行口。(9)具有五个中断源、两个优先级嵌套中断结构。80C51单片机结构框图如图2-1所示,各功能部件由内部总线连接在一起。2.1.2 CPU结构 80C51单片机由CPU(含运算器、控制器及一些寄存器)、存储器和I/0口 组成,其内部逻辑结构如图2-2所示。上一页 下一页返回2.1 MCS-51单片机的内部结构 1.运算器 运算器由算数/逻辑运算单
29、元ALU,累加器AC住寄存器玖暂存寄存器、程序状态字寄存器PSW组成。运算器的任务是实现算数和逻辑运算、位变量处理和数据传送等操作。80C51的ALU功能极强,不仅能完成8位二进制的加、减、乘、除、加1,减1及BCD加法的十进制调整等算术运算,还能对8位变量进行逻辑“与”“或”“异或”、循环移位、求补、清零等逻辑运算,并具有数据传输、程序转移等功能,同时还具有一般处理器不具备的位处理功能。上一页 下一页返回2.1 MCS-51单片机的内部结构 累加器ACC(简称累加器A)为一个8位寄存器,它是CPU中使用最频繁的寄存器。进入ALU做算术和逻辑运算的操作数多来自A,运算结果也常送回A保存。寄存器
30、B是为ALU进行乘除法运算而设置的。若不做乘除运算时,则可作为通用寄存器使用。程序状态字PSW是一个8位的标志寄存器,它保存指令执行结果的特征信息,以供程序查询和判别。PSW各位的定义如下,字节地址为DOH。上一页 下一页返回2.1 MCS-51单片机的内部结构 进位标志位C (PSW.7):在执行某些算术操作类、逻辑操作类指令时,可被硬件或软件置位或清零。它表示运算结果是否有进位或借位。如果在最高位有进位(加法时)或有借位(减法时),则C=1;否则C=0。辅助进位(或称半进位)标志位AC(PSW.6):表示两个8位数运算,低4 位有无进(借)位的状况。当低4位相加(或相减)时,若D3位向D4
31、位有进 位(或借位),则AC=1;否则AC=0。在BCD码运算的十进制调整中要用到该标志。用户自定义标志位F0 (PSW.5):用户可根据自己的需要对F0赋予一定的含义,通过软件置位或清零,并根据F0=1或0来决定程序的执行方式,或反映系统某一种工作状态。上一页 下一页返回2.1 MCS-51单片机的内部结构 工作寄存器组选择位RS1,RS0 (PSW.东PSW.3):可用软件置位或清零,用于选定当前使用的四个工作寄存器组中的某一组。溢出标志位OV(PSW.2):做加法或减法时,由硬件置位或清零,以指示运算结果是否溢出。OV=1表示运算结果超出了累加器的数值范围(无符号数的范围为0255,以补
32、码形式表示一个有符号数的范围为-128+127)。进行无符号数的加法或减法时,OV的值与进位位C的值相同;进行有符号数的加法时,如最高位、次高位之一有进位,或做减法时,如最高位、次高位之一有借位,OV被置位,即OV的值为最高位和次高位的异或(C7 C6)。上一页 下一页返回2.1 MCS-51单片机的内部结构 执行乘法指令MUL AB也会影响OV标志。积大于255时,OV=1;否则 OV=0。执行除法指令DIV AB也会影响OV标志。若B中所放除数为0,OV=1;否 则OV=0。奇偶标志位P (PSW.0):在执行指令后,单片机根据累加器A中1的个数的奇偶自动给该标志位置位或清零。若A中1的个
33、数为奇数,则P=1;否则P=0。该标志对串行通信的数据传输非常有用,通过奇偶校验可检验传输的可靠性。上一页 下一页返回2.1 MCS-51单片机的内部结构 2.控制器 控制器包括程序计数器、指令寄存器、指令译码器、定时及控制逻辑电路等。功能是控制指令的读入、译码和执行,从而对各功能部件进行定时和逻辑控制。程序计数器PC是一个独立的16位计数器,不可访问。单片机复位时,PC中的内容为0000 H,从程序存储器0000 H单元取指令,开始执行程序。PC工作过程是:CPU读指令时,PC的内容作为所取指令的地址,程序存储器按此地址输出指令字节,同时PC自动加1;PC中的内容变化轨迹决定程序流程,当顺序
34、执行程序时自动加1;执行转移程序或子程序、中断子程序调用时,自动将其内容更改成所要转移的目的地址。上一页 下一页返回2.1 MCS-51单片机的内部结构 PC的计数宽度决定了程序存储器的地址范围。PC为16位,故可对64 KB(216B)寻址。2.1.3存储器 MCS-51单片机的程序存储器和数据存储器空间是互相独立的,物理结构也不同。程序存储器为只读存储器(ROM)。数据存储器为随机存取存储器(RAM)。各有自己的寻址系统、控制信号和功能。程序存储器用来存放程序和始终要保留的常数,如所编程序经汇编后的机器码。数据存储器通常用来存放程序运行中所需要的常数或变量,如做加法时的加数和被加数、做乘法
35、时的乘数和被乘数、模/数转换时实时记录的数据等。单片机的存储器编址方式采用与工作寄存器、I/0口锁存器统一编址的方式。上一页 下一页返回2.1 MCS-51单片机的内部结构 从物理地址空间看,MCS-51有四个存储器地址空间,即片内程序存储器、片外程序存储器、片内数据存储器和片外数据存储器。MCS-51系列各芯片的存储器在结构上有些区别,但区别不大。从应用设计的角度可分为如下两种情况:片内有程序存储器和片内无程序存储器;片内有数据存储器但存储单元够用和片内有数据存储器但存储单元不够用。1.程序存储器 程序存储器用来存放程序和表格常数。程序存储器以程序计数器PC作地址指针,通过16位地址总线,可
36、寻址的地址空间为64 K字节。片内、片外统一编址。上一页 下一页返回2.1 MCS-51单片机的内部结构 1)片内有程序存储器且存储空间足够 在80C51片内,带有4K字节ROM/EPROM程序存储器(内部程序存储器),4K字节可存储两千多条指令,对于一个小型的单片机控制系统来说就足够了,不必另加程序存储器。若不够还可选8K或16K内存的单片机芯片,如89C52等。总之,尽量不要扩展外部程序存储器,这会增加成本、增大产品体积。2)片内有程序存储器但存储空间不够 若开发的单片机系统较复杂,片内程序存储器存储空间不够用时,可外扩展程序存储器。具体扩展多大的芯片要计算一下,由两个条件决定:一是看程序
37、容量大小;二是看扩展芯片容量大小。上一页 下一页返回2.1 MCS-51单片机的内部结构 64 K总容量减去内部4K即外部能扩展的最大容量,2764的容量为8K,27128的容量为16K,27256的容量为32K,27512的容量为64 K。若再不够就只能换芯片,选16位芯片或32位芯片都可。确定了芯片后就要计算地址,再将EA引脚接高电平,使程序从内部ROM开始执行,当PC值超出内部ROM的容量时,会自动转向外部程序存储器空间。3)片内无程序存储器 80C31芯片无内部程序存储器,需外部扩展EPROM芯片,地址在0000 H-FFFFH都是外部程序存储器空间,在设计时EA应始终接低电平,使系统
38、只从外部程序存储器中取指令。上一页 下一页返回2.1 MCS-51单片机的内部结构 MCS-51单片机复位后程序计数器PC的内容为0000 H,因此系统从0000 H单元开始取值,并执行程序,它是系统执行程序的起始地址,通常在该单元中存放一条跳转指令,而用户程序从跳转地址开始存放程序。2.数据存储器 1)内部数据存储器 MCS-51单片机的数据存储器无论在物理上或逻辑上都分为两个地址空间:一个为内部数据存储器,访问内部数据存储器用MOV指令;另一个为外部数据存储器,访问外部数据存储器用MOVX指令。上一页 下一页返回2.1 MCS-51单片机的内部结构 MCS-51系列单片机各芯片内部都有数据
39、存储器,是最灵活的地址空间,它分成物理上独立的且性质不同的几个区:OOH 7FH (0 127)单元组成的128字节地址空间的RA M区;80HFFH (128255)单元组成的高128字节地址空间的特殊功能寄存器(又称SFR)区。注意:80C32/80C52单片机将这一高128字节作为RA M区。在80C51,87C51和80C31单片机中,只有低128字节的RA M区和128字节的特殊功能寄存器区的地址空间是相连的,特殊功能寄存器(SFR)地址空间为80H FFH。注意:128字节的SFR区中只有26个字节是有定义的,若访问的是这一区中没有定义的单元,则得到的是一个随机数。上一页 下一页返
40、回2.1 MCS-51单片机的内部结构 (1)工作寄存器区。内部RA M区中不同的地址区域功能结构如图2-3所示。图中,00 H 1FH(031)共犯个单元是四个通用工作寄存器区,每一个区有八个工作寄存器,编号为R0R7,每一区中R0R7的地址见表2-1。当前程序使用的工作寄存区是由程序状态字PSW(特殊功能寄存器,字节地址为ODOH)中的D东D3位(RS1和RSO)来指示的,PSW的状态和工作寄存区对应关系见表2-2。CPU通过对PSW中的D东D3位内容的修改,就能任选一个工作寄存器区。如果用户程序不需要四个工作寄存器区,则不用的工作寄存器单元可以作一般的RAM使用。上一页 下一页返回2.1
41、 MCS-51单片机的内部结构 (2)位寻址区。内部RAM的20H2FH为位寻址区,见表2-3。这16个单元和每一位都有一个位地址,位地址范围为OOH 7FH。位寻址区的每一位都可以视作软件触发器,由程序直接进行位处理。通常把各种程序状态标志、位控制变量设在位寻址区内。同样,位寻址区的RAM单元也可以作一般的数据缓冲器使用。(3)通用RAM区。位寻址区之后的30H 7FH为通用RAM区。这些单元可以作为数据缓冲区使用。这一区域的操作指令非常丰富,数据处理方便灵活。在实际应用中,堆栈一般设在30H 7FH之内。栈顶的位置由堆栈指针SP指示。复位时SP的初值为07 H,在系统初始化时通常要重新设置
42、。上一页 下一页返回2.1 MCS-51单片机的内部结构 2)外部数据存储器 MCS-51具有扩展64 K字节外部数据存储器和I/0口的能力,这对很多应用领域已足够,对外部数据存储器的访问采用MOVX指令,用间接寻址方式,R0,R1和DPTR都可作间址寄存器。若系统较小,内部的RAM (30H 7FH)足够的话,就不要再扩展外部数据存储器RAM。若确实要扩展就用串行数据存储器24 C系列,也可用并行数据存储器。3.特殊功能寄存器 MCS-51单片机内的锁存器、定时器、串行口数据缓冲器以及各种控制寄存和状态寄存器都是以特殊功能寄存器的形式出现的,它们分散地分布在内部RAM地址空间范围。上一页 下
43、一页返回2.1 MCS-51单片机的内部结构 表2-4列出了这些特殊功能存储器的助记标识符、名称及地址,其中大部分寄存器的应用将在后面有关章节中详述,这里仅作简单介绍。1)累加器A 最常用的特殊功能寄存器,大部分单操作数指令的操作数取自累加器,很多双操作数指令的一个操作数取自累加器。加、减、乘、除算术运算指令的运算结果都存放在累加器A或A,B寄存器对中。指令系统中用A作为累加器的助记符。2)寄存器B 寄存器B是乘除法指令中常用的寄存器。乘法指令的两个操作数分别取自A和B,其结果存放在A,B寄存器对中。除法指令中,被除数取自A,除数取自B,商数存放于A,余数存放于B。上一页 下一页返回2.1 M
44、CS-51单片机的内部结构 在其他指令中,寄存器B可作为RAM中的一个单元来使用。3)程序状态字PSW 程序状态字PSW是一个8位寄存器,它包含了程序状态信息。此寄存器各位的含义说明如下:(1)CY(PSW,7)进位标志。在执行某些算术和逻辑指令时,可以被硬件或软件置位或清零。上一页 下一页返回2.1 MCS-51单片机的内部结构(2)AC (PSW,6)辅助进位标志。当进行加法或减法操作出现由低4位数(BCD码一位)向高4位数进位或借位时,AC将被硬件置位,否则就被清零。AC被用于BCD码调整。(3)FO (PSW.5)用户标志位。FO是用户定义的一个状态标记,用软件来使它置位或清零。该标志
45、位状态一经设定,可由软件测试FO以控制程序的流向。(4)RS1,RS0 (PSW.4、PSW.3)寄存器区选择控制位。可以用软件来置位或清零以确定工作寄存器区。RS1,RS0与寄存器区的对应关系见表2-3。上一页 下一页返回2.1 MCS-51单片机的内部结构 (5)OV (PSW.2)溢出标志。当执行算术指令时,由硬件置位或清零,以指示溢出状态。当执行加法指令ADD时,位6向位7有进位而位7不向CY进位时,或位6 不向位7进位而位7向CY进位时,溢出标志OV置位;否则清零。溢出标志常用于ADD和SUBS指令对带符号数作加减运算,OV=1表示加减运算的结果超出了目的寄存器A所能表示的带符号数(
46、2的补码)的范围(-128+127),参见第3章中关于 ADD和SUBS指令的说明。在MCS-51中,无符号数乘法指令MUL的执行结果也会影响溢出标志。若置于累加器A和寄存器B的两个数的乘积超过255时,OV=1;否则OV=0。上一页 下一页返回2.1 MCS-51单片机的内部结构 此积的高8位放在B内,低8位放在A内。因此,OV=0意味着只要从A中取得乘积即可,否则要从B,A寄存器对中取得乘积。除法指令DIV也会影响溢出标志。当除数为0时,OV=1;否则OV=0。(6)P(PSW.0)奇偶标志。每个指令周期都由硬件来置位或清零,以表示累加器A中1的位数的奇偶数。若1的位数为奇数,P置“1;否
47、则P清零。P标志位对串行通信中的数据传输有重要的意义,在串行通信中常用奇偶校验的办法来检验数据传输的可靠性。在发送端可根据P的值对数据的奇偶置位或清零。通信协议中规定采用奇校验的办法,即P=0时,应对数据(假定由A取得)的奇偶位置位,否则清零。上一页 下一页返回2.1 MCS-51单片机的内部结构 4)堆栈指针SP 堆栈指针SP是一个8位特殊功能寄存器。它指示出堆栈顶部在内部RAM中的位置。系统复位后,SP初始化为07 H,使得堆栈事实上由08 H单元开始。考虑到08 H1FH单元分属于工作寄存器区,若程序设计中要用到这些区,则最好把SP值改置为1FH或更大的值,SP的初始值越小,堆栈深度就可
48、以越深。堆栈指针的值可以由软件改变,因此堆栈在内部RA M中的位置比较灵活。除用软件直接改变SP值外,在执行PUSH,POP指令,各种子程序调用,中断响应,子程序返回(RET)和中断返回(RETI)等指令时,SP值将自动调整。上一页 下一页返回2.1 MCS-51单片机的内部结构 5)数据指针DPTR 数据指针DPTR是一个16位特殊功能寄存器,其高位字节寄存器用DPH表示,低位字节寄存器用DPL表示,既可以作为一个16位寄存器DPTR来处理,也可以作为两个独立的8位寄存器DPH和DPL来处理。DPTR主要用来存放16位地址,当对64 KB外部存储器寻址时,可作为间址寄存器用。可以用下列两条传
49、送指令:MOVX A,DPTR和MOVX DPTR,A。在访问程序存储器时,DPTR可用作基址寄存器,有一条采用基址+变址寻址方式的指令MOVC A,A+DPTR,常用于读取存放在程序存储器内的表格常数。上一页 下一页返回2.1 MCS-51单片机的内部结构 6)端口P1P3 特殊功能寄存器P1,P1,P2和P3分别是I/0端口P0P3的锁存器。P0 P3作为特殊功能寄存器还可用直接寻址方式参与其他操作指令。7)串行数据缓冲器SBUF 串行数据缓冲器SBUF用于存放欲发送或已接收的数据,它实际上由两个独立的寄存器组成:一个是发送缓冲器;另一个是接收缓冲器。当要发送的数据传送到SBUF时,进的是
50、发送缓冲器;当要从SBUF读数据时,则取自接收缓冲器,取走的是刚接收到的数据。上一页 下一页返回2.1 MCS-51单片机的内部结构 8)定时器/计数器 MCS-51系列中有两个16位定时器/计数器T0和T1。它们各由两个独立的8位寄存器组成,共有四个独立的寄存器:TH0,TL1,TH1,TL1。可以对这四个寄存器寻址,但不能把T0,T1当作一个16位寄存器来寻址。9)其他控制寄存器 IP,IE,TMOD,TCON,SOON和PCON寄存器分别包含中断系统、定时器/计数器、串行口和供电方式的控制和状态位,这些寄存器将在以后有关章节中叙述。上一页 下一页返回2.1 MCS-51单片机的内部结构