stc89c52单片机怎么实现用两个串口控制两个模块?

我现在找到的程序都是一个串口来控制的,但是stc89c52单片机好像有两个串口吧?我手头有两个模块能否统一用单片机来控制?我第一次玩单片机,希望回答详细一点。... 我现在找到的程序都是一个串口来控制的,但是stc89c52单片机好像有两个串口吧?我手头有两个模块能否统一用单片机来控制?我第一次玩单片机,希望回答详细一点。 展开
 我来答
lycdl
高粉答主

2014-03-18 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2万
采纳率:94%
帮助的人:4915万
展开全部
stc89c52单片机的确就有一个串口,当然可以在外部加一个模拟开关来扩展两个串口,但是两个串口是分时工作的,就是不能同时收发。其实,选择STC12C5A60S2,就完全解决了这个问题吗,它就有两个独立串口,价格上不比stc89c52高多少,还有STC现在推出了最新的STC15系列的单片机,都是有两个独立串口的,价格更低了,还完全可以省掉外部复位电路和时钟电路的晶振,非常方便,为什么不选择这款昵?何苦还用stc89c52,还不能解决两个串口的问题,换个思路问题就全解决了。
追问
主要是编程问题。。我新手,买模块配套的是52的程序我自己改了一下,你说的那个S2的编程上和我现在用的89C52RC区别大么?
追答
区别肯定是有的,但不是太大,上STC公司的官网下载技术资料看一下,就知道怎么用了,这毕竟是两个串口,使用起来要方便很多了,主要是可以解决了你的问题。谁都有新手的时候,谁都是从新手练起来的,如果能够自己学习一些新的知道,得到煅炼才能进步吗,遇到问题要肯学习,不能总是因为新手就不学习新的知道了。
小号很好使
2014-03-18 · TA获得超过457个赞
知道小有建树答主
回答量:287
采纳率:0%
帮助的人:113万
展开全部
串口真的只有一个,就是说能用SBUF的只有一个。但是你可以用普通IO口模拟串口时序来控制另外一个外围器件。
当然用一个SBUF也可以同时控制两个外围器件,也就是说在不人为模拟串口的情况下也可以控制两个外围串口器件。
具体的可以参考串口控制寄存器的第九位TB8/和RB8,这一位可以用于地址帧和数据帧的鉴定位。比如你要控制2个器件,可以先发送一个地址帧进行片选,选定你要控制的那一个器件,此时另一个器件就会处于等待状态(也即,它将不会响应接下来的所有数据帧,只有当新的地址帧到来,且判定成功以后,它才被重新激活接收数据帧,当然,此时另一个器件又会处于等待状态了)
更多追问追答
追问
我新手。。有点懂你的意思了,不过你能不能帮我比较一下IO口模拟和片选哪个方法编程更方便一点?因为我是网上找的程序不太懂。。
追答
如果你的外围器件可以设定地址(或者自带地址),那么肯定是片选方便。如果没有地址,那就只能模拟了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
TLast_Ghost
2014-03-18 · TA获得超过1542个赞
知道小有建树答主
回答量:649
采纳率:20%
帮助的人:514万
展开全部
可以,如果大小允许的话。。。。两个串口在程序上的区别仅仅是用的寄存器不同,修改一下就可以。。。两个单独的程序有点麻烦,因为不是独占CPU,所以需要协调,两个程序的main函数要合并,如果写的不合理可能出问题。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-03-18
展开全部
89c52只有一个串口,11f系列有双串口详细可以去stc官网找资料
追问
恩我弄错了。。可是单片机已经到手了,现在的问题是我不知道怎么把两个串口的模块连接起来。。分开调试都没什么问题,程序是用别人改的,要是串口问题改动太大我改不了啊。。
追答
用io模拟串口协议
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式