基于FPGA的MCS51单片机的定时模块设计毕业设计

上传人:仙*** 文档编号:33921403 上传时间:2021-10-19 格式:DOC 页数:47 大小:438.50KB
收藏 版权申诉 举报 下载
基于FPGA的MCS51单片机的定时模块设计毕业设计_第1页
第1页 / 共47页
基于FPGA的MCS51单片机的定时模块设计毕业设计_第2页
第2页 / 共47页
基于FPGA的MCS51单片机的定时模块设计毕业设计_第3页
第3页 / 共47页
资源描述:

《基于FPGA的MCS51单片机的定时模块设计毕业设计》由会员分享,可在线阅读,更多相关《基于FPGA的MCS51单片机的定时模块设计毕业设计(47页珍藏版)》请在装配图网上搜索。

1、基于FPGA的MCS-51单片机的定时模块设计摘 要随着计算机技术的发展,单片机技术已经成为计算机技术中的独立分支,并且由于其自身具有的优越性(小巧灵活、控制能力强、成本低、易于产品化等),使其在社会的各个领域得到了广泛的应用,与我们的生活紧密相连,特别是在工业控制和仪表仪器智能化中起着及其重要的作用。但随着社会的发展,单片机也存在一些弊端,其速度、规模、性能等指标越来越难以满足用户的需求,因此单片机的开发、升级面临着新的挑战。随着可编程逻辑控制器技术的发展越来越成熟,为单片机的发展开辟了新的途径,为单片机的设计与升级提供了一种新的方法。本文采用的是以FPGA器件为载体,采用EDA设计中TOP

2、-DOWN和模块化设计思想进行系统设计,灵活运用VHDL描述语言对设计对象进行编程,来实现MCS-51单片机的定时、控制模块设计。最后以EDA开发软件Quartus II 为设计平台,经过编译、调试、修改、仿真测试,完成该设计。本课题研究表明,应用EDA技术实现单片机的结构设计发放时完全可行的,并符合单片机更快速、更高效的发展趋势。关键词:MCS-51单片机,VHDL,EDA,FPGA,TOP-DOWNAbstractAlong with calculator technique of development, list the slices machine technique have al

3、ready become a calculator technique in of independence branch, and because of its oneself have of superiority(cleverly made and vivid, control the ability be strong, the cost be low, be easy to a product to turn.etc.), make it at society of each the realm get extensive of application, with our life

4、close connect with each other, especially have in the industry the control and the appearance instrument intelligence turn and it importance of function.But along with the development of society, list slice machine also existence-some irregularity, it speed, scale, function etc. the index sign be mo

5、re and more hard satisfy the customers need, so list slice machine of development, get stripe to face new of challenge.Along with programmable logic controller technique of development more and more mature, for list slice machine of development develop new of path, is list slice the design of the ma

6、chine with got stripe to provide a kind of new of method.This text adoption of take FPGA spare part as to carry a body, adoption the TOP-DOWN and the mold piece in the EDA design turn a design thought to carry on system design and use flexibly VHDL description language to design the object carry on

7、plait distance, realization MCS-51 list slice machine of in fixed time, control mold piece design.End with EDA development software Quartus II is design terrace, has been editted and translate, adjusted to try, modification, imitate true test, completion should design.This topic research enunciation

8、, application EDA technique realization list slice the structure of the machine design issue complete viable, and match list slice machine sooner soon, higher effect of development trend.Keyword:The machine, VHDL, EDA, FPGA of the MCS-51 list slice, TOP-DOWN目录摘 要IAbstractII目录III第一章 绪 论11.1 课程设计背景知识1

9、1.1.1 单片机的特点11.1.2 单片机面临的问题11.1.3 单片机与FPGA/CPLD的对比21.2 课程研究的目的以及要完成的任务3第二章 相关技术介绍42.1 EDA技术简介42.1.1 EDA技术的含义42.1.2 EDA设计的主要流程42.1.3 EDA与传统的设计方法的比较52.1.4 自顶向下(Top-Down)设计的基本概念62.2 FPGA/CPLD简介72.3 硬件描述语言72.4 Quartus II简介9第三章 MCS-51单片机的反向解剖113.1 MCS-51单片机的结构、原理113.1.1 MCS-51单片机概述113.1.2 MCS-51单片机内部结构与工

10、作原理113.2 MCS-51单片机的指令系统的实现原理15第四章MCS-51单片机的定时模块设计174.1 定时模块设计174.1.1 模式0204.1.2模式1244.1.3模式2244.1.4模式3244.2小结28第五章 总结与展望30参考文献31致谢32附录33计数器/定时器程序源代码3344第一章 绪 论1.1 课程设计背景知识1.1.1 单片机的特点单片机属于计算机的一个种类,是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定

