3.4—应用实例.ppt

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

通信函数Comm() 通信函数Comm() 通信函数Comm()在主程中被序循环调用,用以接收Hex文件记录。若本函数的返回值为真(1),则说明在全局数组Record[21]正确地接收到了一组Hex文件记录。否则未收到记录。 本函数内定义了两个局部变量:无符号字符型数组“Asc[2]和静态无符号字符型变量“RecLen”;其中Asc[2]用于同时接收在冒号之后的两个ASCⅡ码字符,以调用GetHex(Asc)函数转换为一个十六进制数据;RecLen用于计数在全局数组Record[21]内已接受的数据个数,因一条记录的成功接收可能会多次调 通信函数Comm() 用该通信函数,故将之定义为静态变量。当收到冒号“:”时,将变量RecLen清零;每当收到两个ASCⅡ字符组成一个十六进制数时,RecLen加1;当收到回车换行符时,记录接收结束。 通信函数程序流程图见下页。在一个while循环中,程序不断地判断队列长度,当队列长度大于1时就对记录进行解析,直至队列长度不足2个字符。之所以以2个以上字符为界,是因为程序可以很方便地同时将2个ASCⅡ码字符转换为1个十六进制数据,存入记录缓冲区Record[21]。 通信函数Comm() 通信函数Comm() 在调用出队函数DelQueue()前关中断,是因为UART中断可能发生在顺序程序流程的任何地方,而中断服务程序也有可以改变队列长度的如队操作(调用出队函数InsQueue()),为了避免冲突,在调用出队函数时应禁止响应UART中断,调用完毕后应重新使能。 3.4 应用实例 应用实例 本节应用到的知识点有循环队列、奇偶校验与和校验。 程序经编译器编译、链接后可产生Hex文件,Hex文件是Intel公司定义的目标文件,可用于烧片。PC机须将该文件通过通信接口传递给编程器,然后通过编程器对单片机中的存储器进行烧片。 本节先介绍Hex文件构成,然后介绍80C51单片机通过串行口接收PC机发送的Hex文件的编程方法。 目 录 Hex文件结构组成 通信编程 程序设计思路 主程序函数和串口中断服务程序 通信函数Comm() Hex文件结构组成 Hex文件是一种十六进制格式的文本文件,它将需要传送货保存的数据分成记录组,每组数据一般不超过16字节,每个记录组信息结构依次如下: 记录起始域,以冒号“:”(由ASCⅡ码0x3a组成)开始; 1字节数据长度域(由2个ASCⅡ码组成,高位在先); 2字节起始地址域(由4个ASCⅡ码组成,高地址字节 、高位在先); 1字节记录类型域(由2个ASCⅡ码组成,高位在先), 0x00表示数据记录,0x01表示文件结束记录; 数据域(每字节由2个ASCⅡ码组成,高位在先),文 件结束记录组没有数据域 Hex文件结构组成 1字节校验和域(由2个ASCⅡ码组成,高位在先),校 验和域是前4个域(数据长度域、起始地址域、记录类 型域和数据域)的8位二进制和,然后取补(2的补码) 且转换为2个ASCⅡ字符。采用求和取补的算法好促 使:前4个域加上本域的和为零,这给接收方校验带 来了方便; 最后以回车换行(ASCⅡ码0x0d、0x0a)结束。 Hex文件结构组成 流水灯汇编程序 .area HOME(ABS.CODE) .org 0x0000 ;复位向量 MOV A,#1 Loop: MOV P1,A RLC A MOV R6,#0xFF Delay: MOV R7,#0xFF Delay1: DJNZ R7,Delay1 DJNZ R6,Delay AJMP loop Hex文件结构组成 :0D0000007401F590337EFF7FFFDFFEDEFA16 :02000D000102EE F 流水灯汇编程序经过汇编、链接后生成的*.hex文件如下所示(可用“记事本”打开) 其中第一行表示在地址0x0000开始处有13字节数据;第二行

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档