网站大量收购闲置独家精品文档,联系QQ:2885784924

《单片机原理与应用技术》课件第8章.ppt

《单片机原理与应用技术》课件第8章.ppt

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

JNBTI,$ CLRTI RET;接收一个字节子程序FROM_SBUF:CLRP3.5 ;置MAX485为接收状态 JNBRI,$ CLRRI MOVA,SBUF RET END图8.21从机程序流程图从机采用串口中断接收方式。程序清单及说明(见注释语句)如下:SLAVE_NUMEQU01H ;定义的#1从机地址(2#从机为02H) ORG0000H AJMPMAIN ORG0023H ;串口中断入口地址 AJMPS_INT ORG0030HMAIN:MOVSCON,#0F0H ;按8.7.1节过程(1)设置SM2?=?1, ;串口方式3,允许接收, ;TB8?=?1,SM2?=?1说明从机目前 处于接收地址帧状态MOVPCON,#00H ;波特率不倍增MOVTMOD,#20H ;T1为定时、方式2,产生波特率用MOVTL1,#0E8H ;查表8.2,波特率为1200的初值 MOVTH1,#0E8H SETBTR1 ;启动T1定时 SETBEA ;允许总中断 SETBES ;允许串口中断 CLRP3.5 ;MAX487设置为接收状态 AJMP$ ;从机等待串口中断;---------------------------------------------;功能:串口中断服务程序;原理:按8.7.1节过程(1)、(3)、(4)接收发送数据;---------------------------------------------S_INT: ACALLFROM_SBUF ;接收主机发送的地址 CJNEA,#SLAVE_NUM,S_INT_END ;判断是否是本从机地址号,如不是退出中断 MOV20H,#SLAVE_NUM;如是本从机地址号,存入20H CLRSM2 ;置从机为接收数据状态 ACALLFROM_SBUF ;接收功能字节,存21H MOV21H,AACALLFROM_SBUF ;接收需要返回的P1状态字节数,存22HMOV22H,AACALLFROM_SBUF ;接收校验和,存23HMOV23H,AACALLSUM ;求20H~22H的校验和,结果存BMOVA,21H ;比较收到的功能字节是否为01H,否则 退出CJNEA,#01H,S_INT_ENDMOVA,22H ;比较返回的P1状态字节数是否为01H, 否则退出CJNEA,#01H,S_INT_ENDMOVA,23HCJNEA,B,S_INT_END ;比较收到的校验和是否与计算的相等, 否则退出MOVP1,#0FFH ;如满足以上条件,将从机P1口的状态送22HMOV22H,P1 ;MOVP1,#0FFH为根据读取准双向口的 要求,先送1ACALLSUM ;求20H~22H的校验和,结果存BMOV23H,B ;校验和存23HACALLSEND_DATA ;从机发给主机20H~23H的内容S_INT_END:SETBSM2 ;从机恢复到接收地址帧状态 CLRP3.5 ;从机置MAX487为接收状态 RETI ;中断服务程序返回指令;以下子程序与主机的程序清单相同SEND_DATA:... ;发送20H~23H的子程序SUM:...;求20H~22H校验和子程序TO_SBUF:... ;发送一个字节子程序FROM_SBUF:... ;接收一个字节子程序 END8.8单片机与PC的串口通信

文档评论(0)

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

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

1亿VIP精品文档

相关文档