基于8086的Proteus仿真波形发生器的设计Word文件下载.docx
《基于8086的Proteus仿真波形发生器的设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于8086的Proteus仿真波形发生器的设计Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。
Ø
16位的内部结构,16位双向数据信号线;
20位地址信号线,可寻址1M字节存储单元;
较强的指令系统;
利用第16位的地址总线来进行I/O端口寻址,可寻址64K个I/O端口;
中断功能强,可处理内部软件中断和外部中断,中断源可达256个;
单一的+5V电源,单相时钟5MHz.
另外,Intel公司同期推出的Intel8088微处理器一种准16位微处理器,其内部寄存器,内部操作等均按16位处理器设计,与Intel8088微处理器基本上相同,不同的是其对外的数据线只有8位,目的是为了方便地与8位I/O接口芯片相兼容。
3.8086CPU的编程结构
编程结构:
是指从程序员和使用者的角度看到的结构,亦可称为功能结构。
如图2-1所示是8086CPU的内部功能结构。
从功能上来看,8086CPU可分为两部分,即总线接口部件BIU(BusInterfaceUnit)和执行部件EU(ExecutionUnit)。
(1)执行部件(EU)
功能:
负责指令的执行.
组成:
包括①ALU(算术逻辑单元)、②通用寄存器组和③标志寄存器等,主要进行8位及16位的各种运算。
(2)总线接口部件(BIU)
负责与存储器及I/O接口之间的数据传送操作。
具体来看,完成取指令送指令队列,配合执行部件的动作,从内存单元或I/O端口取操作数,或者将操作结果送内存单元或者I/O端口。
它由①段寄存器(DS、CS、ES、SS)、②16位指令指针寄存器IP(指向下一条要取出的指令代码)、③20位地址加法器(用来产生20位地址)和④6字节(8088为4字节)指令队列缓冲器组成。
图2-18086/8088CPU内部功能结构图
8086CPU的两种工作模式
为了适应各种使用场合,在设计8086CPU芯片时,就考虑了其应能够使它工作在两种模式下,即最小模式与最大模式。
所谓最小模式,就是系统中只有一个8086微处理器,在这种情况下,所有的总线控制信号,都是直接由8086CPU产生的,系统中的总线控制逻辑电路被减到最少,该模式适用于规模较小的微机应用系统。
最大模式是相对于最小模式而言的,最大模式用在中、大规模的微机应用系统中,在最大模式下,系统中至少包含两个微处理器,其中一个为主处理器,即8086/8086CPU,其它的微处理器称之为协处理器,它们是协助主处理器工作的。
与8086CPU配合工作的协处理器有两类,一类是数值协处理器8087另一类是输入/输出协处理器8089。
8087是一种专用于数值运算的协处理器,它能实现多种类型的数值运算,如高精度的整型和浮点型数值运算,超越函数(三角函数、对数函数)的计算等,这些运算若用软件的方法来实现,将耗费大量的机器时间.换句话说,引入了8087协处理器,就是把软件功能硬件化,可以大大提高主处理器的运行速度。
8089协处理器,在原理上有点象带有两个DMA通道的处理器,它有一套专门用于输入/输出操作的指令系统,但是8089又和DMA控制器不同,它可以直接为输入/输出设备服务,使主处理器不再承担这类工作。
所以,在系统中增加8089协处理器之后,会明显提高主处理器的效率,尤其是在输入/输出操作比较频繁的系统中。
仿真工具——Proteus软件
Proteus是一个基于ProSPICE混合模型仿真器的,完整的嵌入式系统软、硬件设计仿真平台。
ISIS——智能原理图输入系统,系统设计与仿真的基本平台;
VSM仿真单元—-含混合模型仿真、VSM仿真、高级图形仿真(ASF)等;
ARES—-高级PCB布线编辑软件。
PROTEUSVSM的仿真方式:
⏹交互式仿真-检验用户所设计的电路是否能正常工作。
⏹基于图表的仿真(ASF)-用来研究电路的工作状态及进行细节的测量。
⏹PROTEUSVSM中的仿真工具:
⏹探针-直接布置在线路上,用于采集和测量电压/电流信号;
⏹电路激励-系统的激励信号源;
⏹虚拟仪器-用于定性分析电路的运行状况;
⏹曲线图表-用于定量分析电路的参数指标.
8253基本概述
intel8253是NMOS工艺制成的可编程计数器/定时器,有几种芯片型号,外形引脚及功能都是兼容的,只是工作的最高计数速率有所差异,例如8253(2。
6MHz),8253—5(5MHz) 8253内部有三个计数器,分别成为计数器0、计数器1和计数器2,他们的机构完全相同.每个计数器的输入和输出都决定于设置在控制寄存器中的控制字,互相之间工作完全独立.每个计数器通过三个引脚和外部联系,一个为时钟输入端CLK,一个为门控信号输入端GATE,另一个为输出端OUT。
每个计数器内部有一个8位的控制寄存器,还有一个16位的计数初值寄存器CR、一个计数执行部件CE和一个输出锁存器OL。
执行部件实际上是一个16位的减法计数器,它的起始值就是初值寄存器的值,而初始值寄存器的值是通过程序设置的。
输出锁存器的值是通过程序设置的。
输出锁存器OL用来锁存计数执行部件CE的内容,从而使CPU可以对此进行读操作。
顺便提一下,CR、CE和OL都是16位寄存器,但是也可以作8位寄存器来用.
8253引脚图和内部结构及引脚定义
8253由以下几个部分组成:
(1数据总线缓冲器(8位、三态、双向);
(2读/写控制逻辑;
CS:
片选信号,低电平有效;
RD:
读信号,低电平有效;
WR:
写信号,低电平有效
A1A0:
端口选择信号
(3三个通道(0~2);
(4一个控制寄存器;
8253内部可分为6个模块,每个模块的功能如下:
1。
数据总线缓冲器及数据总线D0~D7
2.读/写控制逻辑及控制引脚
CS*A1A0
I/O地址
读操作RD*
写操作WR*
000
001
010
011
40H
41H
42H
43H
读计数器0
读计数器1
读计数器2
无操作
写计数器0
写计数器1
写计数器2
写控制字
控制字寄存器
在初始化编程时,CPU写入方式控制字到控制字寄存器中,用以选择计数通道及其相应的工作方式。
8253的控制字:
8253的工作方式也是有控制字来决定,其控制字意义如下
4。
计数通道0、计数通道1、计数通道2
3个计数通道内部结构完全相同。
每个计数通道都由一个16位计数初值寄存器、一个16位减法计数器和一个16位计数值锁存器组成
计数初值存于预置寄存器,在计数过程中,减法计数器的值不断递减,而预置寄存器中的预置不变.输出锁存器用于写入锁存命令时,锁定当前计数值。
计数器的3个引脚说明:
(1)CLK时钟输入信号
在计数过程中,此引脚上每输入一个时钟信号(下降沿),计数器的计数值减1
(2)GATE门控输入信号
控制计数器工作,可分成电平控制和上升沿控制两种类型
(3)OUT计数器输出信号
当一次计数过程结束(计数值减为0),OUT引脚上将产生一个输出信号
8253有6种工作方式,由方式控制字确定
区分这6种工作方式的主要标志由3点:
一是输出波形不同;
二是启动计数器的触发方式不同;
三是计数过程中门控信号GATE对计数器操作的控制不同.
1..方式0—-低电平输出(GATE信号上升沿继续计数)
2.方式1—-低电平输出(GATE信号上升沿重新计数)
3.方式2—-周期性脉冲输出
4.方式3--周期性方波输出
OUT输出低电平,装入计数值n后,OUT立即跳变为高电平.如果当前GATE为高电平,则立即开始减“1”计数,OUT保持为高电平,若n为偶数,则当计数值减到n/2时,OUT跳变为低电平,一直保持到计数值为“0”,系统才重新置入计数值n,实现循环计数。
这时OUT端输出周期为n×
CLK周期,占空比为1:
1的方波序列:
若n为奇数,则OUT端输出周期为n×
CLK周期,占空比(n+1)/2:
(n—1)/2的近似方波序列。
5.方式4——单次负脉冲输出(软件触发)
6.方式5——单次负脉冲输出(硬件触发)
每种工作方式的设置过程类似:
⑴设定工作方式
⑵设定计数初值
〔⑶硬件启动〕
⑷计数初值进入减1计数器
⑸每输入一个时钟计数器减1的计数过程
⑹计数过程结束
由于8253的读/写操作对系统时钟没有特殊的要求,因此它几乎可以应用与由任何一种微处理器组成的系统中。
当A1A0分别为00011011时分别选中三个通道和控制字寄存器在8088系统中,8088的A1A0分别与8253的A1A0相连在8086系统中,通常将8253的8位数据线与8086的低8位相连,即使用偶地址,所以8086的A2A1分别与8253的A1A0相连
Intel8253是一片具有三个独立的16位计数器通道的可编程定时器/计数器芯片。
每个通道都可以编程设定6种工作方式之一种;
由于8253的读/写操作对系统时钟没有特殊的要求,因此它几乎可以应用与由任何一种微处理器组成的系统中,可作为可编程的方波频率发生器、分频器、实时时钟、事件计数器和单脉冲发生器等。
表8—4控制功能表
CS
RD
WR
A1A0
功能
1
00
01
10
11
写控制字寄存器
X
XX
禁止使用
计数器(0~2)即三个计数器/定时器通道。
每个通道包括:
8位控制字寄存器、16位计数初值寄存器、减一计数器和输出锁存器.作定时器用:
其CLK端上的输入脉冲应是标准的、精确的;
作计数器用:
对其CLK端上的脉冲计数,脉冲宽度可以不等.采用减一计数器,为0时,从OUT端上输出一个脉冲定时时间=时钟脉冲周期X预置的计数初值.
主要功能模块单元
(1)可编程定时/计数器模块8253
本电路模块可用于产生定时中断,实现实时时钟实验等,具体接法请参照实验.本电路端口地址为CS。
译码器74LS138
74LS138介绍:
138为3线-8线译码器,共有54/74S138和54/74LS138两种线路结构型式,其主
要电特性的典型值如下:
当一个选通端(G1)为高电平,另两个选通端(/(G2A)和/(G2B))为
低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端以低
电平译出。
利用G1、/(G2A)和/(G2B)可级联扩展成24线译码器;
若外接一个反
相器还可级联扩展成32线译码器.
若将选通端中的一个作为数据输入端时,138还可作数据分配器。
管脚图:
引出端符号:
A、B、C译码地址输入端
G1选通端
/(G2A)、/(G2B)选通端(低电平有效)
Y0~Y7译码输出端(低电平有效)
2.4.74HC373概述:
74HC373是一款高速CMOS器件,74HC373引脚兼容低功耗肖特基TTL(LSTTL)系列。
74HC373遵循JEDEC标准no.7A。
74HC373是八路D型锁存器,每个锁存器具有独立的D型输入,以及适用于面向总线的应用的三态输出.所有锁存器共用一个锁存使能(LE)端和一个输出使能(OE)端.
74HC373包含八个具有三态输出的D型透明锁存器。
当LE为高时,数据从Dn输入到锁存器,在此条件下,锁存器进入透明模式,也就是说,锁存器的输出状态将会随着对应的D输入每次的变化而改变.当LE为低时,锁存器将存储D输入上的信息一段就绪时间,直到LE的下降沿来临。
当OE为低时,8个锁存器的内容可被正常输出;
当OE为高时,输出进入高阻态。
OE端的操作不会影响锁存器的状态。
系统仿真电路图
仿真波形图
程序代码:
CODESEGMENT
ASSUMECS:
CODE
IOCONEQU8006H
IOAEQU8000H
IOBEQU8002H
IOCEQU8004H
START:
MOVAL,90H
MOVDX,IOCON
OUTDX,AL
MOVAL,0H
MOVDX,IOA
INAL,DX;
MOVAH,AL
MOVBL,AL
START1:
NOP
NOP
MOVBH,00H
MOVAL,0H
MOVDX,IOA
INAL,DX
CMPAL,BL
JZJUDGMENT
MOVAH,AL
MOVBL,AL
JUDGMENT:
;
按键选择
CMPAL,0FEH
MOVBH,06H;
数码管输出显示
JZA
CMPAL,0FDH
MOVBH,5BH
JZA
CMPAL,0FBH
MOVBH,4FH
CMPAL,0F7H
MOVBH,66H
CMPAL,0EFH
MOVBH,6DH
CMPAL,0DFH
MOVBH,7DH
CMPAL,0BFH
MOVBH,07H
CMPAL,7FH
MOVBH,7FH
MOVBH,00H
B:
MOVAL,0FFH
MOVDX,IOB
OUTDX,AL;
B口输出
MOVAL,00H
MOVDX,IOC
OUTDX,AL;
C口输出
JMPSTART1
A:
MOVAL,AH
B口输出
MOVDX,IOC
MOVAL,BH
MOVAL,AH
RORAL,1
MOVAH,AL
CALLDELAY;
调用延时
CODEENDS
DELAYPROCNEAR;
延时
PUSHAX
MOVAL,0
PUSHCX
MOVCX,AX
LOOP$
POPCX
POPAX
RET
DELAYENDP
ENDSTART
参考文献
嵌入式硬件基础/王晓薇,周传生,李冶--北京:
电子工业出版社