stc89c52单片机怎么实现用两个串口控制两个模块?
我现在找到的程序都是一个串口来控制的,但是stc89c52单片机好像有两个串口吧?我手头有两个模块能否统一用单片机来控制?我第一次玩单片机,希望回答详细一点。...
我现在找到的程序都是一个串口来控制的,但是stc89c52单片机好像有两个串口吧?我手头有两个模块能否统一用单片机来控制?我第一次玩单片机,希望回答详细一点。
展开
4个回答
展开全部
追问
主要是编程问题。。我新手,买模块配套的是52的程序我自己改了一下,你说的那个S2的编程上和我现在用的89C52RC区别大么?
追答
区别肯定是有的,但不是太大,上STC公司的官网下载技术资料看一下,就知道怎么用了,这毕竟是两个串口,使用起来要方便很多了,主要是可以解决了你的问题。谁都有新手的时候,谁都是从新手练起来的,如果能够自己学习一些新的知道,得到煅炼才能进步吗,遇到问题要肯学习,不能总是因为新手就不学习新的知道了。
展开全部
串口真的只有一个,就是说能用SBUF的只有一个。但是你可以用普通IO口模拟串口时序来控制另外一个外围器件。
当然用一个SBUF也可以同时控制两个外围器件,也就是说在不人为模拟串口的情况下也可以控制两个外围串口器件。
具体的可以参考串口控制寄存器的第九位TB8/和RB8,这一位可以用于地址帧和数据帧的鉴定位。比如你要控制2个器件,可以先发送一个地址帧进行片选,选定你要控制的那一个器件,此时另一个器件就会处于等待状态(也即,它将不会响应接下来的所有数据帧,只有当新的地址帧到来,且判定成功以后,它才被重新激活接收数据帧,当然,此时另一个器件又会处于等待状态了)
当然用一个SBUF也可以同时控制两个外围器件,也就是说在不人为模拟串口的情况下也可以控制两个外围串口器件。
具体的可以参考串口控制寄存器的第九位TB8/和RB8,这一位可以用于地址帧和数据帧的鉴定位。比如你要控制2个器件,可以先发送一个地址帧进行片选,选定你要控制的那一个器件,此时另一个器件就会处于等待状态(也即,它将不会响应接下来的所有数据帧,只有当新的地址帧到来,且判定成功以后,它才被重新激活接收数据帧,当然,此时另一个器件又会处于等待状态了)
更多追问追答
追问
我新手。。有点懂你的意思了,不过你能不能帮我比较一下IO口模拟和片选哪个方法编程更方便一点?因为我是网上找的程序不太懂。。
追答
如果你的外围器件可以设定地址(或者自带地址),那么肯定是片选方便。如果没有地址,那就只能模拟了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以,如果大小允许的话。。。。两个串口在程序上的区别仅仅是用的寄存器不同,修改一下就可以。。。两个单独的程序有点麻烦,因为不是独占CPU,所以需要协调,两个程序的main函数要合并,如果写的不合理可能出问题。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-03-18
展开全部
89c52只有一个串口,11f系列有双串口详细可以去stc官网找资料
追问
恩我弄错了。。可是单片机已经到手了,现在的问题是我不知道怎么把两个串口的模块连接起来。。分开调试都没什么问题,程序是用别人改的,要是串口问题改动太大我改不了啊。。
追答
用io模拟串口协议
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询