答:在发送过程中当执行一条将數据写入发送缓冲器SBUF(99H)的指令时,串行口把SBUF中8位数据以fosc/l2的波特率从RXD(P3.0)端输出发送完毕置中断标志TI=1。写SBUF指令在S6P1处产生一个正脉冲在下一个机器周期的S6P2处,数据的最低位输出到RXD(P3.0)脚上;再在下一个机器周期的S3、S4和S5输出移位时钟为低电平时在S6及下一个机器周期的Sl和S2为高电平,就这样將8位数据由低位至高位一位一位顺序通过RXD线输出并在TXD脚上输出fosc/12的移位时钟。在“写SBUF”有效后的第10个机器周期的SlPl将发送中断标志TI置位
接收时,用软件置REN=1(同时RI=0),即开始接收当使SCON中的REN=1(RI=0)时,产生一个正的脉冲在下一个机器周期的S3P1~S5P2,从TXD(P3.1)脚上输出低电平的移位时钟在此机器周期的S5P2对P3.0脚采样.并在本机器周期的S6P2通过串行口内的输入移位寄存器将采样值移位接收。在同一个机器周期的S6P1到下一个机器周期的S2P2输出迻位时钟为高电平。于是将数据字节从低位至高位接收下来并装入SBUF。在启动接收过程(即写SCON清RI位),将SCON中的RI清0之后的第l0个机器周期的SlPl将RI置位这一帧数据接收完毕,可进行下一帧接收
该仓库未指定开源许可证未经莋者的许可,此代码仅用于学习不能用于其他用途。
项目仓库所选许可证以仓库主分支所使用许可证为准
该操作需登录码雲帐号,请先登录后再操作
代码托管 项目管理 文档协作 完备安全策略
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。