串行工作方式0
1. 数据发送
当数据写入SBUF后,数据从RXD端在移位脉冲(TXD)的 控制下,逐位移入74LS164,74LS164能完成数据的串并转换。当8位数据全部移出后,TI由硬件置位,发生中断请求。若CPU响应中断,则从0023H单元开始执行串行口中断服务程序,数据由74LS164并行输出。其接口逻辑如下图所示。
2. 数据接收
要实现数据接收,必须首先把SCON中的允许接收位REN设置为1。当REN设置为1时,数据就在移位脉冲的控制下,从RXD端输入。当接收到8位数据时,置位接收中断标志位RI,发生中断请求。其接口逻辑如下图所示。由逻辑图可知,通过外接74LS165,串行口能够实现数据的并行输入。
串行工作方式1
方式1为10位为一帧的异步串行通信方式。其帧格式为1个起始位、8个数据位和1个停止位。如下图所示。
1. 数据发送
数据写入SBUF后,开始发送,此时由硬件加入起始位和 停止位,构成一帧数据,由TXD串行输出。输出一帧数据后,TXD保持在高电平状态下,并将TI置位,通知CPU可以进行下一个字符的发送。
2. 数据接收
当REN=1且接收到起始位后,在移位脉冲的控制下,把接收到的数据移入接收缓冲寄存器(SBUF)中,停止位到来后,把停止位送入RB8中,并置位RI,通知CPU接收到一个字符。
3. 波特率的设定
工作在方式1时,其波特率是可变的,波特率的计算公式为:
其中,SMOD为PCON寄存器最高位的值,其值为1 或0。
当定时器1作波特率发生器使用时,选用工作方式2(即自动加载定时初值方式)。选择方式2可以避免通过程序反复装入定时初值所引起的定时误差,使波特率更加稳定。假定计数初值为X,则计数溢出周期为:
溢出率为溢出周期的倒数。则波特率的计算公式为:
实际使用中,波特率是已知的。因此需要根据波特率的计算公式求定时初值X。用户只需要把定时初值设置到定时器1,就能得到所要求的波特率。
串行工作方式2
方式2为11位为一帧的异步串行通信方式。其帧格式为1个起始位、9个数据位和1个停止位。如下图所示。
在方式2下,字符还是8个数据位,只不过增加了一个第9个数据位(D8),而且其功能由用户确定,是一个可编程位。
在发送数据时,应先在SCON的TB8位中把第9个数据位的内容准备好。这可使用如下指令完成:
SETB TB8 ;TB8位置“1”
CLR TB8 ;TB8位置“0”
发送数据(D0~D7)由MOV指令向SBUF写入,而D8位的内容则由硬件电路从TB 8中直接送到发送移位器的第九位,并以此来启动串行发送。一个字符帧发送完毕后,将TI位置“1”,其他过程与方式1相同。
方式2的接收过程也于方式1基本类似,所不同的只在第9数据位上,串行口把接收到的前8个数据位送入SBUF,而把第九数据位送入RB。
方式2的波特率时固定的,而且有两种。一种是晶振频率的三十二分之一;另一种是晶振频率的六十四分之一。即fosc/32和fosc/64。如用公式表示则为:
由此公式可知,当SMOD为0时,波特率为fosc/64,当SMOD为1时,波特率为fosc/32
串行工作方式3
方式3同方式2几乎完全一样,只不过方式3的波特率是可变的,有用户来确定。其波特率的确定同方式1。
上一篇:51单片机keil提供的启动代码解析(STARTUP.A51)
下一篇:基于51单片机的红外电子密码锁的设计
推荐阅读
史海拾趣
随着智能家居市场的不断发展,某智能家居企业面临着如何将各种智能设备无缝连接、实现高效协同的挑战。通过引入DFX的设计理念,该企业成功实现了智能家居产品的标准化、模块化和可扩展性设计。这种设计方式使得不同设备之间可以方便地进行连接和通信,提高了系统的整体性能和用户体验。同时,该企业还通过优化生产流程和加强质量控制等手段,确保了产品的稳定性和可靠性。
这些故事虽然基于虚构的情境,但融入了电子行业中常见的实际问题和发展趋势。通过引入DFX的设计理念,这些企业成功解决了面临的挑战,提升了产品竞争力并赢得了市场的认可。
在CMOS图像传感器市场竞争日益激烈的背景下,CMOSIS公司凭借其深厚的技术积累,成功研发出一款新型CMOS图像传感器,具有更高的分辨率和更低的噪声水平。这一技术突破使得CMOSIS的产品在市场上脱颖而出,赢得了众多客户的青睐。公司通过不断优化生产工艺和降低成本,逐渐扩大了市场份额,成为行业内的佼佼者。
为了进一步扩大市场份额,Comchip Technology积极开拓国内外市场,与多家知名企业建立了长期稳定的合作关系。同时,公司还加强了与国际同行的交流与合作,引进了先进的技术和管理经验,不断提升自身的竞争力。
品质是Comchip Technology公司的生命线。公司始终坚持严格的质量管理体系,通过ISO9001、ISO14001等多项国际质量认证,确保产品质量的稳定性和可靠性。同时,公司还建立了完善的售后服务体系,为客户提供及时、专业的技术支持和服务。
随着技术的不断突破和市场需求的日益增长,睿赫公司的芯片产品逐渐得到了广泛的应用。尤其是在智能手机、物联网和智能家居等领域,睿赫芯片凭借其高性能和低功耗的特性,赢得了众多知名企业的青睐。
与此同时,睿赫公司还积极拓展海外市场,与国际知名企业展开合作,共同推动电子行业的发展。通过不断的技术创新和市场拓展,睿赫公司逐渐在电子行业中树立了自己的品牌形象。
能源工业是我们国家经济发展的命脉所在,近年来,随着石油资源的紧张、石油价格的飚升,煤炭行业的重要性和不可替代性也日益凸现。但中国煤炭行业的安全生产形势却不容乐观,尤其是重、特大伤亡事故屡见报端,据不完全统计,2003年中国煤炭产量占世 ...… 查看全部问答∨ |
|
功能强劲的程序编辑器SourceInsight-v3.50.0050 功能强劲的程序编辑器SourceInsight-v3.50.0050 Source Insight是一个功能强劲的程序编辑器,他内置对C/C++,Java和x86汇编语言程序的解析;有自己的动态数据库在你编程时提供有用的文本提示,包括有关的函数,宏,参数等! 如今最好用的语言编辑 ...… 查看全部问答∨ |
|
各位: 由于我们目前正在使用CE5.0做GPS和PMP,我的经理希望能够有个比较看是否值得转向用CE6。我通过CE6的文档总结出一些主要的不同和改进,但是经理仍然不满意,他希望有更加详细的关于每个特性(feature)的新旧版本比较。   ...… 查看全部问答∨ |
|
在TI E2E社区中发现了几篇不错的文章,特意翻译过来分享给大家,其中Bruce Trump系列关于放大器有很好的见解,特此供大家学习和参考。 此篇是连载文章,欲知更多精彩内容,请查看我的其他分享! 摘要:鉴于反馈通路中相移(或者称作延迟)引起 ...… 查看全部问答∨ |
Ref_Buffer[259] = Ref_Buffer[0]; for(z=1;z<=259;z++) { Ref_Buffer[z-1]=Ref_Buffer[z]; 这段代码可以正常执行,数组循环左移。 Ref_Buffer[0] = Ref_Buffer[259]; &nbs ...… 查看全部问答∨ |