51单片机主从串行通信
1个主机,6个从机分别称从机1,2,3,4,5,6主机6个从机,我想通过主机单片机一问一答(通过地址匹配)的获取6个从机里面关键的两个字节比如定义的CONGJITH1,C...
1个主机,6个从机分别称从机1,2,3,4,5,6 主机6个从机,我想通过主机单片机一问一答(通过地址匹配)的获取6个从机里面关键的两个字节比如定义的CONGJITH1,CONGJITL1两个8位数据,然后存放在主机的定义好的变量单元比如ZHUJITH1,ZHUJITL1,总共6个从机就依次一问一答获得,然后保存在12个字节里。跪请高手提供主从机源程序,定加分,如果好用,还有其他方式奖励!
比如从机1里有两个关键数据0x05 0x56 我主机要获取,电路我采用485总线结构,希望能编写好主从机程序,主机演示获取一个从机的两位关键数据 展开
比如从机1里有两个关键数据0x05 0x56 我主机要获取,电路我采用485总线结构,希望能编写好主从机程序,主机演示获取一个从机的两位关键数据 展开
展开全部
485可以直接通过转换芯片接在串口上,然后用串口实现多机通信。51单片机在通信时,串口要设置成9位通信。多机通信主要靠SCON中的SM2位来控制。当SM2=1时,从机只有在接收到的第9位数据为1时,才把RI置位。当SM2=0时,不管接收到的第9位数据为1还是为0都会置位RI。通信过程:主机发送一个字节的地址数据,注意在发送数据时,要把发送的第9位数据置1。从机全部接收到这个地址数据,由于通信初各从机SM2位为1,所以每个从机都能得到这个地址数据,从机接受到这个地址数据后与自己分配到的地址进行比较,如果相同,那么就把自己的SM2位置0,准备接受数据。然后主机发送数据,在发数据时,第9位数据要为0,这样才能让唯一的从机(SM2置0的)接收到这些数据。两者通信完后,从机要把SM2位重新置1。你可以根据这个试着写下,应该不难的。
意法半导体(中国)投资有限公司
2023-06-12 广告
2023-06-12 广告
单片机原理及其应用是一门研究将计算机和数字电子技术应用于具体实践中的学科,主要包括单片机的结构、工作原理、指令系统、汇编语言程序设计、C语言程序设计、嵌入式系统及其开发环境、抗干扰技术、数模与模数转换技术、单片机应用系统的开发等内容。单片机...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
展开全部
我没写过485的,我写过多个单片机之间主从通信的,用485和232不就是为了提高传输距离吧,其实就是用串口主从机通信吧,如果要的话我有
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你要是不着急,就留个邮箱,我周一到单位写一个发给你。
很久不写了,有些东西记不清,单位的电脑上还有以前写好的程序,改一改就行了。
另外,你说的0x05 0x56是哪个空间的?
程序整体结构如下,从机也类似。
定义数据结构;
main()
{
初始化;
循环读从机;
}
interrupt x vector x()
{
中断服务程序;
}
串口用485还是232,对程序没有影响。
很久不写了,有些东西记不清,单位的电脑上还有以前写好的程序,改一改就行了。
另外,你说的0x05 0x56是哪个空间的?
程序整体结构如下,从机也类似。
定义数据结构;
main()
{
初始化;
循环读从机;
}
interrupt x vector x()
{
中断服务程序;
}
串口用485还是232,对程序没有影响。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询