×
搜索
每日签到
|
APP下载
|
登录
首页
研发技术
技术分类
嵌入式
模拟电子
电磁兼容
单片机
电池
电源
RF射频
传感器
显示-光电
FPGA/DSP
接口总线驱动
全部
前沿技术
高通5G手机芯片性能测评
高频小信号谐振放大电路时域与频域对比分析
高薪IC设计工程师是如何炼成的?
龙芯发布四款芯片:加速产业布局 中国芯大有可为
为什么我们要用隔离式放大器
热门技术文章
液晶显示器控制设计_含源程序代码
飞思卡尔数字压力传感器实现硬盘驱动存储容量增加
骁龙710为全新层级的智能手机提供用户所需的的顶级特性
解读西部电子设计行业四大亮点
节点转换成本升级,摩尔定律将在2014年被打破?
适用于WLAN IEEE80211a标准的双模前置分频器设计
行业应用
行业应用
医疗电子
物联网
智能电网
汽车电子
工业控制
AI
家电数码
热门应用
物联网网关是智能家居发展的重要支撑
齐聚澳门 ViewSonic优派助阵MDL Macau Dota 2 国际精英邀请赛
龙芯、飞腾、申威进入国企采购目录 但不应过度解读
绝缘电阻极化指数测量方法
阿特斯阳光电力加入 Intertek ‘卫星计划’
最新应用文章
区块链本体跨链技术设计方案解析
机器人技术电路设计图集锦
智能手环怎么用_智能手环使用教程
以IoT联接智能家居和楼宇
工业机器人控制系统由什么组成
绝缘电阻测试仪及兆欧表的组成和选用标准
电子论坛
社区导航
更多>
硬件设计讨论
电磁兼容&安规论坛
射频RF|微波技术
电源技术论坛
信号完整性SI/PI仿真
芯片SIP|封装设计
单片机|MCU论坛
ARM|DSP嵌入式论坛
物联网技术
FPGA|CPLD论坛
MATLAB论坛
器件选型&认证
Cadence Allegro论坛
Allegro Skill开发
Orcad|Concept论坛
Mentor Xpedition论坛
PADS PCB论坛
Altium Protel论坛
PCB封装库论坛
EDA365作品展
PCB生产工艺论坛
电子装联PCBA工艺&设备论坛
IPD流程管理
失效分析&可靠性
元器件国产化论坛
EDA365线下活动区
职业生涯
EDA365原创吧
电巢学堂
电巢直播
研发资源
电子百科
器件手册
设计外包
EDA365 Skill
EDA365 Tools
Xilinx开发者社区
单片机
>
单片机程序设计
>
详情
967884
AT89C51双机通信C程序
发布时间:
2020-06-20
发布时间:
|
标签:
AT89C51
C程序
双机通信
/***********************************************
文件名:8051串口发送
描 述:串口发送函数 void Uart_sent(char uart_ch)
握手协议,主机发送AA,收到BB
时 间:2011年3月1日
【 】:罗志勇
************************************************/
#include
void uart_init(void) // X = 256 - f*2(SMOD+1)/384*BAUD
{
SCON = 0x50; //REN=1允许串行接受状态,串口工作模式1
TMOD|= 0x20; //定时器工作方式2
PCON|= 0x80;
//TH1 = 0xFD; //baud*2 /* reload value 19200、数据位8、停止位1。效验位无 (11.0592)
TH1 = 0xF3; // //baud*2 /* 波特率4800、数据位8、停止位1。效验位无 (12M)
TL1 = 0xF3;
TR1 = 1;
}
void Uart_Send( char uart_chm) //发送字符
{
TI=0;
SBUF = uart_chm;
while(TI == 0); // 等特数据传送 (TI发送中断标志)
TI=0; // 清除数据传送标志
}
void Uart_sent(char uart_ch)
{
/*握手程序(主机发送AA,从机回答BB)*/
do{
SBUF = 0xAA; //发送联络信号
while(TI == 0);
TI = 0; //清除发送标志
while(RI == 0); //等待回答
RI = 0; //清除接收标志
} while((SBUF^0xBB) != 0); //有误,继续联络
Uart_Send(uart_ch); //发送字符函数
}
void main(void)
{
uart_init(); //初始化串口
while(1)
{
Uart_sent(P1);
}
}
/***********************************************
文件名:8051串口接收(中断)
描 述:使用串口中断接收数据
握手协议,从机收到AA,发送BB
时 间:2011年3月1日
【 】:罗志勇
************************************************/
#include
char uart_chm;
void uart_init_r(void) // X = 256 - f*2(SMOD+1)/384*BAUD
{
SCON = 0x50; //REN=1允许串行接受状态,串口工作模式1
TMOD|= 0x20; //定时器工作方式2
PCON|= 0x80;
//TH1 = 0xFD; //baud*2 /* reload value 19200、数据位8、停止位1。效验位无 (11.0592)
TH1 = 0xF3; // //baud*2 /* 波特率4800、数据位8、停止位1。效验位无 (12M)
TL1 = 0xF3;
TR1 = 1;
ES = 1; //开串口中断
EA = 1; // 开总中断
}
void Uart_receive( void)
{
while(RI == 0); // 接收数据
RI = 0; //清除RI接受中断标志
P1 = SBUF; //读出数据
}
void main(void)
{
uart_init_r();
while(1)
{
}
}
void int_Uart_resive(void) interrupt 4
{
/*握手程序(主机发来AA,从机回答BB) */
do{
while(RI == 0); //等待回答
RI = 0; //清除接收标志
} while((SBUF^0xAA) != 0); //判断是否可正常接收
SBUF = 0xBB; //发送联络信号
while(TI == 0);
TI = 0;
Uart_receive(); //接收函数
}
关键字:
AT89C51 双机通信 C程序
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』
分享至
发布时间:
2020-06-20
发布时间:
上一篇:AT89C51的串口和电脑的串口进行通信
下一篇:AT89C51单片机扩展高速串行同步移位输出口的方法
相关推荐
热门文章
更多
AVR熔丝位操作时的要点和需要注意的相关事项
AVR编程_如何通过软件复位AVR…
Question如何通过软件复位AVR?Answer如果你想通过软件复位AVR.你应该使用内部看门狗.简单的使能它和让它溢出.当看门狗触发后.程序计数器返回到0.清除所有的寄存器和其他正在执行的任务.这与将RESET脚拉低有同…
51单片机串口C程序…
#includeunsigned char tmp;//初始化串行口void csh() { SM0=0; SM1=1; REN=1; TI=0; RI=0;//以上是初始化scon寄存器.想当于SCON=0x50; PCON=0;//初始化电源.为波特率不增加 TH1=0xF3; TL1=0XF3;//设置波特率为240…
关于STM32的ISP指令…
关于STM32的ISP指令---读写数据缓存在测试擦除命令的时候发现.写入和读出的数据是有缓存的.目前测试的结果为:写入数据有四个字的缓存.读取数据有15个字的缓存.例如:最后写入的4个字数据.在擦除flash之后.重…
ARM学习笔记020之_asm_.CPSR.SPSR.位置无关码等问题…
1._asm_:warning: implicit declaration of function '_asm_'如果asm两边都是两个下划线就没有错误了:__asm__2. makefile中-O -S必须大写3.lds文件中:SECTIONS必须大写4.ARM920T 包含了一个当前程序状态寄存…
单片机应用AVR 18B20程序编写…
#include//包含型号头文件#include//包含[位"操作头文件#include//标准输入输出头文件#include//包含自定义常量头文件#include[SMG.C"//包含数码管显示函数/*****************************************#include//包…
单片机60秒倒计时…
#include#define uint unsigned int#define uchar unsigned charuchar code table[]={0xc0,0xf9,0xa4, 0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};sbit gew=P2^1;sbit shiw=P2^0;sbit k2=P1^0;uchar num,num1=60,num2,shi…
如何利用16位PIC18F458单片机实现LCD显示?…
本文介绍一种新型的电网质量检测系统中显示测量结果的液晶显示系统.它主要由PIC18F458和液晶显示模块MGLS12864组成.PIC18F458单片机是美国微芯公司推出的16位RISC指令集的高级产品.与LCD接口方便.液晶显示器MGLS…