51单片机基础MCS-51单片机汇编语言程序设计.ppt

51单片机基础MCS-51单片机汇编语言程序设计.ppt

  1. 1、本文档共165页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
二、 MCS-51串行的工作方式 MCS-51的串行口有四种工作方式,它是由SCON中的SM1和SM0来决定的,如表格 7-1 表格 7-1 串行口的工作方式 SM0 SMl 工作方式 方式简单描述 波特率 0 0 0 移位寄存器I/O 主振频率/12 0 1 1 8位UART 可变 1 0 2 9位UART 主振频率/32或主振频率/64 1 1 3 9位UART 可变 1.方式0 图 7-8 串行口方式0的时序 2.方式1 在方式1时,串行口被设置为波特率可变的8位异步通信接口。其时序如图 7-9 所示。 图 7-9 串行口方式1的时序 3.方式2 串行口工作为方式2时,被定义为9位异步通信接口。其时序如图 7-10 所示。 图 7-10 串行口方式2、3的时序 4.方式 三、 MCS-51串行通信的波特率 1.方式0的波特率 2.方式2的波特率 3.方式1或方式3的波特率 表格 7-2 常用波特率和定时器T1初值关系表 波特率 (方式1、3) fosc=6M fosc=12M fosc = 11.059M SMOD T1方式 初值 SMOD T1方式 初值 SMOD T1方式 初值 62.5k ? ? ? 1 2 FFH ? ? ? 19.2k ? ? ? ? ? ? 1 2 FDH 9.6k ? ? ? ? ? ? 0 2 FDH 4.8k ? ? ? 1 2 F3H 0 2 FAH 2.4k 1 2 F3H 1 2 F3H 0 2 F4H 1.2k 1 2 E6H 0 2 E6H 0 2 E8H 600 1 2 CCH 0 2 CCH 0 2 D0H 300 0 2 CCH 0 2 98H 0 2 A0H 137.5 1 2 1DH 0 2 1DH 0 2 2EH 110 0 2 72H 0 1 FEEBH 0 1 FEFFH 表格 7-2 常用波特率和定时器T1初值关系表 7.3 MCS-51单片机串行口的应用 一、 串行口方式0用作扩展并行I/O口 图 7-11 串行口方式0扩展并行输出口 ? ? ? ? ? MOV SCON,#00H ;串行口方式0初始化 ? MOV A,#80H ;最左一位发光二极管先亮 ? CLR P1.0 ;关闭并行输出 START1: MOV SBUF,A ;开始串行输出 LOOP: JNB TI,LOOP ;查询TI ? SETB P1.0 ;启动并行输出 ? ACALL DELAY ;显示延时 ? CLR TI ;清发送中断标志 ? RR A ;准备右边一位显示 ? CLR P1.0 ;关闭并行输出 ? SJMP START1 ;再一次串行输出 二、 方式1与点对点的异步通讯 在下面给出的实现指定功能的通讯程序中,发送和接收都通过调用子程序来完成,并设发送数据区的首地址为20H,接收数据区的首地址为40H。 主程序: ? MOV TMOD,#20H ;定时器1设为方式2 ? MOV TL, #0F3H ;定时器初值 ? MOV TH1, #0F3H ;8位重装值 ? SETB TR1 ;启动定时器1 ? MOV SCON,#50H ;串行口设为方式1,REN=1 ? MOV R0, #20H ;发送数据区首址 ? MOV R1, #40H ;接收数据区首址 ? ACALL SOUT ;输出一个字符 $: SJMP $ ;等待中断 中断服务程序: ? ORG 0023H ;串行口中断入口 ? AJMP SBRl ;转至中断服务程序 SBRl: JNB RI,SEND ;TI=1,为发送中断 ? ACALL SIN ;RI=1,为接收中断 ? SJMP NEXT ;转至统一的出口 SEND: ACALL SOUT ;调用发送子程序 NEXT: RETI ;中断返回 发送子程序: SOUT: MOV A,@Ro ;取发送数据到A ? MOV C,P ;加上奇校验位 ? CPL C ? ? MOV ACC.7,C ? ? INC R0 ;修改发送数

文档评论(0)

Kaiser + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档