实例介绍
基于8086的Proteus仿真波形发生器的设计
简介 《嵌入式硬件技术基础》以80x86微处理器为平台来阐述微机系统的组成 和系统的接口技术,通过汇编语言将原理与应用联系起来,同时将开发嵌 入式应用系统所需要的硬件基础知识进行了详细的闻述。《嵌入式硬件技术 基础》可分为3个部分,第1部分主要介绍组成嵌入式应用系统功能部件 的原理、结构,第2部分主要介绍硬件编程语言——汇编语言及其与C语 言的混合编程,第3部分主要介绍嵌入式应用系统的典型接口芯片、接口 技术,以及嵌入式应用系统软、硬件设计的基木方法 8086的介绍 8086微处理器是 Intel公司推出的第三代CPU芯片,它们的内部结构基本 相同,都采用16位结构进行操作及存储器寻址,但外部性能有所差异,两种处 理器都封裝在相同的40脚双列直插组件(DP)中。 2.8086微处理器的一般性能特点: 冫16位的内部结构,16位双向数据信号线; 20位地址信号线,可寻址1M字节存储单元; 较强的指令系统; 利用第16位的地址总线来进行I/0端口寻址,可寻址64K个I/0端口 中断功能强,可处理内部软件中断和外部中断,中断源可达256个; 单一的+5V电源,单相时钟5MHL 另外, Intel公司同期推出的 Intel8088微处理器一种准16位微处理器,其 内部寄存器,内部操作等均按16位处理器设计,与 Intel8088微处理器基木上 相同,不同的是其对外的数据线只有8位,目的是为了方便地与8位I/0接口芯 片相兼容。 3.8086CPU的编程结构 编程结构:是指从程序员和使川者的角度看到的结构,亦可称为功能结构。 如图2-1所示是8086CPU的内部功能结构 从功能上来看,8086CPU可分为两部分,即总线接口部件BIU③ us Inter race UniL)和执行部件EU( Execution unit)。 (1)执行部件(EL) 功能:负责指令的执行 组成:包括①ALU(算术逻辑单元)、②通用寄存器组和③标志寄存器等,主 要进行8位及16位的各种运算。 (2)总线接口部件(BIU) 功能:负责与存储器及I/0接口之间的数据传送操作。具体来看,完成取 指令送指令队列,配合执行部件的动作,从内存单元或I/0端口取操作数,或 者将操作结果送内存单元或者I/0端口 组成:它由①段寄存器(DS、CS、ES、SS)、②16位指令指针寄存器IP(指 向下一条要取出的指令代码)、③20位地址加法器(用来产生20位地址)和④6 字节(8088为4字节)指令队列缓冲器组成。 位地址加法器 EU A耳AL BIU H 16位 输出/外部总线 内架存器 电路 运算奇存器 总行件制略 指令队列 丸工U 器 图218086/8088CPU内部功能结构图 8086CPU的两种工作模式 为了适应各和使用场合,在设计8086CP芯片时,就考虑了其应能够使它工 作在两种模式下,即最小模式与最大模式。 所谓最小模式,就是系统中只有一个8086微处理器,在这种情况下,所有 的总线控制信号,都是直接由8086PU产生的,系统中的总线控制逻辑电路被减 到最少,该模式适用于规模较小的微机应用系统。 最大模式是相对于最小模式而言的,最大模式用在中、大规模的微机应用系 统中,在最大模式下,系统中至少包含两个微处理器,其中一个为主处理器,即 8086/8086CPU,其它的微处理器称之为协处理器,它们是协助主处理器工作的。 与8086CPU配合工作的协处理器有两类,一类是数值协处理器8087另一类 是输入/输出协处理器8089。 8087是一种专用于数值运算的协处理器,它能实现多种类型的数值运算, 如高精度的整型和浮点型数值运算,超越函数(三角函数、对数函数)的计算等, 这些运算若用软件的方法来实现,将耗费人量的机器时间。换句话说,引入了 8087协处理器,就是把软件功能硬件化,可以大大提高主处理器的运行速度。 8089协处理器,在原理上有点象带有两个DMA通道的处理器,它有一套专 」用于输入/输岀操作的指令系统,但是8089又和DMA控制器不同,它可以直接 为输入/输出设备服务,使主处理器不再承担这类工作。所以,在系统中增加8089 协处理器之后,会明显提高主处理器的效率,尤其是在输入/输出操作比较频繁 的系统中。 仿真工具- Proteus软件 Proteus是一个基于 ProSPice混合模型仿真器的,完整的嵌入式系统软、硬件 设计仿真平台。 ISIS——智能原理图输入系统,系统设计与仿真的基本平台; VSM仿真单元—一含混合模型仿真、wSM仿真、高级图形仿真(ASF)等; ARES一—高级PCB布线编辑软件。 PROTEUS VSM的仿真方式: 交互式仿真一检验用户所设计的电路是否能正常工作 基于图表的仿真(ASF)一用来研究电路的工作状态及进行细节的测 ■ PROTEUS VSM中的仿真工具: 探针一直接布置在线路上,用于采集和测量电压/电流信号 电路激劢一系统的激劢信号源 虚拟仪器一用于定性分析电路的运行状况; 曲线图表一用于定量分析电路的参数指标。 8253基本概述 intel.8253是ⅦOS工艺制成的可编程计数器/定时器,有几种芯片型号,外 形引胭及功能都是兼容的,只是工作的最高计数速率有所差异,例如8253 (2.6MH),8253-5(5MHz)8253内部有三个计数器,分别成为计数器0、计 数器1和计数器2,他们的机构完全相同。每个计数器的输入和输出都决定于设 置在控制寄存器中的控制字,互相之间工作完全独立。每个计数器通过三个引脚 和外部联系,一个为时钟输入端CLK,一个为门控信号输入端GATE,另一个为输 出端OUT。每个计数器内部有一个8位的控制寄存器,还有一个16位的计数初 值寄存器CR、一个计数执行部件CE和一个输出锁存器OL。 执行部件实际 上是一个16位的减法计数器,它的起始值就是初值寄存器的值,而初始值寄存 器的值是通过程序设置的。输出锁存器的值是通过程序设置的。输出锁存器OL 用来锁存计数执行部件CE的内容,从而使CPL可以对此进行读操作。顺便提 下,CR、CE和0L都是16位奇存器,但是也可以作8位寄存器来用 8253引脚图和内部结构及引脚定义 24 D6|2 5 222 山R RD D35 A1 26 D1|78253份cLk2 1|T ELk口 1⊙ATE2 0UT10 15 CLK1 多AT口11 14 山T1 GND12 13GATE1 8253由以下几个部分组成: (1数据总线缓冲器(8位、三态、双向); (2读/写控制逻辑: CS:片选信号,低电平有效 RD:读信号,低电平有效; WR:写信号,低电平有效 A1AO:端口选择信号 (3三个通道(02); (4一个控制寄存器; 数据总线 CLT们 缓冲器 通道0 GATE 24k 据 !写 线 道1 10 遇辑 19 鸟1 17 控制字 16 寄存器 通道2 GATE2 1 15 OUT 4 GLII 12 OUT1 图1018253内部结构框图 图10.22253引脚图 8253内部可分为6个模块,每个模块的功能如下: 1.数据总线缓冲器及数据总线D~D 2.读/写控制逻辑及控制引胭 CS*K A1 I/0地址 读操作RD* 写操作WR* 40H 读计数器0 写计数器0 41H 读计数器1 写计数器1 42H 读计数器2 写计数器2 43H 无操作 写控制字 3.控制字寄存器 在初始化编程时,CPU写入方式控制字到控制字寄存器中,用以选择计数通道及 其相应的工作方式 8253的控制字 8253的工作方式也是有控制字来决定,其控制字意义如下 DD Ds D4 D3 D2 Dy SC1 SCo RLI RLo M2 Mi Mo BCD 1:BCD计数 0:2进制计数 000:方式0 001:方式 X10:方式2 X11:方式3 100:方式4 00:计数器锁存,供CPU读101:方式5 01:只读/写计数器低字节 10:只读/写计数器高字节 11:先写计数器低字节,后读/写高字节 00:选择通道0 01:选择通道1 10:选择通道2 11:无效 8253的控制字 4.计数通道0、计数通道1、计数通道2 3个计数通道内部结构完全相同。每个计数通道都由一个16位计数初值寄存器 一个16位减法计数器和一个16位计数值锁存器组成 计数初值存于预置寄存器,在计数过程中,减法计数器的值不断递减,而预置寄 存器中的预置不变。输出锁存器用于写入锁存命令吋,锁定当前计数值 计数器的3个引脚说明: (1)CLK时钟输入信号 在计数过程中,此引脚上每输入一个时钟信号(下降沿),讣数器的计数值减1 (2)GATE门控输入信号 控制计数器工作,可分成电平控制和上升沿控制两种类型 (3)0T计数器输出信号 当一次计数过程结束(计数值减为0),OUT引脚上将产生一个输出信号 8253有6种工作方式,由方式控制字确定 区分这6种工作方式的主要标志由3点:一是输出波形不同;二是启动计数器的 触发方式不同:三是计数过程中门控信号GAT对计数器操作的控制不同。 1..方式0—低电平输出(GATE信号上升沿继续计数) 2.方式1—低电平输出(GATE信号上升沿重新计数) 3.方式2--周期性脉冲输出 4.方式3--周期性方波输出 0UT输出低电平,装入计数值n后,OUT立即跳变为髙电平。如果当前GATE为高 电平,则立即开始减“1”计数,OUT保持为高电平,若n为偶数,则当计数值 减到n/2时,OUT跳变为低电平,一直保持到计数值为“0”,系统才重新置入计 数值n,实现循环计数。这吋OU端输出周期为n×CLK周期,占空比为1:1的 方波序列:若n为奇数,则OUT端输出周期为n×CIK期,占空比(n+1)/2 (n-1)/2的近似方波序列 5.方式4—-单次负脉冲输出(软件触发) 6.方式5-单次负脉冲输出(使件触发) 每种工作方式的设置过程类似: (1)设定工作方式 (2)设定计数初值 ((3)硬件启动) (4)计数初值进入减1计数器 (5)每输入一个时钟计数器减1的计数过程 (6)计数过程结束 由于8253的读/写操作对系统时钟没有特殊的要求,因此它几乎可以应用与由 任何一种微处理器组成的系统中 当A1A0分别为00011011时分别选中三个通道和控制字寄存器在8088系统 中,8088的AA0分别与8253的ALAO相连在8086系统中,通常将8253的8位 数据线与8086的低8位相连,即使用偶地址,所以8086的A2A1分别与8253 的A1A0相连 Intel8253是一片具有三个独立的16位计数器通道的可编程定时器/计数器芯 片。每个通道都可以编程设定6种工作方式之一种 由于8253的读/写操作对系统时钟没有特殊的要求,因此它几乎可以应用与由任 何一种微处理器组成的系统中,可作为可编程的方波频率发生器、分频器、实时 时钟、事件计数器和单脉冲发生器等。 表8-4控制功能表 AA. 功能 WR 0 写计数器0 写计数器 0 写计数器2 写控制字寄存器 读计数器0 读计数器1 10 读计数器2 无操作 Ⅹ 禁止使用 XⅩ 无操作 计数器(02)即三个计数器/定时器通道。每个通道包括:8位控制字寄存器、 16位计数初值寄存器、减一计数器和输出锁存器。作定时器用:其CLK端上的 输入脉冲应是标准的、精确的;作计数器用:对其CLK端上的脉冲计数,脉冲宽 度可以不等。采用减一计数器,为0时,从OUT端上输出一个脉冲定时时间 时钟脉冲周期X预冒的计数初值 主要功能模块单元 (1)可编程定时/计数器模块8253 D12 253 紫8日E④ CLK区 LKI Ds“ R43 D'E D5 DE oUT 1 4,了k GATE1 CLK1 RD OUT2 1 T ∩区 GATE2 CLK2 木电路模块可用于产生定时中断,实现实时时钟实验等,具休接法请参照实 验。本电路端口地址为CS 译码器74IS138 【实例截图】
【核心代码】
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论