资源简介
基于MAX485两个单片机半双工通信,内部附有C语言源代码,采用KEIL进行程序仿真,内部有PROTEUS硬件仿真图。
代码片段和文件信息
#include
#define uint unsigned int
#define uchar unsigned char
sbit P0_0=P0^0;
uchar idata table[17]={0xfe0xfd0xfb0xf70xef0xdf0xbf0x7f0xaa0xbd0xee0xdd0x990xfd0xff0xff};
uchar idata table2[10];
uchar numtemp;
uchar num1=0flag;
void delay(uint z)
{
uint xy;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
uchar keyscan();
void int0(void) interrupt 0
{ int m;
P1=0xff;
for(m=0;m<5;m++)
{ P1=table2[m];
delay(500);
}
}
void main()
{ uchar n=0;
uchar m;
uchar i=0;
flag=1;
TMOD=0x20;//设置定时器1为工作方式2
TH1=0xe8;
TL1=0xe8;
TR1=1;
EA=1; //总中断开启
EX0=1; //外部中断INT0开启
IT0=1;
REN=1;
SM0=0;
SM1=1;
while(flag) i=keyscan();
flag=1;
while(1)
{
if(num1==0)
{
RI=0;
P0_0=0;
while(!RI);
delay(500);
P1=SBUF;
m=SBUF;
table2[n]=m;
n++;
RI=0;
}
else if(num1==1)
{
while(flag) i=keyscan();
flag=1;
P0_0=1;
SBUF=table[i-1];
while (!TI);
P1=table[i-1];
TI=0;
}
}
}
uchar keyscan()
{
P2=0xfe;
temp=P2;
temp=temp&0xf0;
while(temp!=0xf0)
{
delay(5);
temp=P2;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P2;
switch(temp)
{
case 0xee:{num=1;flag=0;}
break;
case 0xde:{num=2; flag=0;}
break;
case 0xbe:{num=3; flag=0;}
break;
case 0x7e:{num=4; flag=0;}
break;
}
while(temp!=0xf0)
{
temp=P2;
temp=temp&0xf0;
}
}
}
P2=0xfd;
temp=P2;
temp=temp&0xf0;
while(temp!=0xf0)
{
delay(5);
temp=P2;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P2;
switch(temp)
{
case 0xed:{num=5;flag=0;}
break;
case 0xdd:{num=6;flag=0;}
break;
case 0xbd:{num=7;flag=0;}
break;
case 0x7d:{num=8;flag=0;}
break;
}
while(temp!=0xf0)
{
temp=P2;
temp=temp&0xf0;
}
}
}
P2=0xfb;
temp=P2;
temp=temp&0xf0;
while(temp!=0xf0)
{
delay(5);
temp=P2;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P2;
switch(temp)
{
case 0xeb:{num=9; flag=0;}
break;
case 0xdb:{num=10; flag=0;}
break;
case 0xbb:{num=11;flag=0;}
break;
case 0x7b:{num=12; flag=0;}
break;
}
while(temp!=0xf0)
{
temp=P2;
temp=temp&0xf0;
}
}
}
P2=0xf7;
temp=P2;
temp=temp&0xf0;
while(temp!=0xf0)
{
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 122161 2010-07-15 01:39 MAX485\123.DSN
文件 5115 2002-04-16 15:32 MAX485\STARTUP.A51
文件 11768 2010-07-13 17:49 MAX485\STARTUP.lst
文件 854 2010-07-13 17:49 MAX485\STARTUP.obj
文件 8256 2010-07-13 17:49 MAX485\test1
文件 3519 2010-07-13 19:57 MAX485\test1.c
文件 2236 2010-07-13 17:49 MAX485\test1.hex
文件 12648 2010-07-13 17:49 MAX485\test1.LST
文件 13025 2010-07-13 17:49 MAX485\test1.M51
文件 8712 2010-07-13 17:49 MAX485\test1.OBJ
文件 1081 2010-07-15 01:39 MAX485\test1.Opt
文件 164 2010-07-15 10:59 MAX485\test1.plg
文件 2058 2010-07-12 23:33 MAX485\test1.Uv2
文件 1081 2010-07-13 19:28 MAX485\test1_Opt.Bak
文件 0 2010-07-12 21:07 MAX485\test1_Uv2.Bak
目录 0 2010-07-15 11:11 MAX485
----------- --------- ---------- ----- ----
192678 16
相关资源
- c51单片机24C01-24C16读写程序含PROTEUS仿
- 一个基于DSP的软件无线电的c语言设计
- C语言龙贝格求积算法
- pic18系列单片机C语言程序例程
- c语言宿舍管理查询软件源代码数据结
- C语言实现 多线程文件传输
- 人工智能之动物识别C语言
- 串口接受和发送数据--C语言代码,非
- C语言课程设计记事本
- 操作系统C语言实现银行家算法,键盘
- 《数据结构》C语言版 实验报告 基础
- 飞行弹道计算C语言
- 多目标粒子群算法C代码
- c语言实现 通过rs232可实现上位机和下
- 火车票管理系统C语言数据结构
- 纯C语言写的https模拟GET和POST
- C语言CRC32校验
- C语言名题精选百则源代码
- GoBackN协议的C语言实现
- 算术编码纯C语言实现
- C语言windowlinux平台的SNTP实现
- the C programming language ( kindle 版)
- 前向纠错的多个算法C语言
- SM3算法C语言实现
-
单项锁相环 MATLAB Simuli
nk仿真 C语言 - LDPC源代码c语言matlab.rar
-
自抗扰控制器C语言实现Simuli
nk转化 - 基于8051单片机的数字电压表设计
- AES5种加密模式源码C语言
- 图的深度优先遍历与广度优先遍历(
评论
共有 条评论