微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 51系列单片机双CPU系统通信方法

51系列单片机双CPU系统通信方法

时间:04-10 来源:互联网 点击:

个工作呢?因为乙机把地址线置为003FH后,进入ID状态,地址线会保持这种状态,甲机就可以控制乙机的低六位地址线;同时乙机的高十位地址线保持为0,这样就确保了甲机的数据映射到乙机的0000H~003FH的地址空间。乙机向数据线上写FFH,是保证把P0口都置?quot;1,进入ID工作方式后,P0口(即数据线)也会保持这种状态,以保证甲机端数据顺利写入。然后,乙机P1.6脚输出高电平,置数据传送方向为甲机到乙机。最后,乙机在P1.7脚发一个下降沿脉冲,以中断通知甲机可以送数据,同时保持低电平,打开74ALS373,再执行

 ORL PCON.0,#00000001B

进入ID状态。甲机的INT0中断服务程序把数据从8000H~803FH送过来。送完后,通过甲机P1.0再给乙单片机的INT0端发一个下降沿脉冲唤醒乙机,乙机INT0中断服务程序判断数据已经传送完,进行接收数据处理。

同理,乙机要送数据到甲机时,先把数据写到0000H~003FH,最后是向003FH写FFH,以完成正确置位地址线和数据线。还要把P1.6脚置为低电平,控制数据从乙机传向甲机。再在乙机P1.7发下降沿脉冲触发甲机INT0中断,同时P1.7保持低电平,打开三态门,然后进入ID状态。甲机INT0中断服务程序判断乙机要送数据过来,并且已经做好准备,就把数据从8000H~803FH取过来(当然,803FH中数据无效)。取完后,甲机再通过P1.0给乙单片机的INT0端发一个1下降沿脉冲唤醒乙机,让乙机继续运行程序。

乙机的INT0中断服务程序要处理几个不同事务,有几个分支。如果是乙机向甲机传数据,乙机INT0不用做实质工作,退出中断继续运行主程序即可;如果是甲机向乙机传数据,在传数据之前,乙机INT0要为传数据做好准备,并置乙机为ID状态。传数据之后,乙机INT0处理数据。这里要设置数据传送方向和数据传送状态两个标志,用以引导程序正确运行。甲机的INT0根据传数据方向标志传数据或读数据即可。这里不再写具体程序。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top