1、 89C51单片机的数字式音乐盒的设计毕业设计目录第一章 绪论11.1设计概述11.1.1设计背景11.1.2 设计的意义21.2 IC卡技术的应运和发展21.3 系统设计目标与原则31.3.1系统的设计目标31.3.2 系统的设计原则41.4 论文的组织结构4第二章 总体设计52.1系统总体结构52.2方案论证确定52.2.1 IC卡类型选择52.2.3 单片机选择7第三章 系统硬件设计83.1 单片机概述83.1.1 8051单片机结构和原理83.1.2存储器133.1.3专用寄存器(SFR)简介143.1.4中断163.1.5 定时/计数器193.1.6 串行通信213.1.7 单片机的
2、工作过程223.2 外部存储器扩展模块233.3 监控电路263.3.1概述263.3.2 DS1232的结构与特点263.3.3 DS1232接口电路283.4 键盘输入模块293.4.1 可编程并行I/O芯片8255293.4.2 键盘接口电路313.5 显示模块323.5.1 MC14499323.5.2 显示接口电路333.6 蜂鸣器驱动电路设计343.7 通信模块343.7.1 MAX232343.7.2 通信接口电路353.8 读写器接口模块363.8.1读写器芯片MFRC500363.8.2 Mifare 1型非接触式IC卡373.8.3 天线的设计393.8.4MFRC500与
3、8051的接口电路403.9 电源电路40第四章 系统软件设计42第五章 系统安全设计455.1 IC卡的安全认证455.2 交易数据安全的要求475.3网络通信安全475.3.1 概述475.3.2 安全威胁的原因和常见攻击方式475.3.3 网络安全设计的目标485.3.4 通信安全技术495.4信息安全与系统安全49第六章 系统管理中心516.1 发卡系统设计516.2 系统管理中心售卡充值536.3 数据采集系统546.4 系统中心清算功能566.5 黑管理57第七章 总结58参考文献59外文翻译60外文原文60译文66致 谢71附录 主程序与子程序7276 / 79第一章 绪论1.1
4、设计概述1.1.1设计背景公共交通是城市交通建设的主体,其公交运营工作的质量和效率会直接影响到人们的日常生活和工作。而部分城市公交公司现行的售票方式已滞后于公交事业的整体发展,无人售票存在运营效率低,易收残币、假币、破币,对公交的社会效益和经济效益,城市形象都有消极的影响。手工的传统的低效率的工作方式已经不能适应城市公共交通事业的发展。伴随着微电子技术的发展和IC卡应用在各行业的实施,近几十年来,国际上盛行智能公交ITS利用先进的电子技术对公交系统进行全面的管理,中国自“金卡”工程启动以来,国IC卡的应用迅速发展,信息技术逐步深入到基础设施的运转和管理中。近几年来,城市公交系统逐渐开始将IC卡
5、技术应运于公交收费系统,不仅实现自动收费,电脑结算,而且缩短运行时间;减少点钞人员和管理环节,杜绝贪污,减少假币、假票,加速了资金周转,促进企业信息管理系统的完善,带来了管理机构和管理方式上的巨大变化。因此,IC卡应用的推广,可以改变城建系统企业传统的管理服务方式,提高企业劳动效率,使企业经济效益和服务水平明显提高,并对提高城市形象起到了极大的推动作用。实践证明,以非接触IC卡为支付介质的建设事业IC卡应用系统建设在城市公交、轨道交通、出租车、轮渡、高速路、停车场、公园景点等小额支付领域所表现的方便、快捷的卓越性能,是传统的磁卡和接触式IC卡不可比拟的。非接触IC卡的推广应用为公交支付提供了安
6、全可靠,方便高效的支付方式和完整的业务处理系统,为提高公交行业的服务质量,树立公交行业优质高效服务的新形象,奠定了坚实的技术基础。同时,为城市居民的出行提供了极大的方便。也为银行更进一步地发展持卡消费,创造了良好的条件。因此,随着智能公交概念的提出和智能卡的深入发展,公交系统与非接触IC卡技术相结合成为发展的必然要求。公共交通实行一卡通也是大势所趋。但任何新事物都有缺乏经验的一面,也会出现令人无法预料的新情况,诸如卡丢失后无法挂失、卡存储信息不全与充值烦琐等问题。所以如何建立整个城市围的公交车收费系统,并利用现代计算机和通讯技术,实现乘客IC卡系统的集中化与现代管理,改善公交车、售卡充值点和公
7、交公司之间的数据通讯能力,促进各级部处理手段和办公效率的全面提高,已成为公交企业当前急待解决的问题。1.1.2 设计的意义主要从经济效益和社会效益两个方面来讲设计的意义。1 经济效益 (1) 加快乘客上车速度,减少车辆停站时间,加速车辆周转等于减少车辆。(2)促进管理,加强经济改革,最终减少公交企业亏损。(3) 与时掌握客流情况,科学合理调度而创造效益。 (4) 可以节省无人售票点钞工作人员的费用。 (5) IC卡表面的封装广告和冠名权为运营公司带来直接的收益。(6) 采用预收费的方式,增加企业周转资金。 (7)有效制止了假币的流通。2社会效益 (1) 提高公共交通的服务档次,符合建设国际城市
8、的目标。(2) 方便市民,减少社会现金流通量。(3) 提高车辆运行效率,节省乘车时间。(4) 收费与统计全面自动化管理,有效堵塞漏洞,杜绝可能发生的管理人员贪污与假票现象。提高城市市政交通的信息化管理水平,响应国家促进城市信息化建设的号召,提升当地的城市面貌,为城市的发展带来新的商机。改善了市政秩序,为市民做实事。1.2 IC卡技术的应运和发展IC卡概念是20世纪70年代初提出的,法国布尔公司年于1976年首先创造出IC 卡产品,并将这项技术应用到金融、交通、医疗、#明等多个行业,它将微电子技术和计算机技术结合在一起,提高了人们的生活水平,满足了工作的现代化需求。IC卡的英文全名是Integr
9、ated Circuit Card,IC卡将具有存储,加密,数据处理能力的一个或多个集成电芯片镶嵌于塑料卡片之中的,既具有智能性,又便于携带的卡片。而非接触式IC卡是世界上最近几年发展起来的一项新技术,它成功地将射频识别技术和IC卡技术结合起来.这一新技术完毕了IC卡无源可工作和卡片免接触工作这一难题,是电子器件应用发展过程中的一大突破。非接触IC卡和接触IC卡相比具有可靠性高、操作方便、防冲突、可适合于多种应用、加密性能好等优点。IC卡具有信息存储量大,数据性好,可反复读写,易于管理等优点,因而发展迅速,在金融、通信、交通等众多领域这后来居上,已成为信息时代这不可缺少的重要工具之一,广泛地应
10、用于社会事业的各个领域,出现在人们的日常生活中。IC卡不仅改进了现有多种卡的使用方法和功能作用,它还不断开创出新的应用发展领域。IC卡的产生现代信息的处理和传递提供了一种全新的手段,它一出现就备受关注和重视。1987年起,国际化标准组织ISO专门为IC卡制订了国际标准。国际标准的制订为IC卡在全世界围的推广和应用,为IC卡在使用过程中的规化创造了前提和条件。从技术角度看,在IC卡应用过程中有以下几个发展趋势。1 从存储器IC卡同CPU卡方向发展。现在全国发行的IC卡中,90%以上是采用存储器IC卡。随着应用要求提高,且CPU卡价格下降,在今后几年,CPU卡的应用总量将呈大幅度上升趋势:2 非接
11、触式IC卡应用将大幅度增加。目前,非接触式IC卡已成为世界智能卡发展的主流。非接触式IC卡十分适用于地铁、公交、自来水、燃气等收费的日常生活消费领域,在我国已开始使用。下一代最具有前途的IC卡是接触式IC和接触式IC卡的复合卡,对于需要特别灵活的多用途应用来说,它既能提供接触式应用,又有非接触式应用功能,为产品提供十分灵活的选择。3 对IC卡安全性提出越来越高的要求。金融IC卡、个人#等应用要求IC卡具有高安全性,要求应用程序在一个安全环境中装载和运行。一方面要求IC卡本身具有高安全性,具有DES加密算法和有512位或1024为公开密钥计算能力和加密卡可满足不同安全等级的要求;另一方面要加强I
12、C卡安全管理, 密钥管理尤其重要。4 一卡多用是IC卡发展的大方向。为了方便人们使用,同时规应用市场,提高应用水平,需要推出一卡多用或多卡通用的IC卡。1.3 系统设计目标与原则1.3.1系统的设计目标公交汽车IC卡控制系统采用了先进的非接触式IC技术和计算机技术,以公交售卡充值IC卡读写器为设计对象的主体,以计算机系统为信息处理方法的现代化管理系统,充分利用了非接触式IC交易时间短,快捷,方便的特点,作为公交汽车控制系统的一种全新的现代化管理手段,提高了公交车辆的运营服务水平,使城市公交管理开放,不仅取得了较好的经济效益,同时还取得了良好的社会效益。公交汽车IC卡控制系统把公交汽车的售票方式
13、以IC卡电子收费作为支付手段,以提高客运汽车的收费速度、简单快捷的售卡充值方式、自动化处理客运信息、准备结算、动态分析运营信息为目的,为客运企业的运营,城市交通管理,城市建设与发展提供了良好的科学依据.系统设计目标如下:1为运营公交公司提供完善的、稳定的、可靠的管理功能。2 实现公交控制系统的规化和数字化管理。3 收集公交运营数据,建立可供管理分析的数采集系统。4 控制系统具有可靠的安全管理系统。5 模块化的软硬件设计具有开放性、可扩展性、以便进行二次开发。6 尽可能简单明了操作方式,以实现IC卡读写器的运作与管理。1.3.2系统的设计原则公交汽车IC卡控制系统设计要求在最大限度上满足公交公司
14、不断增长和变化的业务需求。同时也使公交公司能在最大限度保护其投资的前提下利用迅速发展的新技术和产品。系统设计方案是遵循原则设计:1原则:采用的技术路线和采用的产品是成熟,可靠,易于操作的,设计结果能满足客户的需求并行之有效。2 开放原则:3 安全原则:采用有效可信的安全措施,实现系统多层次的安全管理。4 高效原则:软硬件性能充分发挥,资源利用率高,性能好。5可扩展原则:能够使系统在规模和性能两方面有扩展余地。1.4 论文的组织结构本文的目的就是寻求一套更加完善的公交汽车IC卡控制系统方案。本文重点介绍以8051单片机和非接触式IC卡读读写器 MF RC500为核心,设计出一套性能好、安全措施有
15、效可信、管理平台完善的公交非接触式IC卡控制系统。本文主要工作如下:(1)完成公交汽车IC卡控制系统整体方案设计。根据公交汽车IC卡控制系统所要达到的性能指标,进行总体方案设计。(2)以单片机8051为核心实现公交汽车IC卡控制系统硬件设计。(3)完成公交汽车IC卡控制系统的软件设计。基于汇编语言的编程方式,实现整个系统软件的设计。(4)开展系统的安全性研究。(5)完成系统管理中心的设计。第二章 总体设计2.1系统总体结构公交汽车IC卡控制系统结构复杂,环节较多,因此,公交IC卡控制系统的读写器至少应包括公交售卡机、公交车载机和公交制卡机三个读写器。除了售卡机要求有键盘外,其余的硬件组成大体相
16、同。对于公交汽车接触式IC卡控制系统和非接触式IC卡控制系统,控制电路主要不同在IC卡接口上,接触式IC卡采用卡座,非接触式IC卡采用接收线圈加专用的读卡接收芯片。图2为公交IC卡读写器的硬件结构框图,主要由单片机、外部存储模块、监控电路、键盘电路、显示电路、IC 卡的读写器、天线和以与与PC机通信的RS232串行通信接口电路组成。单片机键盘电路存储模块监控电路PC机通信报警电路感应天线IC卡读写器显示电路电源电路图2 公交IC卡读写器的硬件结构框图2.2方案论证确定2.2.1 IC卡类型选择任何技术和产品的发展都有一个过程,限于技术原因,早期大多用磁卡、光电卡等,这些卡构成的控制系统虽然曾经
17、给我们带来了各种便利,但仍然存在一些弊端和缺陷,常常带来许多不便,特别是其防伪性能差,易被仿制,作为收费电子钱包使用存在巨大安全隐患,随着技术不断进步,上述卡逐渐被其他卡取代,而对存储介质的选择主要考虑卡片模型、存储容量、安全性要求综合价格等因素。又考虑到卡是作为一卡通系统的信息载体,一卡通系统所涉与的子系统又非常多,因此就要求这种卡必须是有多分区,并具有分区密码校验,具有多用性、兼容性、安全性、可靠性的智能卡。所以在城市公交IC卡收费系统中使用非接触IC卡和接触式IC卡两种IC卡卡片。1 接触式IC卡接触式IC卡卡操作系统采用符合PBOC标准的Timecoso CPU卡芯片集成有CPU ,R
18、OM,RAM,EEPROM,安全逻辑等。SAM卡是安全认证卡,所有部件功能经专门设计,性能大大提高,与普通CPU卡相比较,具有很高的安全性、可靠性。但是接触式IC卡使用时要将其插入读卡机中, 通过表面上的电极触点的物理接触来实现与读卡器之间的命令、 数据和卡片状态的传递: 非接触式IC卡在使用时只要靠近读卡机即可,卡片和读卡机通过无线电波或电磁场感应的方式进行信息传递。接触式IC卡己经走过十几年的历程并得到广泛的应用,但随着应用规模的扩大,其本身不可克服的缺点,如具有接触磨损、卡的寿命小、使用不便、信息传送速度慢、难以维护、基础设施投入大等就成了它进一步发展的绊脚石。随着信息业和服务业的全球化
19、,社会对信息载体的便携性、 高安全性与易用性等方面提出更高的要求,于是非接触式IC卡以其无机械磨损、容易维护、方便使用等优点,成为IC卡潜力最大的生力军而备受业界瞩目。2 非接触式IC卡从提供电源的角度来看,非接触式I C卡可分为有源和无源2种。无源系统的能量由数据载频提供,有源系统是在卡封装一块非常薄的电池。从成本和生产方面考虑,无源系统是主流。从工作距离来分,非接触式IC卡有3种: 近距离祸合( 2 mm) , 邻近藕合( 15cm)。其中近距离藕合由于优势不明显而应用较少, 而藕合距离较远的射频卡使用较普遍且最具发展潜力。从读写方式上,非接触式IC卡还有主动交易式和被动交易式之分:主动交
20、易式指卡片需要主动靠近读卡器,用户需要持卡在读卡器上晃过去才会完成交易;被动交易式可以不用出示,比如揣在外衣口袋里,当走过读写器的识别距离围就可完成交易。非接触式IC卡,由于卡与读写器间无机械接触,而是借助“空间媒介”电磁波进行通讯,故在保留接触式智能卡原有优点的同时,又具备如下诸多长处:(1) 可靠性高、寿命长卡与读写器间无机械接触,故不存在接触式读写器可能出现的各种故障,卡和读写器均无裸露触点,则无须担心触点损坏或脱落所致之卡片失效。卡和读写器均为全封闭防水、防尘结构,既避免了静电、尘污对卡的影响,操作快捷便利。这些都将大大提高卡乃至机具的可靠性和使用寿命。(2) 防伪性好 每卡都有一个由
21、制造商在产品出厂前固化于芯片的3 2 位序列号,一旦写入即不可更改,且世界惟一。 (3) 安全性好 卡与读写器间采用三次相互确认的双向验证机制,在读写器验证卡的合法性的同时卡也对读写器合法性进行检验。所有通讯数据均加密,以防止信号截取。卡各扇区均有自己的操作密码和访问条件,并实行芯片传输密码保护。(4)抗干扰能力强具备防冲突(防碰撞)机制,同一时间可“同时”处理多卡,而不致出现相互间的数据干扰。(5) 一卡多用 用户可根据需要,灵活定义各存储扇区的密码和访问条件,以便互不影响地分别满足不同场合、不同用途的要求。综上述两种IC卡的介绍,采用非接触式IC卡来完成公交汽车IC卡控制系统的设计。目前,
22、在世界智能卡市场上主要有三大品牌: Mifare,Temic,Legic它们各具特点,性能也各具千秋。但由于市场占有率和性能价格比Temic,Legic。不如Mifare 1型IC卡,因此通常选择Mifare 1型射频IC卡作为公交控制系统的信息载体。在本系统采用符合IS014443 标准的Mifare 1型非接触式逻辑加密卡。2.2.3 单片机选择公交IC卡控制系统的读写器电路板向着小型化、低功耗、抗千扰、低成本、实用功能方向发展。因此在对单片机的选择趋向于容量适中、功能丰富、性能可靠、价格低的元件。因此本设计中应用最为广泛的MCS-51系列8位单片机8051。第三章 系统硬件设计3.1 单
23、片机概述3.1.1 8051单片机结构和原理1 8051单片机的部组成8051部有4 KB ROM,基本组成如图3-1所示。图3-18051 单片机结构框图1) 中央处理器(CPU)中央处理器是单片机的核心,完成运算和控制功能。8051的CPU能处理8位二进制数或代码。2) 部数据存储器(部RAM)8051芯片中共有256个RAM单元,但其中后128单元被专用寄存器占用,能作为寄存器供用户使用的只是前128单元,用于存放可读写的数据。因此通常所说的部数据存储器就是指前128单元,简称部RAM。3) 部程序存储器(部ROM)8051共有4KB掩膜ROM,用于存放程序、原始数据或表格,因此,称之为
24、程序存储器,简称部ROM。4) 定时/计数器8051共有两个16位的定时/计数器,以实现定时或计数功能,并以其定时或计数结果对计算机进行控制。 5) 并行I/O口 MCS-51共有4个8位的I/O口(P0、P1、P2、P3),以实现数据的并行输入/输出。6) 串行口8051单片机有一个全双工的串行口,以实现单片机和其它设备之间的串行数据传送。该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为同步移位器使用。7) 中断控制系统8051单片机的中断功能较强,以满足控制应用的需要。8051共有5个中断源,即外中断两个,定时/计数中断两个,串行中断一个。全部中断分为高级和低级共两个优先级别。
25、 8) 时钟电路8051芯片的部有时钟电路,但石英晶体和微调电容需外接。时钟电路为单片机产生时钟脉冲序列。系统允许的晶振频率一般为6 MHz和12 MHz。从上述容可以看出,MCS-51虽然是一个单片机芯片,但作为计算机应该具有的基本部件它都包括,因此,实际上它已是一个简单的微型计算机系统了。2 8051的信号引脚8051是标准的40引脚双列直插式集成电路芯片,引脚如图3-2所示。图3-21)信号引脚介绍(1)主电源引脚VCC:+5 V电源VSS:地线。(2)时钟电路引脚XTAL1和XTAL2:外接晶体引线端。当使用芯片部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外
26、部时钟脉冲信号。(3)控制信号引脚RST/VPD:复位信号。当输入的复位信号延续两个机器周期以上的高电平时即为有效,用以完成单片机的复位初始化操作;当单片机掉电时,此引脚上可接备用电源,由VPD向片RAM提供备用电源,一保持片RAM中的数据不丢失。ALE/PROG:地址锁存控制信号。在系统扩展时,ALE用于控制把P0口输出的低8位地址锁存起来,以实现低位地址和数据的隔离。此外,由于ALE是以晶振1/6的固定频率输出的正脉冲,因此,可作为外部时钟或外部定时脉冲使用。 对于EPROM型单片机,在EPRAM编程期间,此引脚接收编程脉冲。 PSEN:片外程序存储器读选通信号输出端。 EA/VPP:访问
27、程序存储控制信号。当EA信号为低电平时,对ROM的读操作限定在外部程序存储器;当EA信号为高电平时,对ROM的读操作是从部程序存储器开始,并可延至外部程序存储器。对于EPROM型单片机,在EPRAM编程期间,此引脚接上加21V EPROM编程电源VPP。(4)I/O引脚P0.0 P0.7: P0口8位双向口线。P1.0 P1.7 :P1口8位双向口线。P2.0 P2.7 :P2口8位双向口线。P3.0 P3.7 :P3口8位双向口线。2) P3口线的第二功能。P3的8条口线都定义有第二功能,详见表3-1。表3-1 P3口各引脚与第二功能表引脚第二功能信号名称P3.0RXD串行数据接收P3.1T
28、XD串行数据发送P3.2INT0外部中断0申请P3.3INT1外部中断1申请P3.4T0定时/计数器0的外部输入P3.5T1定时/计数器1的外部输入P3.6WR外部RAM写选通P3.7RD外部RAM读选通以上把8051单片机的全部信号引脚分别以第一功能和第二功能的形式列出。对于各种型号的芯片,其引脚的第一功能信号是相同的,所不同的只在引脚的第二功能信号。对于9、30和31三个引脚,由于第一功能信号与第二功能信号是单片机在不同工作方式下的信号,因此不会发生使用上的矛盾。但是P3口的情况却有所不同,它的第二功能信号都是单片机的重要控制信号。因此,在实际使用时,都是先按需要选用第二功能信号,剩下的才
29、以第一功能的身份作数据位的输入/输出使用。3 并行输入/输出口电路结构单片机芯片还有一项主要容就是并行I/O口。8051共有4个8位的并行I/O口,分别记作P0、P1、P2、P3。每个口都包含一个锁存器、一个输出驱动器和输入缓冲器。实际上,它们已被归入专用寄存器之列,并且具有字节寻址和位寻址功能。在访问片外扩展存储器时,低8位地址和数据由P0口分时传送,高8位地址由P2口传送。在无片外扩展存储器的系统中,这4个口的每一位均可作为双向的I/O端口使用。8051单片机的4个I/O口都是8位双向口,这些口在结构和特性上是基本相同的,但又各具特点。4 时钟电路(1)部方式时钟电路在8051芯片部有一个
30、高增益反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器,这就是单片机的时钟电路,如图3-3所示。时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。请读者特别注意时钟脉冲与振荡脉冲之间的二分频关系,否则会造成概念上的错误。一般地,电容C1和C2取30pF左右,晶体的振荡频率围是1.212MHz。晶体振荡频率高,则系统的时钟频率也高,单片机运行速度也就快。8051在通常应用情况下,使用振荡频率为6MHz或12MHz。图3-3时钟振荡电路(2)外部方式时钟电路
31、在由多片单片机组成的系统中,为了各单片机之间时钟信号的同步,应当引入惟一的公用外部脉冲信号作为各单片机的振荡脉冲。这时,外部的脉冲信号是经XTAL2引脚注入,其连接如图3-4所示。图3-4 外部时钟源接法(3) 时序时序是用定时单位来说明的。8051的时序定时单位共有4个,从小到大依次是:节拍、状态、机器周期和指令周期。它们之间的关系如下:(1)一个振荡脉冲的周期为节拍;(2)一个状态就包含两个节拍;(3)一个机器周期的宽度为6个状态;(4)一条指令周期由若干个机器周期组成。 5单片机的复位电路单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,复位后PC
32、=0000H,使单片机从第一个单元取指令。单片机复位的条件是:必须使RST/VPD 或RST引脚加上持续两个机器周期(即24个振荡周期)的高电平。若时钟频率为12 MHz,每机器周期为1s,则只需2s以上时间的高电平,在RST引脚出现高电平后的第二个机器周期执行复位。单片机复位期间不产生ALE和PSEN信号,即ALE=1和PSEN=1。这说明单片机复位期间不会有任何取指操作。复位后,部各专用寄存器状态如下:PC:0000H TMOD:00HACC:00H TCON: 00HB: 00H TH0:00HPSW: 00H TL0:00HSP: 07H TH1:00HDPTR: 0000H TL1:
33、00HP0P3:FFH SCON:00HIP: *00000B SBUF:不定IE: 0*00000B PCON:0*0000其中,*表示无关位。注意:(1) 复位后PC值为0000H,说明复位后程序从0000H开始执行,这一点在实训中已介绍。(2) SP值为07H,说明堆栈底部在07H。一般需重新设置SP值。(3) P0P3口值为FFH。P0P3口用作输入口时,必须先写入“1”。单片机在复位后,已使P0P3口每一端线为“1”,为这些端线用作输入口做好了准备。3.1.2存储器1 8051部数据存储器8051单片机的芯片部有RAM和ROM两类存储器,即所谓的部RAM和部ROM,首先分析部RAM。
34、1)部数据存储器低128单元8051的部RAM共有256个单元,通常把这256个单元按其功能划分为两部分:低128单元(单元地址00H7FH)和高128单元(单元地址80HFFH)。低128单元是单片机的真正RAM存储器,按其用途划分为寄存器区、位寻址区和用户RAM区三个区域。(1)寄存器区8051共有4组寄存器,每组8个寄存单元,各组都以R0R7作寄存单元编号。寄存器常用于存放操作数中间结果等。由于它们的功能与使用不作预先规定,因此称之为通用寄存器,有时也叫工作寄存器。4组通用寄存器占据部RAM的00H1FH单元地址。在任一时刻,CPU只能使用其中的一组寄存器,并且把正在使用的那组寄存器称之
35、为当前寄存器组。到底是哪一组,由程序状态字寄存器PSW中RS1、RS0位的状态组合来决定。通用寄存器为CPU提供了就近存储数据的便利,有利于提高单片机的运算速度。此外,使用通用寄存器还能提高程序编制的灵活性,因此,在单片机的应用编程中应充分利用这些寄存器,以简化程序设计,提高程序运行速度。(2)位寻址区部RAM的20H2FH单元,既可作为一般RAM单元使用,进行字节操作,也可以对单元中每一位进行位操作,因此把该区称之为位寻址区。位寻址区共有16个RAM单元,计128位,地址为00H7FH。MCS-51具有布尔处理机功能,这个位寻址区可以构成布尔处理机的存储空间。这种位寻址能力是MCS-51的一
36、个重要特点。(3)用户RAM区在部RAM低128单元中,通用寄存器占去32个单元,位寻址区占去16个单元,剩下80个单元,这就是供用户使用的一般RAM区,其单元地址为30H7FH。对用户RAM区的使用没有任何规定或限制,但在一般应用中常把堆栈开辟在此区中。2)部数据存储器高128单元部RAM的高128单元是供给专用寄存器使用的,其单元地址为80HFFH。因这些寄存器的功能已作专门规定,故称之为专用寄存器(Special Function Register),也可称为特殊功能寄存器。2 8051部程序存储器8051的程序存储器用于存放编好的程序和表格常数。8051片有4 KB的ROM。051的片
37、外最多能扩展64 KB程序存储器,片外的ROM是统一编址的。如端保持高电平,8051的程序计数器PC在0000H0FFFH地址围(即前4 KB地址)是执行片ROM中的程序,当PC在1000HFFFFH地址围时,自动执行片外程序存储器中的程序;当保持低电平时,只能寻址外部程序存储器,片外存储器可以从0000H开始编址。8051的程序存储器中有些单元具有特殊功能,使用时应予以注意。其中一组特殊单元是0000H0002H。系统复位后,(PC)=0000H,单片机从0000H单元开始取指令执行程序。如果程序不从0000H单元开始,应在这三个单元中存放一条无条件转移指令,以便直接转去执行指定的程序。还有
38、一组特殊单元是0003H002AH,共40个单元。这40个单元被均匀地分为5段,作为5个中断源的中断地址区。其中: 0003H000AH 外部中断0中断地址区 000BH0012H 定时/计数器0中断地址区 0013H001AH 外部中断1中断地址区 001BH0022H 定时/计数器1中断地址区 0023H002AH 串行中断地址区中断响应后,按中断种类,自动转到各中断区的首地址去执行程序,因此在中断地址区中理应存放中断服务程序。但通常情况下,8个单元难以存下一个完整的中断服务程序,因此通常也是从中断地址区首地址开始存放一条无条件转移指令,以便中断响应后,通过中断地址区,再转到中断服务程序的
39、实际入口地址。3.1.3专用寄存器(SFR)简介8051共有21个专用寄存器,其中部分寄存器简单介绍如下:(1) 程序计数器PC: PC是一个16位的计数器,它的作用是控制程序的执行顺序。其容为将要执行指令的地址,寻址围达64 KB。PC有自动加1功能,从而实现程序的顺序执行。PC没有地址,是不可寻址的,因此用户无法对它进行读写,但可以通过转移、调用、返回等指令改变其容,以实现程序的转移。因地址不在SFR(专用寄存器)之,一般不计作专用寄存器。(2) 累加器 ACC:累加器为8位寄存器,是最常用的专用寄存器,功能较多,地位重要。它既可用于存放操作数,也可用来存放运算的中间结果。MCS-51单片
40、机中大部分单操作数指令的操作数就取自累加器,许多双操作数指令中的一个操作数也取自累加器。(3) B寄存器。B寄存器是一个8位寄存器,主要用于乘除运算。乘法运算时,B存乘数。乘法操作后,乘积的高8位存于B中,除法运算时,B存除数。除法操作后,余数存于B中。此外,B寄存器也可作为一般数据寄存器使用。(4) 程序状态字PSW:序状态字是一个8位寄存器,用于存放程序运行中的各种状态信息。其中有些位的状态是根据程序执行结果,由硬件自动设置的,而有些位的状态则使用软件方法设定。PSW的位状态可以用专门指令进行测试,也可以用指令读出。一些条件转移指令将根据PSW有些位的状态,进行程序转移。PSW的各位定义如
41、下:PSW位地址D7HD6HD5HD4HD3HD2HD1HD0H字节地 址CYACF0RS1RS0OVF1P除PSW.1位保留未用外,其余各位的定义与使用如下:CY(PSW.7)进位标志位。CY是PSW中最常用的标志位。其功能有二:一是存放算术运算的进位标志,在进行加或减运算时,如果操作结果的最高位有进位或借位时,CY由硬件置“1”,否则清“0”;二是在位操作中,作累加位使用。位传送、位与位或等位操作,操作位之一固定是进位标志位。AC(PSW.6)辅助进位标志位。在进行加减运算中,当低4位向高4位进位或借位时,AC由硬件置“1”,否则AC位被清“0”。在BCD码调整中也要用到AC位状态。F0(
42、PSW.5)用户标志位。这是一个供用户定义的标志位,需要利用软件方法置位或复位,用以控制程序的转向。RS1和RS0(PSW.4,PSW.3)寄存器组选择位。它们被用于选择CPU当前使用的通用寄存器组。通用寄存器共有4组。这两个选择位的状态是由软件设置的,被选中的寄存器组即为当前通用寄存器组。但当单片机上电或复位后,RS1 RS0=00。OV(PSW.2)溢出标志位。在带符号数加减运算中,OV=1表示加减运算超出了累加器A所能表示的符号数有效围(-128+127),即产生了溢出,因此运算结果是错误的,否则,OV=0表示运算正确,即无溢出产生。在乘法运算中,OV=1表示乘积超过255,即乘积分别在
43、B与A中,否则,OV=0,表示乘积只在A中。在除法运算中,OV=1表示除数为0,除法不能进行,否则,OV=0,除数不为0,除法可正常进行。P(PSW.0)奇偶标志位。说明累加器A中容的奇偶性。如果A中有奇数个“1”,则P置“1”,否则置“0”。凡是改变累加器A中容的指令均会影响P标志位。此标志位对串行通信中的数据传输有重要的意义。在串行通信中常采用奇偶校验的方法来校验数据传输的可靠性。(5) 数据指针(DPTR)。数据指针为16位寄存器。编程时,DPTR既可以按16位寄存器使用,也可以按两个8位寄存器分开使用,即: DPH DPTR高位字节 DPL DPTR低位字节DPTR通常在访问外部数据存
44、储器时作地址指针使用。由于外部数据存储器的寻址围为64 KB,故把DPTR设计为16位。(6) 堆栈指针(SPStack Pointer)。堆栈是一个特殊的存储区,用来暂存数据和地址,它是按“先进后出”的原则存取数据的。堆栈共有两种操作:进栈和出栈。由于8051单片机的堆栈设在部RAM中,因此SP是一个8位寄存器。系统复位后,SP的容为07H,从而复位后堆栈实际上是从08H单元开始的。但08H1FH单元分别属于工作寄存器13区,如程序要用到这些区,最好把SP值改为1FH或更大的值。一般在部RAM的30H7FH单元中开辟堆栈。SP的容一经确定,堆栈的位置也就跟着确定下来,由于SP可初始化为不同值
45、,因此堆栈位置是浮动的。注意:MCS-51系列单片机有21个可寻址的专用寄存器,其中有11个专用寄存器是可以位寻址的。对专用寄存器的字节寻址问题作如下几点说明:(1)21个可字节寻址的专用寄存器是不连续地分散在部RAM高128单元之中,尽管还余有许多空闲地址,但用户并不能使用。(2) 程序计数器PC不占据RAM单元,它在物理上是独立的,因此是不可寻址的寄存器。(3) 对专用寄存器只能使用直接寻址方式,书写时既可使用寄存器符号,也可使用寄存器。 3.1.4中断1 中断源中断源是指能发出中断请求,引起中断的装置或事件。8051单片机的中断源共有5个,其中2个为外部中断源,3个为部中断源: INT0
46、:外部中断0,中断请求信号由P3.2输入。 INT1:外部中断1,中断请求信号由P3.3输入。 T0:定时/计数器0溢出中断,对外部脉冲计数由P3.4输入。 T1:定时/计数器1溢出中断,对外部脉冲计数由P3.5输入。 串行中断:包括串行接收中断RI和串行发送中断TI。2 中断寄存器8051单片机中涉与中断控制的有3个方面4个特殊功能寄存器: 中断请求:定时和外中断控制寄存器TCON;串行控制寄存器SCON; 中断允许控制寄存器IE; 中断优先级控制寄存器IP。 中断请求控制寄存器TCONINT0、INT1、T0、T1中断请求标志放在TCON中串行中断请求标志放在SCON中。TCON的结构、位名称、位地址如下:TCOND7D6D5D4D3D2D1D0位名称TF1-TF0-IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88HTCON位功能:TF1 T1溢出中断请求标