11、时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。单片机也被称为微控制器(Microcontroler),是因为它最早被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对提及要求严格的控制设备当中。单片机小巧灵活,成本低,易于产品化,因此单片机比专用处理器最适合应用于嵌入式系统,它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。单片机芯片本身是按工业

12、测控环境要求设计的,能适应各种恶劣环境,可靠性好,温度适应范围宽。这是其他几种无法比拟的,单片锯的逻辑控制功能很强,指令系统有各种控制功能用指令,很容易构成各种规模的应用系统,以扩展,可以很方便的实现多级和分布式控制。单片机已对人类社会产生了巨大的影响,尤其是美国Intel公司生产的MCS-51单片机,由于其具有集成度高、处理功能强、可靠性高、系统机构简单、价格低廉等优点,客观的发展表明,MCS-51可能最终形成事实上的MCU芯片1.1.2 单片机面临的问题(1)低速由于单片机的工作方式是通过内部的CPU逐条执行的软件指令来完成各种运算和逻辑功能的,因而无论多少高的可能的工作的工作时钟频率和多

13、么好的指令时序方式,在串行指令执行方式面前,其工作速度和效率必将大打折扣。因此,单片机在实时仿真、高速工控或高速数据采样等许多领域尤显力不从心。(2)PC“跑飞”在强干扰或某种偶然的因素下,任何单片机的程序计数器都极可能超出正常的程序流程“跑飞”,事实证明,无论多么优秀的单片机,在手强电磁干扰情况下,单片机都无法保证其仍能正常工作而不进入不可挽回的“死机”状态。(3)开发周期长单片机是执行软件指令的方式实现逻辑功能的,不同的单片机通常具有不同的汇编语言,使得程序的可移植性差,此外,在开发单片机的软件程序中需要随时顾及特定的单片机的应简洁共和外围设备接口。所以这一切导致了单片机应用系统开发效率低

14、,开发周期时间长。1.1.3 单片机与FPGA/CPLD的对比在传统的控制系统中,人们常常采用单片机作为控制核心。但这种方法硬件连线复杂,可靠性差,且单片机的端口数目,内部定时器和中断源的个数都有限,在实际应用中往往需要外加扩展芯片,这无疑对系统的设计带来诸多不便,现在有很多系统采用可编程逻辑器件FPGA/CPLD,现场可编程门阵列,复杂可编程逻辑器件)作为控制核心,它与传统设计相比较,不仅简化了接口和控制,提高了系统的整体性能及工作可靠性,也为系统集成创造了条件。下面我们来看单片机和FPGA/CPLD的对比:(1)单片机的学习效率较低。单片机直接面对硬件,大多数都使用汇编语言不同厂家生产的单

15、片机其汇编语言也不同,并且,单片机编程还与硬件的连接方式有关,而FPGA/CPLD可使用标准硬件描述语言VHDL(Very high Speed integrated Circuit Hardware Deseription Language)对所有型号的FPGA/CPLD编程。同时,VHDL是一种行为描述语言,可以远离硬件编程,打破了软硬件之间的屏障,使学习和设计的效率大大提高。(2)单片机本身的速度相对FPGA/CPLD来显得太慢。单片机是用指令排队形式来执行指令的,影响了速度的提高。而FPGA/CPLD在实时处理时均为并行工作,速度快。(3)单片机各引脚的功能是确定的,而FPGA/CPL

16、D可以根据需要用软件改变各引脚的功能。与MCS-51单片机相比FPGA/CPLD的优势是多方面的,以下是他们的优点与优势。(1)编程方式简便、先进。FPGA/CPLD产品越来越多地采用了先进的在系统配置编程方式。(2)高速。FPGA/CPLD的时钟延迟可达纳秒级,结合其并行工作方式在超高速应用领域和实时测控方面有非常广阔的应用前景。(3)高可靠性。除了不存在SCM所特有的复位不可靠与PC可能跑飞等固有缺陷外,FPGA/CPLD的高可靠性还表现在几乎可将整个系统下载于同一芯片中,从而大大缩小了体积,易于管理和屏蔽。(4)开发工具和设计屠言标准化,开发周期短。由于开发工具的通用性,设计语言的标准化

17、以及设计过程几乎与所用的FPGA/CPLD器件的硬件结构没有关系,使得设计成功的各类逻辑功能块有很好的兼容性和可移植性,它几乎可用于任何型号的FPGA/CPLD从而使得片上系统的产品设计效率大幅度提高。(5)功能强大,应用广阔。目前FPGA/CPLD可供选择范围很大,可根据不同的应用选用不同容量的芯片,利用它们可实现几乎任何形式的数字电路或数字系统的设计。(6)易学易用,开发便捷。FPGA/CPLD应用的学习不需太多的预备知识,只要具有通常的数字电路和计算机编程基础知识,就足以在短期内掌握基本的设计方法和开发技巧。1.2 课程研究的目的以及要完成的任务本课题的目的:该课程是为了能运用新的先进的

