大家好,我是考100分的小小码 ,祝大家学习进步,加薪顺利呀。今天说一说C51 单片机 16 UART通讯「建议收藏」,希望您对编程的造诣更进一步.
我们单片机的IO口有 4*8=32个,我们如果需要做的功能比较多怎么做呢,可以用2个单片机,其中一个做主机,用来给从机发送指令,另外一个做从机,接受指令,并把收到的指令返回给主机,说我收到了这个命令。
用之前需要先配置一下波特率,波特率就是速度必须一样,就像接力赛,我给你传木棍,需要传一段时间,我跑的比你快,或者比你慢,那你都接不到。
UART通讯要求 平时是高电平,当需要通讯的时候,先说好速度(配置好波特率),然后拉低一个波特率的时间,叫做起始位,然后从低到高字节一个一个的发送,发送完8个字节,最后发送一个高电平,停止位。这时就会触发串行口中断。
必须用定时器1的模式2,自动重装模式,做波特率发生器,计算公式是256-( 11059200 / 12 / 32/ 波特率 )
11059200是晶振值, 12是单片机12分频 波特率我们一般都选用9600,因为电脑上有模拟串行口通讯,也有这个速率。 这个32其实是 /2/16 后面这个16是每个位,单片机都采集16次,然后看这16次的中间几位 ,少数服从多数。那个2,如果需要波特率加倍可以让PCON的最高位为1,就不用除以2了。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/12004.html