单片机/MCUwilliam hill官网
直播中

biweix2y

11年用户 43经验值
擅长:嵌入式技术 EDA/IC设计
私信 关注
[问答]

新手求助~~用普通IO口实现串口通信

单片机用普通IO口实现串口通信
在理解单片机异步串口通信的基础上,不使用单片机的串口模块,用普通的IO口实现与PC机的串口通信的功能,要求实现的基本参数:波特率1200、数据位8位、无奇偶校验、停止位1位。
其他功能:有关参数能方便地修改。
可以用proteus仿真或现成的单片机开发板做。
有没有大神做过相关的设计?初学者搞不定这个设计要求!!!!!!!!
如果有做过的希望可以共享一下资料或者经验..........
懂得大神也可以说说具体的思路······


回帖(19)

biweix2y

2013-11-6 16:48:06
大神快来~~{:1:}{:1:}
举报

biweix2y

2013-11-6 16:56:32
这个问题比较难
举报

biweix2y

2013-11-6 18:52:05
怎么都没人呢{:18:}{:18:}
举报

biweix2y

2013-11-6 18:53:57
有没有有{:11:}{:11:}
举报

biweix2y

2013-11-6 19:10:40
来人a{:11:}{:11:}
举报

biweix2y

2013-11-7 22:03:15
在理解单片机异步串口通信的基础上,不使用单片机的串口模块,用普通的IO口实现与PC机的串口通信的功能,要求实现的基本参数:波特率1200、数据位8位、无奇偶校验、停止位1位。
其他功能:有关参数能方便地修改。
可以用Proteus仿真或现成的单片机开发板做。
有没有大神做过相关的设计?初学者搞不定这个设计要求!!!!!!!!
如果有做过的希望可以共享一下资料或者经验..........
懂得大神也可以说说具体的思路······
举报

olive2003

2013-11-7 22:28:50
首先,我也是初学者,别对咱太期待哈.
个人理解,串行口进行通讯主要是收发方便吧,设定完波特率后,只要数据发到***uf,就能自动发送出去;接受则将接收位置1,就能不停检测接收口;
如果只用普通IO口,那就通过设定定时器,时间一到触发中断就输出一位,知道发送完毕;
接收么,用另一个定时器不断检测,当有数据就读取(串行口接收在收到之前是以波特率好几倍不断扫描的);
以上大略思路,至于细致的就LZ自己思考哈.有什么不对的也欢迎其它大大指出.
举报

olive2003

2013-11-7 22:30:20
奇怪了,发帖还要审核的
举报

空临九渊

2013-11-7 22:57:10
发个回复好难啊!!!!!!!!!!!
举报

暮云凌轩。

2013-11-9 18:48:39
首先你要知道你的单片机的扫描P口频率是多少(要精准),如果快了就加延时,知道9600的波特率就可以算出每秒钟收发多少个位,要使单片机每秒钟接收多少位(当然每扫描一次肯定就可以接收一位),要通过计算的,而且这之中的计算要很精准,说难也难,说简单也简单,然后通过I/O口读取功能,读取数据,就可以做到和串口一样的效果,希望对你有所帮助。
举报

♥℡信☺仰⊙♥

2013-11-10 11:23:06
看看STC15F104E用普通IO口模拟串口的示例就行了。。虽然它的那个用状态机写的。。比较难懂。。但是效率高。。。
举报

东方

2013-11-14 15:06:38
这个就跟用一根普通I/O口实现两个单片机通讯一样,发射比较简单,你模拟串口时序就行了,接收的话你就用一个定时器不断的去采样I/O口的电平高低,打个比方:波特率1200,也就是一位833us,那么你就每83us采样一次,如果连续10次采样到高电平,代表1,连续10次采样到低电平代表0,用这个思路去做就行了,就是比较耗CPU。
1 举报

Giliable

2016-7-4 23:33:30
主支持楼主支持楼主主支持楼主支持楼主主支持楼主支持楼主
举报

liuxiu1991

2016-7-5 14:37:55
引用: Giliable 发表于 2016-7-4 23:33
主支持楼主支持楼主主支持楼主支持楼主主支持楼主支持楼主

更楼上一样我也是赚积分的
举报

liuxiu1991

2016-7-5 14:38:05
引用: Giliable 发表于 2016-7-4 23:33
主支持楼主支持楼主主支持楼主支持楼主主支持楼主支持楼主

更楼上一样我也是赚积分的
举报

JimiZhan

2016-7-5 15:39:35
请问你的问题解决了嘛?我也需要做同样的工作,能讲解一下吗?
举报

吴键

2016-9-18 12:26:45
引用: 1106750213@ 发表于 2016-7-5 15:39
请问你的问题解决了嘛?我也需要做同样的工作,能讲解一下吗?

我使用STC89C52(好老的MCU,时钟频率11059200Hz),实现了这个功能(我是用来做Debug口,硬件串口模块做通信占用了),IO口随便定,波特率目前最高支持19200,准备继续优化到115200,
举报

七月

2017-5-26 23:02:35
端口加232 了解下芯片
举报

584421002

2019-3-28 11:22:20
可以的,51单片机都挺好的
举报

更多回帖

发帖
×
20
完善资料,
赚取积分