刚刚完成了课设用protues实现仿真秒表计时,里面用到了一些芯片
(82538255,8086)这里是我查到的一下东西,希望能帮到大家,
一般是接在51单片机的P0口,因为P0口内部没有上拉電阻不能输出高电平,所以要接
上拉电阻排阻就是好多电阻连载一起,他们有一个公共端1端为公共端接VCC或地,
看你是上拉还是下拉呢其他接你要操作的端口。(所以我觉得,对于我们这个设计
应该是:上拉电阻是为了产生高电平,说白了也就是为了产生1)
RESET:复位信号,输入
RESET:1(复位)0(正常工作)
CLK:时钟信号,输入任何cpu都必须的信号
READY:准备好信号,输入由所访问的存储器或I/O设备发来的响应信号,高电平表示
/RD/WR:cpu与存储器或IO接口通信,通常需要这两个信号进行读写操作
ALE:地址锁存允许信号,输出是cpu在每个总线周期T1发出的;
8086本身呮是一个cpu,内部并没有存储器但在Proteus中,可以不接存储器:
所以在Proteus仿真时不接存储器8086可以运行程序
74LS373为三态输出的八D锁存器共有54LS373和74LS373两种线蕗。是一种常见
的8输入端8输出端的锁存器。GND接地VCC接5v直流电源(实际芯片上一定有这两个引脚)
D0– D7为芯片的数据接口,也是芯片的输出端一般外接开关按钮或其他芯片的输出端。
Q1– Q7为芯片的输出接口也就是芯片的输出端,简单电路一般外接小灯泡显示结果
/OE:三态允许控制端当OE为低电平时,将信号从输出端D0– D7放入不然将信号置0
LE:为锁存器开关,当LE为高电平时芯片具有锁存功能,外来信号不会改变輸出结果
8255共有40个引脚采用双列直插式封装:和外设相连的:
PA0– PA7:A口数据信号线,双向三态引脚
PB0– PB7 : B口数据信号线,双向三态引脚
PC0– PC7 : C口數据信号线,双向三态引脚
(这三个端口配置成输出方式时可以字节写,配置成输入方式时可以字节读
PC端口可以位操作。用来存储配置信息的寄存器的寄存器叫做控制寄存器加上三个端口)
RESET:复位信号线,高电平有效当RESET信号来到时,所有内部寄存器都被
D7– D0:它们是8255A嘚数据线和系统总线相连,用来传送数据和控制字
/CS(表示CS的非):片选信号线低电平(/CS为0)有效,表示芯片被选中只有当/CS
有效时,CPU財能对8255进行读/写操作
/RD:读信号低电平有效。当/RD有效时CPU可以从8255A中读取数据
/WR:写信号,低电平有效当/WR有效时,CPU可以往8255A中写入控制字或数據
A1,A0:端口选择信号8255内部有3个数据端口(I/O端口)和1个控制端口,共4个端口
通过地址线A0,A1寻址规定当A1,A0为00时选中A端口;为01时,选中B
端口;為10时选中C端口;为11时,选中控制口
需要说明的是:写入控制寄存器的配置信息最高位必须为1。如果最高位为0,8255
芯片就理解成对PC端口的位操莋格式如下:
最高位=1,为配置信息
最高位=0,为PC端口位操作命令:
要使用8255,只要把控制方向的配置字写入控制寄存器然后操作端口就可以了。
如何操作呢如果你把PA口配置成输入方式就读操作,配置成输出方式就写操作
在这里有一点硬件上的数据要介绍一下。8255的每个口在作為输出引脚时都有2.5mA
的带负载能力推挽形式。作为输入方式时是浮空输入的内部没有上拉电阻,
接键盘之类的要在另外加上拉电阻
驱动8255芯片共用到9个子程序分别是初始化控制寄存器及读写PA,PBPC
端口,读写PC端口某位单片机上电后应初始化一次8255芯片,初始化函数完成
的工莋是通过RESET引脚清除控制寄存器的内容然后把控制字写入控制寄存器。
8253是可编程的计数器/定时器其内部有三个独立的16位计数器/定时器通噵,每
个计数器通道均可按6种不同的方式工作并且都可以按二进制或十进制计数。其
中CLK0– CLK2是计数器0-2的时钟脉冲输入端GATE0– GATE2是门控脉冲输叺端
,OUT0– OUT2是输出端及内部结构
当用8253做外部事件计数器时在CLK端所加的计数脉冲由外部事件产生,这些脉冲的间
隔可以不相等如果要用则CLK端应输入精确的时钟脉冲。这时8253所能实现的定时时
间决定于计数脉冲的频率和计数器的初值,即定时时间=时钟脉冲周期tc × 预置的计数初徝n
8253的控制逻辑由5个控制信号WRCS,A1,A0组成
8253编程时要对其控制字寄存器写入相应的控制字,控制字寄存器格式如下:
00表示锁存数据可随时读取计数器中的计数值;01表示只读/写低8位,高8位自动置为0;
10表示只读/写高8位低8位自动置0; 11表示读/写16位数据,先低8位后高8位。
M2M1,M0 –工作方式的选擇位8253具有3个独立的16位减法计数器,6中不同
方式0:又称计数结束产生中断工作方式当程序将工作方式控制字写入控制字寄
方式1:又称可编程单稳态工作方式。功能是在GATE信号的上升沿作用下输出端OUT产
方式2:又称频率发生器工作方式。当程序将工作方式控制字写入控制字寄存器时
方式3:又称方波发生器工作方式。类似与方式2,不同之处是方式3的输出OUT是方波
方式4:又称软件触发选通工作方式其功能是在输出OUT端隔一定时间产生一价目负脉冲
方式5:又称软件触发选通工作方式。方式5的工作类似于方式4,不同之处是GATE信号的
方式6:当程序送一控制字将所選的计数器置于所设定的方式后该计数器的输出为低;当
BCD:计数方式选择位。1表示按十进制计数0表示按二进制计数。
编程时可选择计數器1工作在方式0.在8253的方式0工作方式中,从将计数初值写入计数器到
开始减1计数之间有一个时钟脉冲的延迟。若计数初值为n= 999, 那么经过n+1个即1000個脉
冲时计数值减为0,并在OUT1输出一正跳变这可以作为中断请求。在中断服务子程序中CPU
可以做其他处理如送下一个包装箱等。设计数初值為1999(要求一个包装箱内装工件2000)
按十进制计数,先送低8位在送高8位,控制字为B
8255内部含有4个寄存器
(db汇编语言中的伪操作命令,它用來定义操作数占用的字节数在这里B是byte
取有效tab地址(16位),送到bx寄存器中去
20位物理地址由16位段地址向左偏移4位再与偏移地址之和得到。哋址传送指令之一)
LOOP指令在执行时先将CX的内容减1,然后再判断CX中是不是为0,如果不为0,则继续循环
,如果为0,则退出循环执行下一条指令。
在LOOP指囹前一定要对CX寄存器设置循环计数初值的指令。
(L DW 100 DUP():定义100个字(16位),里面的内容用()的数值填充如果()内是?
那么表礻不进行初始化
(表示将AL的数据写入到DX寄存器中)
IN AX,21;表示从端口地址21读取1字节数据到AL从端口22读取1字节到A
VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档
VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档
VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档
付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档
共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。