完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
|
|
|
|
|
|
把电路图用图片贴出来吧,或者说明用的什么485芯片,485除了一些必要的控制外和串口是一样的,所有不发送数据的485终端都要把485芯片设置为接收状态
|
|
|
|
|
|
|
|
具体的实现功能是互相控制另一个板子。然后把另一个板子的灯显示到控制的板子上
|
|
|
|
232通讯会吧 485和它写程序上是一样的 就是多一个控制IO 控制收发 |
|
|
|
在无操作或接收数据时将P3.7置低,只有在发送数据期间将P3.7置高
|
|
|
|
本帖最后由 你好么199561 于 2017-4-28 17:20 编辑
我检查了一下。我觉得最有可能出错的是我中断写错了。可是我不知道怎么写。我本来是用中断接收的。但是我在接收的程序里有一个延时函数。所以我把中断只当做本机地址标志判断。但是有这个中断程序的时候。我P0口的初值都没有显示。就是本来一开始会亮灯的就是不亮了。所以我觉得是中断错了。可是我不知道怎么改中断 |
|
|
|
刚才那个发错了。这个才是
|
|
|
|
#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器
typedef unsigned int u16; //对数据类型进行声明定义 typedef unsigned char u8; ***it RS485DIR=P1^0; //RS485DIR=0为接收状态 RS485DIR=1为发送状态 /******************************************************************************* * 函 数 名 : delay * 函数功能 : 延时函数,i=1时,大约延时10us *******************************************************************************/ void delay(u16 i) { while(i--); } /******************************************************************************* * 函数名 :UsartInit() * 函数功能 :设置串口 * 输入 : 无 * 输出 : 无 *******************************************************************************/ void UsartInit() { SCON=0X50; //设置为工作方式1 TMOD=0X20; //设置计数器工作方式2 PCON=0X80; //波特率加倍 TH1=0XF3; //计数器初始值设置,注意波特率是4800的 TL1=0XF3; ES=1; //打开接收中断 EA=1; //打开总中断 TR1=1; //打开计数器 RS485DIR=0; } /******************************************************************************* * 函 数 名 : main * 函数功能 : 主函数 * 输 入 : 无 * 输 出 : 无 *******************************************************************************/ void main() { UsartInit(); // 串口初始化 while(1); } /******************************************************************************* * 函数名 : Usart() interrupt 4 * 函数功能 : 串口通信中断函数 * 输入 : 无 * 输出 : 无 *******************************************************************************/ void Usart() interrupt 4 { u8 receiveData; receiveData=SBUF;//出去接收到的数据 RI = 0;//清除接收中断标志位 delay(100); RS485DIR=1; SBUF=receiveData;//将接收到的数据放入到发送寄存器 while(!TI); //等待发送数据完成 TI=0; //清除发送完成标志位 RS485DIR=0; } |
|
|
|
你的脸有这么大 发表于 2017-4-28 20:05 你好,有没有两个单片机相互485通信, 且支持发收连续信号 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
377 浏览 0 评论
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】(第三篇)ADC采集+PWM输出
536 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十五章 人脸识别实验
540 浏览 0 评论
950 浏览 0 评论
如何用OpenCV的相机捕捉视频进行人脸检测--基于米尔NXP i.MX93开发板
1403 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11762 浏览 31 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 11:30 , Processed in 0.756930 second(s), Total 64, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号