用CPLD实现单片机与ISA总线接口的并行通信(2)

1970-01-01 08:00

END;

说明:PCA[9..0]是PC104的地址信号,A[15..14]是单片机的地址信号,PC104用到端口地址220H和221H。

3 通信软件设计

PC104是基于ISA总线的,在系统软件设计中要防止地址冲突。PC104中使用A0~A9地址位来表示I/O端口地址,即可有1024个口地址,前512个供系统板使用,后512个供扩充插槽使用,当A9=0时表示为系统板上的口地址;当A9=1时表示扩充插槽接口卡上的口地址[2]。因为本系统中采用保留的口地址220H和221H,保证不会发生地址冲突。

在本程序中,PC104采用查询方式接收数据,单片机采用中断方式接收数据。

#define pcreadwrite 0x220 ;PC104读写数据口地址

#define pcrdstate 0x221 ;PC104查询状态口地址

PC104写数据函数:

Void pcwrite(int port,unsigned char ch)

{ outportb(pcreadwrite,ch);

while ((inportb(pcrdstate)&0x02)!=0x02)

;等待单片机读走数据

{ }

}

单片机读子程序:

MCUR:MOV DPTR,#400H

MOVX A,@DPTR

RETI

PC104读数据函数:

Unsigned char pcread(int port)

{ while ((inportb(pcrdstate)&0x0!=0x01)

;等待单片机写数据

{ }

return inportb(pcreadwirte);

}

单片机写子程序:

MCUWR:MOV DPTR,#8000H

MOVX @DPTR,A

;等待PC104读写数据

RET


用CPLD实现单片机与ISA总线接口的并行通信(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:江科附中2018届高三上学期第一次月考物理试卷(1)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: