中断定时计数器与串行口概要1.ppt

  1. 1、本文档共103页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
中断定时计数器与串行口概要1

Page ? * 多机通信的过程 5.3.6 MCS-51多机通信技术 ①使所有从机的SM2=1,处于准备接收一帧地址数据的状态; ②主机设第9位数据为1,发送一帧地址信息,与所需的从机进行 联络; ③每个从机接收到地址信息后,各自将其与自己的地址相比较, 对于地址相符的从机,使SM2=0,准备接收主机随后发来的所 有信息;对于 地址不相符的从机,仍保持SM2=1状态,对主机 随后发来的数据不理睬,直至发送新的一帧地址信息; ④ 主机发送控制指令与数据给被寻址的从机。一帧数据的第9位置 0,表示发送的是数据或控制指令。 Page ? * 1.串行口的初始化 5.3.7 串行口的应用举例 ① 按选定串行口的工作方式设定 SCON的 SM0、SM1 两位二进制编码。 ② 对于工作方式 2或 3,应根据需要在 TB8 中写入待发送的第 9 位数据。 ③ 若选定的工作方式不是方式 0,还需设定接收/发送的波特率。设定 PCON 中的SMOD的状态,以控制波特率是否加倍。 ④ 若选定工作方式 1 或 3,则应对定时器 T1进行初始化以设定其溢出率。 ⑤ 若采用中断方式,还需初始化中断系统。 【例5.8】使用74HC164的并行输出端接8只发光二极管,利用它的串入并出功能,把发光二极管从左向右依次点亮,并不断循环之。电路连接图如图 解:分析该电路,发现指定单片机是按照串口的工作方式0进行数据传输,故先进行串口的工作方式初始化设置,关闭串口中断;等到数据准备完成后,打开中断,然后把数据依次发出。由于74HC164没有输出控制端,如果不对输出数据进行处理的话,输出端的数据就会不停的发生变化,导致LED灯处于无序的状态。 2. 串行口方式0的编程和应用 编程如下: MOV SCON,#00H ;设串行口为方式0 CLR ES ;设置IE寄存器的ES位=0,先关闭串行口中断 MOV A,#80H ;准备第一个发送的数据,即先显示最左边发 ;光二极管 LED:MOV SBUF,A ;数据送到发送缓冲器中 JNB TI,$ ;查询TI标志位,TI=0则等待,TI=1就向下 ;执行 CLR TI ;清除发送中断标志,可以开始下一次发送 ACALL DELAY ;调用延时子程序 RR A ;A的数据右移,即点亮隔壁的一位 AJMP LED ;跳转到LED处,循环执行 ? ? ? 【例5.13】试编写双机通信程序。假设使用6MHz晶振,甲、乙双机均为串行口方式1,并以定时器T1的方式2为波特率发生器,SMOD为0,波特率为2400bit/s。双机连接如图所示。 解:(1)波特率的计算:以T1的方式2制定波特率。此时T1相当于一个8位 的计数器。 (2)计算定时器T1的计数初值: TH1=28-(2SMOD×fosc)÷(波特率×32×12) =256-(20×6×106)÷(2400×32×12) =256-6.5=249.5=FAH 编写程序,分为发送和接收两大模块 3. 串行口方式1的编程和应用 Page ? * 甲机发送: TRANS: MOV TMOD,#20H ;置T1为定时器方式2 MOV TL1,#0FAH ;设置T1定时常数 MOV TH1,#0FAH SETB TR1 ;启动定时器T1 MOV PCON,#00H ;设置SMOD=0 ,即波特率不倍增 CLR TI ;清除发送中断标志 MOV SCON,#40H ;设置串行口为方式1 WAIT: MOV DPTR,#2000H ; MOV R6,#20H ;长度寄存器初始化 MOV SBUF,R6 ;发送长度 JNB TI,$ ;查询发送中断标志位TI,为0则等待发送结束 CLR TI

文档评论(0)

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

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

1亿VIP精品文档

相关文档