资源简介
基于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
相关资源
- 操作系统c语言模拟文件管理系统844
- C语言开发实战宝典
- C++中头文件与源文件的作用详解
- C语言代码高亮html输出工具
- 猜数字游戏 c语言代码
- C语言课程设计
- 数字电位器C语言程序
- CCS FFT c语言算法
- 使用C语言编写的病房管理系统
- 通信过程中的RS编译码程序(c语言)
- 计算机二级C语言上机填空,改错,编
- 用回溯法解决八皇后问题C语言实现
- 简易教务管理系统c语言开发文档
- 操作系统课设 读写者问题 c语言实现
- 小波变换算法 c语言版
- C流程图生成器,用C语言代码 生成C语
- 3des加密算法C语言实现
- 简单的C语言点对点聊天程序
- 单片机c语言源程序(51定时器 八个按
- 个人日常财务管理系统(C语言)
- c语言电子商务系统
- 小甲鱼C语言课件 源代码
- 将图片转换为C语言数组的程序
- C语言实现的一个内存泄漏检测程序
- DES加密算法C语言实现
- LINUX下命令行界面的C语言细胞游戏
- 用单片机控制蜂鸣器播放旋律程序(
- 学校超市选址问题(数据结构C语言版
- 电子时钟 有C语言程序,PROTEUS仿真图
- 尚观培训linux许巍老师关于c语言的课
评论
共有 条评论