资源简介
两个单片机之间实现串口通信,包括仿真和程序,使用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读取图像的程序
相关资源
- 51单片机程序.zip
- 基于51单片机的闹钟设计
- 51单片机数码管显示时钟
- N76E003单片机串口BUG修改
- 51单片机T2定时器控制舵机程序源码(
- 两超声波模块测量角度
- C51智能时钟以及Proteus电路图
- 基于单片机的温湿度1602显示
- HC6800-ESV2.0
- 51单片机闹钟
- 51单片机 心形花样流水灯程序
- 四位数码管时钟程序
- 数控直流电压源
- BC28+51单片机的原理图
- 12864频谱显示程序
- 51单片机控制电机的转速转向以及启停
- 郭天祥10天学会PIC单片机.
- dxp单片机元件库
- 基于单片机和ds18b20温度传感器的温度
- 基于PID算法的电加热炉温度控制仿真
- STM32F1灭火小车程序-灭火机器人
- STC89C52RC 智能家居设计(GSM+人体红外
- 单片机实现裁判三人表决器的设计程
- 51单片机双机通信
- 单片机课程设计电子时钟
- 基于单片机的功率因数检测电路设计
- 51开发板密码锁
- 单片机控制舵机程序
- 基于单片机的洗衣机控制系统设计
- 关于单片机的超声波测速系统的设计
评论
共有 条评论