usb下载线接头分别接at89s51的:
1-p1.5
2-vcc
3-不使用
4,6,8,10-地
5-rst
7-p1.7
9-p1.6
sram可以用8155,还可以扩展i/o
8155
8155
描 述:2048-Bit Static MOS RAM with I/O Ports and Timer
中文描述:2048位静态马鞍山内存与I/O端口和定时器
8155各引脚功能说明如下:
RST:复位信号输入端,高电平有效。复位后,3个I/O口均为输入方式。
AD0~AD7:三态的地址/数据总线。与单片机的低8位地址/数据总线(P0口)相连。单片机与8155之间的地址、数据、命令与状态信息都是通过这个总线口传送的。
:读选通信号,控制对8155的读操作,低电平有效。
:写选通信号,控制对8155的写操作,低电平有效。
:片选信号线,低电平有效。
IO/ :8155的RAM存储器或I/O口选择线。当IO/ =0时,则选择8155的片内RAM,AD0~AD7上地址为8155中RAM单元的地址(00H~FFH);当IO/ =1时,选择 8155的I/O口,AD0~AD7上的地址为8155 I/O口的地址。
ALE:地址锁存信号。8155内部设有地址锁存器,在ALE的下降沿将单片机P0口输出的低8位地址信息及 ,IO/ 的状态都锁存到8155内部锁存器。因此,P0口输出的低8位地址信号不需外接锁存器。
PA0~PA7:8位通用I/O口,其输入、输出的流向可由程序控制。
PB0~PB7:8位通用I/O口,功能同A口。
PC0~PC5:有两个作用,既可作为通用的I/O口,也可作为PA口和PB口的控制信号线,这些可通过程序控制。
TIMER IN:定时/计数器脉冲输入端。
TIMER OUT:定时/计数器输出端。
VCC:+5V电源。
2、8155的地址编码及工作方式
在单片机应用系统中,8155是按外部数据存储器统一编址的,为16位地址,其高8位由片选线 提供, =0,选中该片。
当 =0,IO/ =0时,选中8155片内RAM,这时8155只能作片外RAM使用,其RAM的低8位编址为00H~FFH;当 =0,IO/ =1时,选中8155的I/O口,其端口地址的低8位由AD7~AD0确定,如表6-6所示。这时,A、B、C口的口地址低8位分别为01H、02H、03H(设地址无关位为0)。
AD7~AD0 选择I/O口
A口
B口
C口
定时器低8位
定时器高6位及方式
8155的A口、B口可工作于基本I/O方式或选通I/O方式。C口可工作于基本I/O方式,也可作为A口、B口在选通工作方式时的状态控制信号线。当C口作为状态控制信号时,其每位线的作用如下:
PC0:AINTR(A口中断请求线)
PC1:ABF(A口缓冲器满信号)
PC2: (A口选通信号)
PC3:BINTR(B口中断请求线)
PC4:BBF(B口缓冲器满信号)
PC5: (B口选通信号)
8155的I/O工作方式选择是通过对8155内部命令寄存器设定控制字实现的。命令寄存器只能写入,不能读出,命令寄存器的格式如图6-16所示。
在ALT1~ALT4的不同方式下,A口、B口及C口的各位工作方式如下:
ALT1:A口,B口为基本输入/输出,C口为输入方式。
ALT2:A口,B口为基本输入/输出,C口为输出方式。
ALT3:A口为选通输入/输出,B口为基本输入/输出。PC0为AINTR,PC1为ABF,PC2为 ,PC3~PC5为输出。
ALT4:A口、B口为选通输入/输出。PC0为AINTR,PC1为ABF,PC2为 ,PC3为BINTR,PC4为BBF,PC5为 。
8155内还有一个状态寄存器,用于锁存输入/输出口和定时/计数器的当前状态,供CPU查询用。状态寄存器的端口地址与命令寄存器相同,低8位也是00H,状态寄存器的内容只能读出不能写入。所以可以认为8155的I/O口地址00H是命令/状态寄存器,对其写入时作为命令寄存器;而对其读出时,则作为状态寄存器。
3、8155的定时/计数器
8155内部的定时/计数器实际上是一个14位的减法计数器,它对TIMER IN端输入脉冲进行减1计数,当计数结束(即减1计数“回0”)时,由TIMER OUT端输出方波或脉冲。当TIMER IN接外部脉冲时,为计数方式;接系统时钟时,可作为定时方式。
s51 用个232接口通讯就可以在线编程(3.0,3.1口作为串行通讯口 ),扩展sram就用P2,P0口分别作高低数据线接出对应扩展就可以了,需要接多少个数据口就要看你的SRAM的大小了;你的USB是用做电源接口的吧?就弄个简单电路直接连电源VCC就可以了
推荐选用其他型号的单片机。
我是用STC89C52!