18、技术来实现单片机的功能,来减少单片机本身的缺点,更好的发挥单片机本身的优点,使单片机更加快速、小型化、高可靠性。本课题的任务是:以硬件描述语言(VHDL)完成整个系统逻辑的描述,采用EDA设计中TOP-DOWN和模块化设计思想进行系统设计,灵活运用VHDL描述语言对设计对象进行编程实现。最后以EDA开发软件Quartus II 为设计平台,经过编译、调试、修改、仿真测试,完成了对MCS-51单片机的定时控制模块的设计与实现。 第二章 相关技术介绍2.1 EDA技术简介 2.1.1 EDA技术的含义EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世

19、纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。在电子技术设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速

20、发展。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。2.1.2 EDA设计的主要流程主要流程包括:行为级描述,行为级优化与RTL级描述的转化选定工艺库

21、,确定约束条件,完成逻辑综合与逻辑优化,门级仿真,测试生成,布局布线(P&R: Place and Routing),参数提取,后仿真,制版、流片。测试生成门级仿真选定工艺库,确定约束条件,完成逻辑综合与逻辑优化行为级优化与RTL级描述的转化行为级描述布局布线(P&R: Place and Routing)参数提取后仿真制版、流片图21 EDA设计流程图2.1.3 EDA与传统的设计方法的比较传统的数字电子系统或IC设计中,手工设计占了较大的比例。一般先按电子系统的具体功能要求进行功能划分,然后对每个子模块画出真值表,用卡诺图进行手工逻辑简化,写出布尔表达式,画出相应的逻辑线路图,再据此选择元

22、器件,设计电路板,最后进行实测与调试。手工设计方法的缺点是:(l)复杂电路的设计、调试十分困难。(2)如果某一过程存在错误,查找和修改十分不便。(3)设计过程中产生大量文档,不易管理。(4)对于集成电路设计而言,设计实现过程与具体生产工艺直接相关,因此可移植性差。(5)只有在设计出样机或生产出芯片后才能进行实测。相比之下,EDA技术有很大不同:(l)采用硬件描述语言(HDL)作为设计输入。(2)库(Library)的引入。(3)设计文档的管理。(4)强大的系统建模、电路仿真功能。(5)开发技术的标准化、规范化以及IP核的可利用性。(6)适用于高效率大规模系统设计的自顶向下设计方案。 (7)全方

23、位地利用计算机自动设计、仿真和测试技术。(8)对设计者的硬件知识和硬件经验要求低。(9)高速性能好。这是与以CPU为主的电子系统相比。(10)纯硬件系统的高可靠性。山东大学工程硕士论文2.1.4 自顶向下(Top-Down)设计的基本概念现代集成电路制造工艺技术的改进,使得在一个芯片上集成数乃至数百万个器件成为可能,但我们很难设想仅由一个设计师独立设计如此大规模的电路而不出现错误。利用层次化、结构化的设计方法,一个完整的硬件设计任务首先由总设计师划分为若干个可操作的模块,编制出相应的模型(行为的或结构的),通过仿真加以验证后,再把这些模块分配给下一层的设计师,这就允许多个设计者同时设计一个硬件

24、系统中的不同模块,其中每个设计者负责自己所承担的部分;而由上一层设计师对其下层设计者完成的设计用行为级上层模块对其所做的设计进行验证。自顶向下的设计(即TOP_DOWN设计)是从系统级开始,把系统划分为数个基本单元,然后再把每个基本单元划分为下一层次的基本单元,一直这样做下去,直到可以直接用EDA元件库中的元件来实现为止。对于设计开发整机电子产品的单位和个人来说,新产品的开发总是从系统设计入手,先进行方案的总体论证、功能描述、任务和指标的分配。随着系统变得复杂和庞大,特别需要在样机问世之前,对产品的全貌有一定的预见性。目前,EDA技术的发展使得设计师有可能实现真正的自顶向下的设计。2.2 FP

25、GA/CPLD简介FPGA和CPLD都是高密度现场可编程逻辑芯片,都能够将大量的逻辑功能集成于-个单片集成电路中,其集成度己发展到现在的几百万门。复杂可编程逻辑器件(CPLD)、PAL(ProgranunableArrayLogic,可编程阵列逻辑)或GAL(GenericArrayLogic,通用阵列逻辑)发展而来的。它采用全局金属互连导线,因而具有较大的延时可预测性,易于控制时序逻辑,但功耗比较大。现场可编程门阵列(FPGA)是由掩膜可编程门阵列(MPGA)和可编程逻辑器件二者演变而来的,并将它们的特性结合在一起。因此FPGA既有门阵列的高逻辑密度和通用性,又有可编程器件的用户可编程特性。

