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

2019-07-15 21:49发布

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

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
olive2003
1楼-- · 2019-07-17 05:10
首先,我也是初学者,别对咱太期待哈.
个人理解,串行口进行通讯主要是收发方便吧,设定完波特率后,只要数据发到sbuf,就能自动发送出去;接受则将接收位置1,就能不停检测接收口;
如果只用普通IO口,那就通过设定定时器,时间一到触发中断就输出一位,知道发送完毕;
接收么,用另一个定时器不断检测,当有数据就读取(串行口接收在收到之前是以波特率好几倍不断扫描的);
以上大略思路,至于细致的就LZ自己思考哈.有什么不对的也欢迎其它大大指出.
olive2003
2楼-- · 2019-07-17 09:02
奇怪了,发帖还要审核的
空临九渊
3楼-- · 2019-07-17 14:20
发个回复好难啊!!!!!!!!!!!
暮云凌轩。
4楼-- · 2019-07-17 15:52
首先你要知道你的单片机的扫描P口频率是多少(要精准),如果快了就加延时,知道9600的波特率就可以算出每秒钟收发多少个位,要使单片机每秒钟接收多少位(当然每扫描一次肯定就可以接收一位),要通过计算的,而且这之中的计算要很精准,说难也难,说简单也简单,然后通过I/O口读取功能,读取数据,就可以做到和串口一样的效果,希望对你有所帮助。
♥℡信☺仰⊙♥
5楼-- · 2019-07-17 18:09
 精彩回答 2  元偷偷看……
cdf777
6楼-- · 2019-07-17 18:11
这个就跟用一根普通I/O口实现两个单片机通讯一样,发射比较简单,你模拟串口时序就行了,接收的话你就用一个定时器不断的去采样I/O口的电平高低,打个比方:波特率1200,也就是一位833us,那么你就每83us采样一次,如果连续10次采样到高电平,代表1,连续10次采样到低电平代表0,用这个思路去做就行了,就是比较耗CPU。

一周热门 更多>