- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第6章串行口与通信6.4.1应用指导1.串行通信中的常用波特率6.4串行口的编程应用8051的四种工作方式中,方式0和方式2的波特率固定,见表6-1和方式0、方式2的特点。方式1和方式3的波特率可变,其具体数值由定时器T1的溢出率和SMOD位共同决定,公式见表6-1。定时器T1作波特率发生器时,为了防止溢出中断,应保持T1为中断禁止状态。表6-4列出了T1的常用波特率。第6章串行口与通信表6-4T1的常用波特率第6章串行口与通信2.利用串行口扩展I/O口8051单片机串行口方式0为同步移位寄存器方式,可进行8位并行I/O口的扩展。当串行口别无它用时,可通过使用串行输入并行输出移位寄存器(如74LS164)扩展并行输出口;或使用并行输入串行输出移位寄存器(如74LS165)扩展并行输入口。这种方法不占用片外RAM地址,而且还能简化单片机系统的硬件结构。但缺点是操作速度较慢,且扩展芯片越多,速度越慢。图6-12是利用一片74LS165扩展8位并行输入口的实用电路。当移位/置入端S/由“1”变为“0”时,并行输入端的数据被置入寄存器。当S/=1,且时钟禁止端(15脚)接地时,在时钟脉冲的作用下,数据由QA向QH方向(即D7→D0)移动。第6章串行口与通信图6-12利用一片74LS165扩展8位并行输入口电路图中RXD(P3.0)作为8051的串行输入端与74LS165的串行输出端相连,TXD(P3.1)为移位脉冲输出端,与74LS165芯片的移位脉冲输入端连接,用一根I/O口线P1.0与74LS165芯片的S/相连来控制移位与置位过程。注:图中74LS165的SIN引脚为串行输入端,用于两片74LS165的串行扩展连接。第6章串行口与通信3.串行通信编程基础(1)串行口初始化编程串行口初始化应该包括对SCON、PCON和T1的初始化。对T1的初始化又包含TMOD寄存器初始化(将T1设置为波特率发生器)、根据波特率求时间常数并对TH1和TL1赋值、启动T1等过程,串口初始化格式如下,其中加括号的指令可根据情况选择使用:SIO:MOVSCON,#控制状态字;写方式字且TI=RI=0 (MOVPCON,#80H) ;波特率加倍 (MOVTMOD,#20H) ;T1作波特率发生器 (MOVTH1,#X);选定波特率 (MOVTH1,#X) (SETBTR1);启动T1 (SETBEA) ;开串行口中断 (SETBES)第6章串行口与通信(2)发送程序发送程序可以采用中断和查询两种方式设计。查询方式:TRAM: MOV A,@R0 ;取数据MOV SBUF,A ;发送一个字符WAIT: JBC TI,NEXT ;等待发送结束SJMP WAITNEXT: INC R0 ;准备下一次发送SJMP TRAM第6章串行口与通信中断方式:ORG 0023H ;串行口中断入口 AJMPSINTMAIN: … ;初始化编程TRAM: MOV A,@R0;取数据 MOV SBUF,A;发送第一个字符 SJMP $ ;其它工作SINT:CLRTI ;中断服务程序 INC R0 MOV A,@R0;取数据 MOV SBUF,A;发送下一个字符 RETI第6章串行口与通信与发送相类似,接收也可以采用中断和查询两种方式设计。当REN=1、RI=0时80C51处于等待接收状态;一旦检测到RI=1,80C51开始从SBUF读取数据。查询方式:WAIT: JBC RI,NEXT ;查询等待
文档评论(0)