26、FPGA通常由布线资源分隔的可编程逻辑单元(或宏单元)构成阵列,又由可编程I/O单元围绕阵列构成整个芯片。其内部资源是分段互连的,因而延时不可预测,只有编程完毕才可以实际测量CPLD和FPGA建立内部可编程逻辑连接关系的编程技术有三种:1.基于Fuse/Antifuse(熔丝/反熔丝)技术的器件只允许对器件编程一次,编程后不能修改,所以又被称为OTP器件,即一次性可编程 (oneTimeProgralluning)器件。其优点是集成度、工作频率和可靠性都很高,适用于电磁辐射千扰较强的恶劣环境。2.基于EPROM/EEPROM(紫外线擦除电可编程/电可擦写可编程)存储器技术的可编程逻辑芯片能够重

27、复编程100次以上,系统掉电后编程信息也不会丢失。3.基于SRAM(静态随机存取存储器)技术的器件编程数据存储于器件的RAM区中,使之具有用户设计的功能。在系统不加电时,编程数据存储在EPROM,EEPROM硬盘、或软盘中。系统加电时将这些编程数据即时写入可编程器件,从而实现板级或系统级的动态配置。2.3 硬件描述语言硬件描述语言(HDL-Hardware Description Language)是一种用于设计硬件电子系统的计算机语言,它用软件编程的方式来描述电子系统的逻辑功能、电路结构和连接形式,与传统的门级描述方式相比,它更适合大规模系统的设计。例如一个32位的加法器,利用图形输入软件需

28、要输入500至1000个门,而利用VHDL语言只需要书写一行A=B+C即可,而且VHDL语言可读性强,易于修改和发现错误。早期的硬件描述语言,如ABELHDL、AHDL,由不同的EDA厂商开发,互不兼容,而且不支持多层次设计,层次间翻译工作要由人工完成。为了克服以上不足,1985年美国国防部正式推出了VHDL(Very.High.Speed.IC.Hardware.Description Language)语言,1987年IEEE采纳VHDL为硬件描述语言标准(IEEE.STD-1076)。VHDL是一种全方位的硬件描述语言,包括系统行为级、寄存器传输级和逻辑门级多个设计层次,支持结构、数据流

29、、行为三种描述形式的混合描述,因此VHDL几乎覆盖了以往各种硬件描述语言的功能,整个自顶向下或自底向上的电路设计过程都可以用VHDL来完成。VHDL还具有以下优点:(1)VHDL的宽范围描述能力使它成为高层次设计的核心,将设计人员的工作重心提高到了系统功能的实现与调试,而化较少的精力于物理实现。(2)VHDL可以用简洁明确的代码描述来进行复杂控制逻辑的设计,灵活且方便,而且也便于设计结果的交流、保存和重用。(3)VHDL的设计不依赖于特定的器件,方便了工艺的转换。(4)VHDL是一个标准语言,为众多的EDA厂商支持,因此移植性好。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许

30、多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于-般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。2.4 Quartus II简介由于我此次设计使用Verilog和Altera公司推出的开发工具Quartus II,所以对此款工具详细介绍。Quartus II是Alt

31、era公司2001年推出的CPLD/FPGA开发工具,Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件;芯片(电路)平面布局连线编辑;LogicLock增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块;功能强大的逻辑综合工具;完备的电路功能仿真与时序逻辑仿真工具;定时/时序分析与关键路径延时分析;可使用SignalTap II逻辑分析工具进行嵌入式的逻辑分析;支持软件源文件的添加和创建,并将它们链接起来生成

32、编程文件;使用组合编译方式可-次完成整体设计流程;自动定位编译错误;高效的期间编程与验证工具;可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件;能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。Quartus II design 是最高级和复杂的,用于system-on-a-programmable-chip (SOPC)的设计环境。QuartusII design 提供完善的 timing closure 和 LogicLock 基于块的设计流程。QuartusII design是唯-个包括以timing closure 和 基于块的设计流为基本特征

33、的programmable logic device (PLD)的软件。 Quartus II 设计软件改进了性能、提升了功能性、解决了潜在的设计延迟等,在工业领域率先提供FPGA与mask-programmed devices开发的统-工作流程。 Altera Quartus II作为-种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。 Altera Quartus II(3.0和更高版本)设计软件是业界唯-提供FPGA和固定功能HardCopy器件统-设计流程的设计工具。工程师使用同样的低价位工具对 Stratix FPGA进行功能验证和原型设

34、计,又可以设计HardCopy Stratix器件用于批量成品。系统设计者现在能够用Quartus II软件评估HardCopy Stratix器件的性能和功耗,相应地进行最大吞吐量设计。 Altera的Quartus II可编程逻辑软件属于第四代PLD开发平台。该平台支持-个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。Quartus平台与Cadence、ExemplarLogic、MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。改进了软件的LogicLock模块设计功能,增添 了FastFit编译选项,推进了网络编辑

