资源简介
基于两个at89c52之间的并行通讯,附电路图
代码片段和文件信息
//////////////////////////////////////////////////////////////////////////////////////////
//自定义通讯协议设置四个标记引脚分别为u1_outu1_in_over;u2_outu2_in_over表示通讯线路空闲
//u1_out为单片机1发送数据标记u1_in_over表示接收数据完毕由单片机1控制
//u2_out为单片机2发送数据标记u2_in_over表示接收数据完毕由单片机2控制
//最后为了以防传输时:当通讯线空闲时两个单片同时发送数据而造成的死机设置一个引脚为时间片
// time_patch.由单片机1控制time_patch = 0为单片机1发送时间片1为单片机2发送时间片
/////////////////////////////////////////////////////////////////////////////////////////
/*-------------单片机1---------------------*/
#include
#define uchar unsigned char
#define data_line P1
#define data_try P2
sbit u1_out = P3^0;
sbit u1_in_over = P3^3;
sbit u2_in_over =P3^4;
sbit time_patch = P3^5;
uchar temp;
void nop(void){}
void delayMs (uchar ms)
{
uchar i;
while (--ms)
{
for (i = 0; i < 125; i++);
}
}
void get_data(void) interrupt 0
{
EX0 = 0;
data_line = 0xff; //初始化引脚
nop();
temp = data_line;
u1_in_over = 1;//接收完毕
nop();
u1_in_over = 0;
data_try = temp;
EX0 = 1;
}
void tp(void) interrupt 1
{
time_patch =~time_patch;
TH0 = 0xfe;TL0= 0x0c;
}
void send_data(uchar ch)
{
while(u1_out);//等待总线空闲
while(time_patch);//等待时间片的到来
u1_out = 1;
data_line = 0xff;
nop();
data_line = ch;
while(u2_in_over);//等待U2接收完毕
u1_out = 0;
}
void main(void)
{
uchar ii;
ET0 = 1;EX0 = 1;EA=1;
IT0 = 1;
TMOD = 0x01;
TH0 = 0xfe;TL0= 0x0c;
TR0 = 1;
u1_out = 0; u1_in_over = 0;
for(ii = 0;ii<255;ii++)
{send_data(ii);
delayMs(50);
}
send_data(ii);
while(1);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
....... 6376 2009-08-30 18:27 单片机通讯(并行-半双工)\单片机1\STARTUP.A51
文件 3966 2009-08-30 20:42 单片机通讯(并行-半双工)\单片机1\U1
文件 1745 2009-08-30 20:45 单片机通讯(并行-半双工)\单片机1\U1.c
文件 486 2009-08-30 20:42 单片机通讯(并行-半双工)\单片机1\U1.hex
文件 36 2009-08-30 20:42 单片机通讯(并行-半双工)\单片机1\U1.lnp
文件 3832 2009-08-30 20:42 单片机通讯(并行-半双工)\单片机1\U1.LST
文件 6021 2009-08-30 20:42 单片机通讯(并行-半双工)\单片机1\U1.M51
文件 4402 2009-08-30 20:42 单片机通讯(并行-半双工)\单片机1\U1.OBJ
文件 1008 2009-08-30 20:45 单片机通讯(并行-半双工)\单片机1\U1.Opt
文件 6436 2009-08-30 20:47 单片机通讯(并行-半双工)\单片机1\U1.plg
文件 2095 2009-08-30 20:45 单片机通讯(并行-半双工)\单片机1\U1.Uv2
....... 1008 2009-08-30 20:41 单片机通讯(并行-半双工)\单片机1\U1_Opt.Bak
....... 2095 2009-08-30 20:40 单片机通讯(并行-半双工)\单片机1\U1_Uv2.Bak
....... 6376 2009-08-30 18:27 单片机通讯(并行-半双工)\单片机2\STARTUP.A51
文件 3361 2009-08-30 20:42 单片机通讯(并行-半双工)\单片机2\U2
文件 1589 2009-08-30 20:42 单片机通讯(并行-半双工)\单片机2\U2.c
文件 393 2009-08-30 20:42 单片机通讯(并行-半双工)\单片机2\U2.hex
文件 36 2009-08-30 20:42 单片机通讯(并行-半双工)\单片机2\U2.lnp
文件 3480 2009-08-30 20:42 单片机通讯(并行-半双工)\单片机2\U2.LST
文件 5282 2009-08-30 20:42 单片机通讯(并行-半双工)\单片机2\U2.M51
文件 3722 2009-08-30 20:42 单片机通讯(并行-半双工)\单片机2\U2.OBJ
文件 967 2009-08-30 20:42 单片机通讯(并行-半双工)\单片机2\U2.Opt
文件 4234 2009-08-30 20:47 单片机通讯(并行-半双工)\单片机2\U2.plg
....... 2095 2009-08-30 18:27 单片机通讯(并行-半双工)\单片机2\U2.Uv2
....... 966 2009-08-30 20:30 单片机通讯(并行-半双工)\单片机2\U2_Opt.Bak
....... 2095 2009-08-30 18:27 单片机通讯(并行-半双工)\单片机2\U2_Uv2.Bak
文件 66587 2009-08-30 19:43 单片机通讯(并行-半双工)\电路\Last Loaded U1&U2.DBK
文件 66587 2009-08-30 20:29 单片机通讯(并行-半双工)\电路\U1&U2.DSN
文件 1052 2009-08-30 20:47 单片机通讯(并行-半双工)\电路\U1&U2.PWI
目录 0 2009-08-30 20:45 单片机通讯(并行-半双工)\单片机1
............此处省略6个文件信息
- 上一篇:傅立叶描述子 提取边界特征
- 下一篇:清华大学校园地图高清3D版本
相关资源
- 三菱fx3u和台达变频器通讯程序
- MSComm通讯控件
- GSM模块测试软件,GPRS测试\\GSM模块收
- Rinex通讯协议3.02版本
- Delphi与仪表之间的MODBUS通讯
- 在WIN7 64位机Excel 2010安装MSCOMM控件的
- 桌面日历 可添加备忘录、通讯录,并
- 数控通讯软件PCIN4.2
- 数据结构课程设计全部系统合集超市
- V0.2 版机器人通用底盘协议
- STM32F103RCT6使用I2C通讯PCF8591数模转换模
- 天禾通讯协议
- 三菱FX系列PLC与计算机无协议通讯
- 微信小程序群应用,包括群通知、群
- 基于AT89S51利用MAX485半双工串行口通讯
- 无需OPC-西门子1200/1500与LABVIEW通讯
- KUKA机器人与PC机的通讯控制
- 51与触摸屏modbus通讯
- 基于通讯的多路开关量控制板的设计
- TI CC2541 蓝牙通讯原程序
- ESP8266实现PC与模块通讯
- ListView实现字母索引类似通讯录
- PC与三菱FX系列PLC串口通讯库和exampl
- 手机通讯呼叫链路建立过程图解
- 加油机通讯协议
- 目前和利时的 MACS V 系统与西门子的
- 基于Labview的串口通讯
- 基于51单片机RS485多机通讯
- STM32F103 NRF24L01无线通讯模块驱动例程
- 数据结构程序设计通讯录课程设计
评论
共有 条评论