资源简介
两个单片机之间实现串口通信,包括仿真和程序,使用protues进行仿真

代码片段和文件信息
#include
#define uchar unsigned char
#define uint unsigned int
uchar i=1ACK=1;
void delay(uint i) //延时函数
{
uchar j;
while(i--)
for(j=110;j>0;j--);
}
uchar kbscan() //键盘扫描函数
{
uchar sccoderecode; //定义行、列
P1=0xf0; //高四位作为输入先写1
if((P1&0xf0)!=0xf0) //判断是否按键按下
{
delay(10); //延时消抖
if((P1&0xf0)!=0xf0) //再次判断判断有没有按键按下
{
sccode=0xfe;
while((sccode&0x10)!=0)
{
P1=sccode;
if((P1&0xf0)!=0xf0) //判断当前行是否有按键按下
{
recode=P1&0xf0; //保留高四位输入值
sccode=sccode&0x0f; //保留第低四位的值
return(recode+sccode);
}
else
sccode=(sccode<<1)|0x01;
}
}
}
return 0;
}
send()interrupt 4 //串行口通信中断
{
if(TI==1&&ACK==1)
{
TI=0;
if(i==0|i==0x22|i==0x44|i==0x66|i==0x88|i==0xaa|i==0xcc|i==0xdd|i==0xee) //有按键按下,需要修改波特率
{
ACK=0;
SBUF=i; //修改波特率
}
else if(i==11) //循环发送,发了十一个字符后重新发
{
i=1;
SBUF=1;
}
else
{
i++;
SBUF=i; //正常发送数据
}
}
else if(RI==1) //接收回应的信号
{
RI=0;
ACK=SBUF; //接收回应信号 修改初值 触发串口通信中断
TI=1;
TH1=TL1=i;
i=1;
}
}
void main()
{
TMOD=0x20; //定时器1 工作方式2
TH1=0x00;
TL1=0x00; //置初值
TR1=1;
EA=1;
ES=1; //使T1开始工作;开总中断、串行中断
SCON=0x50; //计数器1 工作方式1
SBUF=i;
while(1)
{
while(kbscan())
{
switch(kbscan()) //不同的按键对应不同的波特率
{
case 0xeb:i=0x00;break; // 1
case 0xdb:i=0x22;break; // 2
case 0xbb:i=0x44;break; // 3
case 0xed:i=0x66;break; // 4
case 0xdd:i=0x88;break; // 5
case 0xbd:i=0xaa;break; // 6
case 0xee:i=0xcc;break; // 7
case 0xde:i=0xdd;break; // 8
case 0xbe:i=0xee;break; // 9
}
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-07-13 15:01 两个单片机之间实现串口通信\
文件 29022 2018-06-10 15:57 两个单片机之间实现串口通信\Last Loaded 串口通信.pdsbak
文件 6376 2009-05-07 14:37 两个单片机之间实现串口通信\STARTUP.A51
文件 14054 2018-06-18 08:35 两个单片机之间实现串口通信\STARTUP.LST
文件 758 2018-06-18 08:35 两个单片机之间实现串口通信\STARTUP.OBJ
文件 29037 2018-06-10 16:11 两个单片机之间实现串口通信\串口通信.pdsprj
文件 3057 2018-07-13 14:56 两个单片机之间实现串口通信\串口通信.pdsprj.PC-20170324ZJLV.Administrator.workspace
文件 4847 2018-06-18 08:35 两个单片机之间实现串口通信\串口通信(主机)
文件 1763 2018-06-18 08:35 两个单片机之间实现串口通信\串口通信(主机).hex
文件 68 2018-06-18 08:35 两个单片机之间实现串口通信\串口通信(主机).lnp
文件 8464 2018-06-18 08:35 两个单片机之间实现串口通信\串口通信(主机).M51
文件 201 2018-07-13 15:01 两个单片机之间实现串口通信\串口通信(主机).plg
文件 55641 2018-07-13 15:01 两个单片机之间实现串口通信\串口通信(主机).uvopt
文件 13422 2016-10-08 15:39 两个单片机之间实现串口通信\串口通信(主机).uvproj
文件 55641 2018-07-12 16:39 两个单片机之间实现串口通信\串口通信(主机)_uvopt.bak
文件 0 2016-10-08 12:43 两个单片机之间实现串口通信\串口通信(主机)_uvproj.bak
文件 6176 2016-10-09 09:47 两个单片机之间实现串口通信\串口通信(从机)
文件 1166 2016-10-09 09:47 两个单片机之间实现串口通信\串口通信(从机).hex
文件 68 2016-10-09 09:47 两个单片机之间实现串口通信\串口通信(从机).lnp
文件 9208 2016-10-09 09:47 两个单片机之间实现串口通信\串口通信(从机).M51
文件 201 2018-07-13 14:57 两个单片机之间实现串口通信\串口通信(从机).plg
文件 55639 2018-07-13 15:01 两个单片机之间实现串口通信\串口通信(从机).uvopt
文件 13422 2016-10-08 15:40 两个单片机之间实现串口通信\串口通信(从机).uvproj
文件 55637 2018-07-12 16:39 两个单片机之间实现串口通信\串口通信(从机)_uvopt.bak
文件 0 2016-10-08 13:14 两个单片机之间实现串口通信\串口通信(从机)_uvproj.bak
文件 2056 2018-07-12 16:39 两个单片机之间实现串口通信\主机.c
文件 4827 2018-06-18 08:35 两个单片机之间实现串口通信\主机.LST
文件 4725 2018-06-18 08:35 两个单片机之间实现串口通信\主机.OBJ
文件 1905 2018-07-12 16:39 两个单片机之间实现串口通信\从机.c
文件 4810 2016-10-09 09:47 两个单片机之间实现串口通信\从机.LST
文件 6250 2016-10-09 09:47 两个单片机之间实现串口通信\从机.OBJ
............此处省略0个文件信息
- 上一篇:MAX31855库
- 下一篇:大恒工业相机水星2.0利用SDK读取图像的程序
相关资源
- 易语言OTG串口通信
- STC8951系列单片机中方指南
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- 飞思卡尔单片机MC9S12XS12G128驱动(硬件
- 51单片机PWM程序,占空比、周期可调整
- DELPHI与西门子200PLC的串口通信实例
- 单片机和adc0809数字电压表
- PIC单片机完成的电子密码锁
- 单片机、ADC0808809设计简易数字电压表
- 51单片机多功能自行车测速仪
- 单片机做的6位时分秒数字钟
- 单片机电子时钟 闹钟 日历
- 音乐代码转换软件 单片机编程时用
- 单片机课程设计 篮球计分器
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 单片机与温度传感器DS18B20的程序设计
- 51单片机基于protues的几个仿真实例
- 基于52单片机的直流电压测量
- 38k单片机红外发送代码、keil
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 51单片机控制舵机程序
- 武汉理工大学 单片机课程设计 16*16点
- 步进电机protues仿真
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- 浙江工业大学2005-2006学年单片机习题
评论
共有 条评论