35、性能,而且提升了调试能力。第三章 MCS-51单片机的反向解剖3.1 MCS-51单片机的结构、原理3.1.1 MCS-51单片机概述单片微型计算机SCM(Single Chip MICroeomputer),也称作微控制器MicroController,是把微型计算机主要部分都集成在一个芯片上的单芯片微型计算机。主要包括微处理器(CPU)、存储器(RAM,ROM)、输入/输出接口(I/O),定时/计数器等功能部件。单片机自70年代问世以来,作为微型计算机一个很重要的分之,应用广泛、发展迅速,己经对人类社会产生了巨大影响。尤其是美国Internet司生产的MCS-51系列单片机,由于其具有集成

36、度高、处理能力强、可靠性高、系统结构简单、价格低廉等优点,在我国己经取得了广泛的应用,在智能仪器仪表、工业检测控制、机电一体化等方面取得了令人瞩目的成就。3.1.2 MCS-51单片机内部结构与工作原理8051是MCS51系列单片机的最初产品,也是MCS-51系列器件的核心。8051芯片的主要特征包括:64K程序存储地址空间和64K数据存储地址空间;4K字节的片上程序存储器和128字节的片上数据RAM;8-bit最优化的用于控制应用程序的CPU;广泛的布尔处理能力(single-bitlogie)(相当于一个1 bit CPU);两个16 bit的定时/计数器;全双工DART(通用异步接收发送

37、器);具有两个优先级的5个中断源;32个双向I/O口;一个片内振荡器;如果按照功能划分,MCS-51系列单片机由8个部件组成,即微处理器(CPU),数据存储器(RAM)、程序存储器(ROM)(其中8031无片内程序存储器)、I/O口(P0,P1,P2,P3)、定时/计数器、串行口、中断系统以及特殊功能寄存器SFR(SpecialFunCtionRegister)。微处理器由运算器和控制器组成,主要包括累加器(ACC),B寄存器、临时存储器(TEMP1,TEMP2)、算术逻辑单元等。自顶向下(TOP-Down)的设计方法正是EDA技术相对于传统电子设计方式的优势所在,也只有在EDA技术得到快速发

38、展的今天才成为可能。自顶向下设计方法的第一步就是要绘制顶层设计图,它由运算器、控制器、定时器/计数器、串行接口四个部分组成。因此也可以说是将MCS-51系列单片机的内核分成了运算器、控制器、定时器/计数器、串行接口四个部分。虽然存储器不是本次设计的内容,但是它本身与设计是密不可分的。因此,下面就对应上述分法,看看原始的MCS-51系列单片机的上述四个部分以及存储器各自的结构和功能。1.运算器运算器包括算术逻辑部件ALU、位处理器、累加器A、寄存器B、暂存器、以及程序状态字寄存器PSW等。该模块的功能是实现数据的算术运算、逻辑运算、位变量处理和数据传送等操作。ALU的功能十分强大,它不仅可以对8

39、位变量进行逻辑“与”、“或”、“非”、“异或”、移位和清零等基本操作,还可以进行加、减、乘、除和十进制调整等基本运算。ALU还具有一般微机的ALU所不具备的功能,即位处理操作,它可以对位(bit)变量进行处理,如置位、清零、测试转移以及逻辑“与”、“或”、“非”等操作。由此可见,ALU在算术运算以及控制处理方面的能力是很强的。累加器A是一个8位的累加器。从功能上看它于一般微机的累加器相比没有什么特别之处,但需要说明的是A的进位标志Cy是特殊的,因为它同时又是位处理器的一位累加器。寄存器B是为执行乘法和除法操作设置的,在不执行乘、除法操作的一般情况下,可以把它当一个普通的寄存器使用。程序状态字寄

40、存器PSW,是一个8位的可读写寄存器,它的不同位包含了程序状态的不同信息。其中进位标志位Cy(PSW.7)、辅助进位标志位AC(PSW.6)和OV(PSW.2)在执行算术和逻辑指令时,可以由硬件或者软件(Cy可以有软件置位或清零)改变,因此运算器应该有上述三位状态改变的输出信息。本课题设计的运算器将完全以组合逻辑电路的形式出现,其内部将不包括累加器A、寄存器B、以及程序状态字寄存器PSW。它只是根据所接收的指令,将来自累加器、程序或者数据存储器的数据进行相应的算术或者逻辑运算,然后将运算结果以及程序状态字寄存器PSW的相关位以结果的形式输出。2.控制器控制部件是单片机的中枢神经,以主振频率为基

