- 1、本文档共34页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
9.3 AT89C51串行接口的应用与编程 9.3.1 工作方式0的应用 串行口工作方式0主要用于扩展并行I/O口,扩展成并行输出口时,需要外接一片8位串行输入并行输出的同步移位寄存器74HC164或CD4094。扩展成并行输入口时,需要外接一片或几片并行输入串行输出的同步移位寄存器74HC165或CD4014。 数据的串行输出或输入可采用中断方式,也可采用查询标志位TI、RI的方法,在移位初始化时,要进行相应的设置。 [例9.1] 利用串行口工作在方式0,外扩一片74HC164构成一个三位LED动态显示器,并将内部RAM显示单元65H、66H、67H中的内容输出显示。如图9-14所示。 主程序如下: ORG 0100H STPRT: MOV SCON,#00H ;串行口初始化为方式0 SETB P1.2 ;消去最高显示位 SETB P1.1 MOV SBUF,65H ;传送最低显示位 JNB TI,$ ;传送没结束,等待 CLR P1.0 ;最低位显示 CLR TI ;清中断标志位 LCALL DSSJ ;调延时子程序,维持状态 SETB P1.0 ;消去最低显示位 MOV SBUF,66H ;传送中间显示位 JNB TI,$ ;等待传送结束 CLR P1.1 ;显示中间位 CLR TI ;清中断标志位 LCALL DSSJ ;调延时子程序,维持状态 SETB P1.1 ;消去中间显示位 MOV SBUF,67H ;传送最高显示位 JNB TI,$ ;等待传送结束 CLR P1.2 ;显示最高显示位 CLR TI ;清中断标志位 RET [例9.2] 利用串行口工作方式0,扩展一片并行输入串行输出的移位寄存器74LS165,如图9-15所示,构成一个8位并行输入口,输入8位开关量(每一开关量代表不同功能,如启动、停止等),并将其存入固定单元60H中。 串行口工作在方式0,且处于接收状态,则REN置为“1”,SCON的控制字为10H,并行数据采用间隔调用子程序的方式读入,程序如下: START: CLR P1.0 ;输入并行数据 SETB P1.0 ;允许串行移位,等待移位脉冲 MOV SCON ,#10H ;设串行口方式0,启动接收 JNB RI,$ ;等待接收一帧数据 CLR RI ;清中断标志位 MOV A,SBUF ;读入接收数据 MOV 60H,A ;存入固定单元 RET 9.3.2 工作方式1的应用 串行方式1主要用于异步双机通信,波特率由定时器T1产生。 [例9.3] 利用串行口方式1实现一个数据块的传送,数据块存在内部RAM的60H~6FH中,波特率选为2400,并形成和校验数据一起发送。 串行口工作为方式1,且处于发送的单工模式,则SCON控制字为40H。方式1的波特率由T1产生,设T1工作于方式2自动重装初值模式,晶振频率为11.0592 MHz时,计数初值为F4H。用于和校验的算术和存放在70H中,并在数据块的末尾传送出去。 通过上面的分析,采用查询法传送数据块的子程序如下: MOV TMOD,#20H ;设置T1为工作方式2
文档评论(0)