预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共34页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

I/O端口P0~P3(80H,90H,A0H,B0H)在单片机接口扩展系统中各端口功能地址锁存器地址锁存器(74373)74373内部逻辑芯片介绍——SRAM62646264是8K*8的静态随机存储器。 A0-A12为片内13位地址线,I/O0-I/O7为双向三态数据线,/CE为片选信号,/OE为读允许信号,/WE为写信号。#include<reg51.h> xdataunsignedchar*port; xdataunsignedcharBuffer[256]_at_0x6000; main() { unsignedchartmp=0x55; unsignedcharj; port=&Buffer; while(1) { for(j=0;j<256;j++) { tmp++; *port++=tmp; } } }简单并行输出接口的扩展74273引脚和功能原理访问外设端口的软件设置举例——对片外的1000H单元进行数据的写操作,设计方法如下注意:应用设计举例C51源程序为: #include<reg51.h> #include<absacc.h> #defineportXBYTE[0x7FFF] unsignedchartable[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f};//设置数码块显示数据表 voiddelay(void) {unsignedinti; for(i=0;i<40000;i++);} voidmain(void) {unsignedinti; while(1) { for(i=0;i<10;i++) {port=table[i];//从数码块显示字表读取数据,通过74273输出显示 delay(); } } }74244设计应用举例程序设计分析与讨论:如果将74273和74244的功能交换,即用273作输入口扩展,244作输出口扩展,是否可行?答案是否定的。 由于P0口分时输出数据/地址信息,因此,作为输出端口要求具有锁存功能,当芯片选通时,锁存输出数据,当芯片选通结束,数据依然能够保持在输出端口。 在作为输入端口使用时,由于单片机的总线端口常常要对多个外设端口进行分时访问,因此,要求作为输入与总线相连的接口芯片具有缓冲功能。即当总线访问该接口芯片时,选片信号有效,该芯片的缓冲器三态门打开,数据输入总线。当该芯片不被选中时,芯片三态门处与高阻态,此时,芯片的输出被断开,对总线不起作用,总线此时可以被其他器件占用。数据线D0~D7:接于P0接口 连接I/O设备信号线: PA、PB、PC共24条端线。 A1A0端口选择: 00—A口01—B口 10—C口11—控制口 /CS:片选信号。低电平有效 /RD,/WR:芯片读出,写入信号; 低电平有效。 RESET:复位端。为1时,清除内部寄存器内容,3个数据口为输入方式。8255A的三种工作方式设置A、B、C端口的工作模式8255A与单片机的接口电路设计实例硬件电路分析精品课件!精品课件!编写C51程序如下