41、准,控制器控制CPU的时序,对指令进行译码,然后发出各种控制信号,将各个硬件环节组织在-起。每个机器周期由6个状态周期组成,即S1,S2,S3,S4,S5,S6,而每个状态周期又由两个时相Pl,P2(即2个主振振荡周期)。所以一个机器周期依次可以表示为S1P1,SlP2,S2P1,S2P2S6P1,S6P2。一般情况下,算术逻辑操作发生在时相P1期间,而内部寄存器之间的传送发生在时相P2期间,这些内部时钟信号无法从外部观测,故用XTAL2振荡信号作参考,而ALE可以用作外部工作状态指示信号用。在一个机器周期中通常出现两次ALE信号(注意:当访问外部数据存储器时,一个机器周期中将跳过一个ALE脉

42、冲),即从ROM中取两次操作码,读入指令寄存器,指令周期的执行开始于S1P2时刻,而总是结束于S6P2时刻。MCS-51系列单片机的指令周期一般只有l-2个机器周期,只有乘、除两条指令占4个机器周期,当用12MHz晶体作主频率时,执行一条指令的时间,也就是一个指令周期为ls(这样的指令约占全部指令的一半),2s以及4s。主振频率越高,指令执行速度越快。由此可见,MCS-51系列单片机的时序似乎比较简单。其实不然,要分析各条指令的取指、执行时序仍然是相当复杂的。本设计为简便起见,并不打算采用MCS-51系列单片机原有的CPU时序中机器周期的概念,而是将各条指令均设计在1到4个时钟周期内完成,因此

43、所形成的IP核内,一个时钟周期内所要完成的任务基本上和原有MCS-51系列单片机中一个机器周期所要完成的任务基本一致(少部分指令有差别),详细的指令指令周期请参阅本文的附录部分。所以在此仅简要介绍一下MCS-51系列单片机的时序。3.存储器MCS-51系列单片机存储器可划分为四类:程序存储器。一个微机系统之所以能够按照-定的次序进行工作,主要在于内部存在着程序,程序实际上是由用户程序形成的一串二进制码,该二进制码存放在程序存储器之中,8031无内部ROM,所以只能外扩EPROM来存放程序MCS-51最多可以外扩64K字节程序存储器,64K程序存储器有5个单元具有特殊的用途。5个特殊单元分别对应

44、于5种中断源的中断服务程序的入口地址。其分别是:“外部中断0”对应入口地址是“0003H”“定时器0中断”对应入口地址是“000BH”,”外部中断1”对应入口地址是“0013H”;“定时器1中断”对应入口地址是“001BH”;“串行口中断”对应入口地址是“0023H”。内部数据存储器。MCS-51系列单片机内部有128个字节的随机存储器(RAM),字节地址为00H-80H。MCS-51对其内部的RAM有很丰富的操作指令,从而使得用户设计程序时非常方便。作为用户的数据存储器,它能满足大多数控制型应用场合的需要,用作处理问题的数据缓冲器。地址为00H-1FH的32个单元是4个通用工作寄存器区,每个

45、区含有8个8位寄存器,编号为R0-R7。可以通过指令改变PSW中的RS1,RS0这两位来切换寄存器区,这种功能给用户程序保护寄存器内容提供了极大的方便。地址为2OH-2FH的16个单元可以进行共128位的位寻址,这些单元构成了1位处理器的存储器空间。单元中的每一位都有自己的位地址,同时这16个单元也可以进行字节(8位)寻址。特殊功能寄存器(SFR-SpecialFunctionRegister)。特殊功能寄存器SFR是用来对片内各功能单元进行管理、控制、监视的控制寄存器和状态寄存器。MCS-51中的特殊功能寄存器SFR是非常重要的,对于单片机的应用者来说掌握了SFR,也就掌握了MCS-51。S

46、FR存在于单片机中,实质上一些具有特殊功能的RAM单元,其地址范围为80H-FFH。特殊功能寄存器的总数为21个,离散的分布在该区域中,其中有些SFR还可以进行位寻址。寄存器符号前带“*”为可进行位寻址的SFR。要注意的是,128个字节的SFR块中仅有21个字节是有定义的。对于尚未定义的字节地址单元,用户不能做寄存器使用,若访问没有定义的单元,则得到一个不确定的随机数。外部数据存储器。MCS-51应用系统往往是一个应用系统。当片内RAM不够用时,可以在片外扩充数据存储器。MCS-51给用户提供了最多可以寻址64K字节的外部扩充RAM能力。以上介绍了MCS-51的存储器结构。使用各类存储器,要注

47、意以下几点:(1)地址的重叠性。数据存储器与程序存储器全部64K地址重叠;程序存储器中片内外低4K字节地址重叠;数据存储器中片内外最低128字节地址重叠。这是因为采用了不同的操作指令及EA控制选择。(2)程序存储器(ROM)与数据存储器(RAM)在使用上是严格区分的,不同的操作指令不得混用。程序存储器只能放置程序指令以及常数表格。除程序的运行控制外,其操作指令不分内外,只有两条MOVC指令;而数据存储器则存放数据,片内外操作指令不同,片外数据存储器只有一条传送指令,即MOVX。(3)位地址空间有两个区域,即片内RAM中的20H-2阳的128位,以及SFR中的位地址(有些位没有意义)。这些位寻址

48、单元与位指令集构成了位处理系统。(4)片外数据存储器中,数据区与用户外部扩展的I/O口统一编址。与外围接口进行数据传送时,使用的是与访问外部数据存储器相同的传送指令。4.定时器/计数器MCS-51系列单片机有两个可编程定时器/计数器,即定时器/计数器0和1。它们各具有两种工作模式(定时器模式和计数器模式)和4种工作方式(方式O,方式1、方式2、方式3)。4种工作方式中,前三种方式对两个定时器/计数器都是一样的,方式3对两者时不同的,这一点在设计时要注意。特殊功能寄存器TMOD(定时器/计数器方式控制寄存器)用于控制定时器/计数器的工作模式和过方式。另-个特殊功能寄存器TCON(定时器/计数器控

49、制寄存器)用于T0和T1的启动和停止计数,同事还包含了T0和T1的状态。有关定时器/计数器的各个工作方式将在具体设计中详细叙述。5.串行口MCS-51系列单片机内部有-个功能很强的全双工的串行口,该串行口有四种工作方式,波特率可以由软件设置,由片内的定时器/计数器产生。串行口有两个物理上独立地接收、发送缓冲器SBUF,可以同时发送、接收数据,发送缓冲器只能写入不能读出,接收缓冲器只能读出不能写入,两个缓冲器公用一个字节地址(99H)。串行口的接收、发送数据均可触发中断系统。同时,还有两个控制寄存器来控制MCS-51单片机地串行口,它们是特殊功能寄存器SCON和PCON。3.2 MCS-51单片

50、机的指令系统的实现原理MCS-51系列单片机的指令系统采用汇编语言,它的指令系统是-种简明高效的指令系统,由42种助记符和7种寻址方式组合而成。其基本指令共有111条,其中单字节指令49条,双字节指令45条,三字节指令17条。如果按功能可以讲这些指令分为五类:数据传送类(29条)、算术操作类(24条)、逻辑操作类(24条)、控制转移类(17条)以及位变量操作类(17条)。对于反向设计而言,我们关心的不是它的各种具体指令的多少而是指令的寻址方式。所谓的寻址方式就是寻找确定参与操作的数的真正地址。MCS-51系列单片机的111条指令一共只采用了7种寻址方式。它们分别为:1. 立即寻址2. 直接寻找

51、3. 寄存器寻址4. 寄存器间接寻址5. 变址寻址6. 相对寻址7. 位寻址第四章MCS-51单片机的定时模块设计4.1定时模块设计 MCS-51系列单片机有2个定时器/计数器,即定时器/计数器0和1,在专用寄存器TMOD(定时器方式)中,各有一个控制位(C/T),分别用于控制定时器/计数器0和1是工作在定时器方式还是计数方式。选择定时器工作方式时,计数输入信号是内部时钟脉冲,每个机器周期使寄存器的值增1。每个机器周期等于12个振荡器周期,故计数速率为振荡器频率的1/12。选择计数器工作方式时,技术脉冲来自相应的外部输入引脚T0或T1。当输入信号产生由1到0的负跳变时,计数寄存器(TH0,TL

52、0或TH1,TH1)的值增1。每个机器周期的S5P2期间,对外部输入进行取样。如果在第一个周期中采得的值为1,在下一个周期采得的值为0,则在紧跟着的再下一个周期的S3P1期间,计数值就增1。由于确认下一次跳变要2个机器周期,即24个振荡器周期因此外部输入的计数脉冲的最高频率为振荡器频率的1/24。对外部输入信号的占空比并没有什么限制,但为了确保某一给定的电平变化之前至少被采样一次,则这一电平至少要保持一个机器周期。虽然本设计不采用机器周期的概念,但是这里仍将采用1/12倍时钟频率来对外部输入进行采样,以便能够和原芯片的功能兼容。由以上对定时器/计数器功能和原理的一个整体性描述可知,本单元将必须

53、以时序逻辑电路的方式来实现。图4-1中的(a)图就是本模块设计完成后形成的符号文件。图中的输入除时钟CLK、复位RESET,外部中断0 INT_0和外部中断1 INT_1直接来自芯片的外部输入之外,其余的输入信号全部来自控制器。其中的RELOAD_I7 to 0,WT_EN以及WT_I7 TO 0用于重写定时器/计数器内部寄存器。所有的输出信号全部送往控制器,用于及时更新特殊功能寄存器的内容。定时器/计数器的两种工作方式决定了要设计好定时器/计数器首先必须设计一个分频器和连个负跳变的检测器。因此本设计实体的结构体将有3个进程来实现。除了分频器和来两个副跳变的检测器各占用一个进程外,第三个进程用

54、于实现定时器,计数器的四种工作模式。各进程之间相互关联,内部信号将作为传输信息的纽带。图4-1(a)MC8051_TMRCTR图4-1(b)MC8051_SIU12分频器的进程代码如下s_count_enable=1 when s_pre_count=conv_unsign(11,4)else”0”p_divide_clk:process(clk,reset) begin if reset=1then s_pre_count=conv_unsigned(0,4); else if clkevent and clk=;1thenif s_pre_ count=conv_unsign(11,4)t

55、hens_pre_count=conv_unsigned(0,4);elses_pre_count=s_pre_ount=conv_unsigned(1,1);end if;end if;end if;end process p_divide_clk;负跳变的检测器,本文将以一个双稳态的触发器来实现,实现触发器的进程如下s_ext_edge0=1when(s_t0ff1=0ands_t0ff2=1)else0;p_sample_t0:process(clk,reset)begin if reset=1then s_t0ff1=0;s_t0ff2=0;elseif clkevent and cl

56、k=;1thenif s_pre_count=conv_unsigned(6,4) then if s_c_t0=1thens_t0ff1=t0_i;s_t0ff2=s_toff1;end if;end if;end if;end process p_sample_to;4.1.1 模式0图4-2表示了定时器/计数器0在模式0下的逻辑图,振荡器12分频foscTF0TL0 TH0低5位 高8位 控制(高电平有效) 1T0(P3.4)&GATE/INT0(P3.2) TR0图4-2 T0工作方式0结构 振荡器12分频foscTL0 TH0低8位 高8位TF0 控制(高电平有效) 1T0(P3.4

57、)&GATE/INT0(P3.2) TR0图4-3 T0工作方式1结构对定时器1也适用,只要把图中的相应的标示符后缀0改为1就可以了。在这种模式下,16位寄存器只用了13位,TL1高3位未用。图中c/t是专用寄存器TMOD中的控制位。当C/T=0时,选择定时器方式,C/T=1时选择计数器方式,引脚T1接外部输入信号。TR1时专用寄存器TCON中的-个控制位,GATE是TMOD中的另一个控制位,引脚INT 1时外部中断1的输入端,再次另有么他用。TF1时定时器的溢出标志。当满足条件(TR1=1)AND(GATE=0 OR INT=1)为真时,接通计数输入。当计数值由全1再增1变为全0时,时TF1

58、置1,请求中断,若TR1=1和ATE=1,则是否计数取决于INT 1引脚的信号,当INT1引脚由0变1时,开始计数,当INT1由1变0时,停止计数。这样就可以在测量INT1端出现的正脉冲的宽度。由上述对定时器/计数器工作于模式0的原理分析可知,要实现这样-个电路,其VHDL 语言的结构体应该包括两个大的部分:一是置中断标志位,二是改变计数寄存器的值,同时,改变计寄存器的值又可细分为两块一写高8位寄存器和一写低8位寄存器。其部分代码如下:这一段用于产生定时器/计数器0中中断标志位;If s_tmr_ctro_en=1thenIf (s_c_t0=0and s_count_enable=1)or(

59、s_ext_edge0=1ands_c_t0=1)thenIf s_count=conv_unsigned(65311,16)thens_tf0=1;else s_tf0=0end if ;end if;end if ;这一段用于写定时器,计数器0的低8位计数寄存器TL0If wt_i=”00”and wt_en i=1thenS_countl0=unsigned(reload_i);Else If s_tmr_ctro_en=1then If s_c_t0=0thenIf s_count_enable=1thenIf s_count0=conv_unsigned(65311,16)thenS

60、_countl0=conv_unsigned(0,8);Else s_countl0=s_countl0+conv_unsigned(1,1);end if ;end if ;else s_c_t0=1if s_ext_edge0=1then if s_count0=conv_unsigned(65311,16)thens_countl0=conv_unsigned(0,8);elses_countl0=s_countl0+conv_unsigned(1,1);end if ;end if ;end if ;end if;end if;end if ;这一段用于写定时器,计数器0的高8位计数器

61、寄存器TH0If wt_i=”10”and wt_en_i=1thens_counth0=unsigned(reload_i);elseif s_tmr_ctro_en=1thenif s_c_t0=0thenif s_count_enable=1thenif s_count0=conv_unsigned(65311,16)thens_counth0=conv_unsigned(0,8);elseif s_countl0=conv_unsigned(255,8)thens_counth0=s_counth0+convunsigned(1,1);end if;end if;end if;else s_c_t0=1if s_ext_edge0=thenif s_count0=conv-unsigned(65311,16)thens_counth0=conv_unsigned(0.80;elseif s_countl0=conv_unsigned(255,8)thens

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!