单片机毕业论文.doc_第1页
单片机毕业论文.doc_第2页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

武汉工程大学邮电与信息工程学院武汉工程大学邮电与信息工程学院 毕业设计(论文)毕业设计(论文) 基于单片机的串行通信发射机的基于单片机的串行通信发射机的 设计与实现设计与实现 design and implementation based on serial communication transmitter 学生姓名 学 号 专业班级 指导教师 2012 年年 5 月月 武汉工程大学邮电与信息工程学院(论文) 作者声明作者声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究 成果,除了文中特别加以标注的地方外,没有任何剽窃、抄袭、造假等违反学术 道德、学术规范的行为,也没有侵犯任何其他人或组织的科研成果及专利。与我 一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了 谢意。如本毕业设计(论文)引起的法律结果完全由本人承担。 毕业设计(论文)成果归武汉工程大学邮电与信息工程学院所有。 特此声明。 作者专业: 作者学号: 作者签名: _年_月_日 武汉工程大学邮电与信息工程学院(论文) 摘摘 要要 在通信领域内,有两种数据通信方式:并行通信和串行通信。随着计算机网 络化和微机分级分布式应用系统的发展,通信的功能越来越重要。因此串行发射 应用愈来愈广泛。串行通信是指使用一条数据线,将数据一位一位地依次传输, 每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在设备间交换 信息,但传输速度较低。故串行通信在低速率、长距离通信上非常适用。而串行 通信发射机是串行通信中极为重要的基础。 本设计中 adc0809 将采集到的模拟信号转换成数字信号后传送至单片机, 在单片机通过编程方式来增加 crc-8(8 位循环冗余码校验)校验码以加强数据 可靠性,最后单片机再把采集到的数据和校验码通过一个无线发送器以串行通信 的方式发送出去。 本论文共分为六个章节。第 1 章简要阐述了课题的研究背景及意义,并对串 行通信发射机做了相关介绍;第 2 章介绍了系统的任务分析和设计方案;第 3 章 主要介绍了系统的电路设计及所需设备及芯片;第 4 章对串行通信发射机的软件 部分做了详细论述,并给出软件设计流程;第 5 章分析了系统测试过程及结果; 第 6 章总结了全文并对课题的发展前景做了展望。 关键词:关键词:单片机;crc-8;串行通信 武汉工程大学邮电与信息工程学院(论文) abstract in the communications field, there are two data communication method: parallel communication and serial communication. with the computer network network of distributed applications and computer grading system, the communications function is increasingly important. therefore, the serial transmit more and more widely. serial communication using a data cable, data a one followed by transfer every data occupy a fixed length of time. it only takes a few a few lines you can exchange information between devices, but the low transmission speed. serial communication is ideal for low- rate, long-distance communication. serial communications transmitter is an extremely important foundation of the serial communication. adc0809 analog signal acquisition to convert the digital signal sent to the microcontroller, the microcontroller programmatically to increase crc-8 (8-bit cyclic redundancy check) checksum to enhance data reliability, the final microcontroller then collectedthe data and check code serial communication sent through a wireless transmitter. this thesis is divided into six chapters. chapter 1 briefly described the research background and significance, and serial communication transmitters do; chapter 2 describes the task analysis and design of the system; chapter 3 introduces the circuit design of the system and required equipment and chips; chapter 4, the software portion of the serial communication transmitter in detail, and gives the software design process; chapter 5 analyzes the system test process and results; chapter 6 summarizes the full text and design during the harvest the sentiment. key words:single chip microcomputer; crc-8; serial programming 武汉工程大学邮电与信息工程学院(论文) 1 目录目录 第第 1 章章 选题背景和意义选题背景和意义.1 第第 2 章章 任务分析与方案设计任务分析与方案设计.2 第第 3 章章 电路设计电路设计.3 3.1 电路连接仿真图.3 3.2 mcs-51 单片机3 3.3 a/d 转换器.5 3.4 无线发射电路设计.6 第第 4 章章 软件设计软件设计.8 4.1 adc0809 工作地址 .8 4.2 a/d 转换.9 4.3 crc-8 编码 10 4.3 mcs-51 单片机串行口结构与数据发送 .11 4.4 仿真代码.14 第第 5 章章 系统调试系统调试.18 5.1 系统软件调试18 5.2 系统仿真调试19 5.3 数据测试与误差分析20 第第 6 章章 总结总结.23 致致 谢谢.24 参考文献参考文献.25 武汉工程大学邮电与信息工程学院(论文) 1 第第 1 章章 选题背景和意义选题背景和意义 目前,单片机正朝着高性能和多品种方向发展,今后单片机的发展趋势将进 一步向着 cmos 化、低功耗化、低电压化、低噪声与高可靠性、大容量化、高 性能化、小容量、低价格化、外围电路内装化和串行扩展技术。随着半导体集成 工艺的不断发展,单片机的集成度将更高、体积将更小和功能将更强,应用也会 更广泛。 单片机已成为计算机发展和应用的一个重要方面,另一方面,单片机应用的 重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前 必须由模拟电路或数字电路实现的大部分功能,现在已能通过单片机来实现了。 这种用软件代替硬件的控制技术也称为微控制技术,是对传统控制技术的一次革 命。 在通信领域内,有两种数据通信方式:并行通信和串行通信。随着计算机网 络化和微机分级分布式应用系统的发展,通信的功能越来越重要。串行通信是指 使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间 长度。其只需要少数几条线就可以在系统间交换信息,特别使用于计算机与计算 机、计算机与外设之间的远距离通信。其特点如下:传输线少、长距离传送时成 本低、传输速率低.。因此串行发射应用愈来愈广泛。而串行通信发射机是串行通 信中极为重要的基础。 此次设计注重于对单片机串行发射的理论的理解,明白发射机的工作原理, 以便以后单片机领域的开发和研制打下基础,提高自己的设计能力,培养创新能 力,丰富自己的知识理论,做到理论和实际结合。本课题的重要意义还在于能在 进一步层次了解单片机的工作原理,内部结构和工作状态。理解单片机的接口技 术,中断技术,存储方式,时钟方式和控制方式,这样才能更好的利用单片机来 做有效的设计。 武汉工程大学邮电与信息工程学院(论文) 2 第第 2 章章 任务分析与方案设计任务分析与方案设计 基于单片机的串行通信发射机系统的主要功能就是以单片机为控制芯片,把 采集到的数据通过串行通信的方式进行传送。本设计中数据采集器采用的是一个 8 通道 8 位线性模-数编码器 adc0809,给数据加 crc-8 校验码则是采用编程的 方式来实现的,发送方式采用了以无线传输的方式来传送串行数据的方法,故还 需要设计一个无线发送电路。 这个系统有如下两个部分:硬件电路部分有 a/d 转换器及接口电路、单片机 的接口电路及 a/d 转换器与单片机的数据线、无线数据发射电路。软件部分是 a/d 转换器的数据采集部分,用软件对 a/d0809 转换成的数据进行 crc-8 编码, 然后将采集到的八位数据和转换好的 crc-8 编码作为一帧通过无线发送模块发送 出去。 为了方便电路、程序的实时修改在本设计中全部采用仿真设计软件。proteus 软件是英国 labcenter electronics 公司出版的 eda 工具软件 proteus 是唯一将电路 仿真软件、pcb 设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型 支持 8051、hc11、pic10/12/16/18/24/30/dspic33、avr、arm、8086 和 msp430 等。在编译方面,它也支持 iar、keil 和 mplab 等多种编译器。 在本设计中采用 proteus 来进行电路设计,采用 keil 进来软件编写以及编译, 最后将 keil 编译出的程序文件跟 proteus 进行联合仿真。 武汉工程大学邮电与信息工程学院(论文) 3 第第 3 章章 电路设计电路设计 3.1 电路连接仿真图电路连接仿真图 adc0809 跟 mcs-51 之间的数据交换采用并行传输方式,用 mcs-51 的 p0 口读 adc0809 的数据,故只需用 8 条连线将 p0.0p0.7 口分别与 out1out8 连接即可,另外由于 proteus 中没有 micrf102 元件库,在本设计中就采用示波 器来表示。综合各芯片的引脚分布及功能特点,具体的电路连接图如图 3.1 所示。 图图 3.1 电路连接仿真图电路连接仿真图 3.2 mcs-51 单片机单片机 本系统采用 mcs-51 单片机,mcs 是 intel 公司单片机系列的符号。intel 公 司推出有 mcs-48、mcs-51、mcs-96 系列单片机。其中 mcs-51 系列单片机典 型机型包括 51 和 52 两个子系列。 在 51 子系列中,主要有 8031、8051、875l 三种机型,它们的指令系统与芯 片引脚完全兼容,只是片内程序存储器有所不同。 武汉工程大学邮电与信息工程学院(论文) 4 mcs-51 单片机的引脚图如图 3.2 所示。 图图 3.2 单片机引脚图单片机引脚图 各引脚功能如下: (1) p0.0p0.7:p0 口是一个 8 位双向 i/o 口 。在访问外部存储器 (ram 、rom)和扩展的 i/o 口时分时进行工作。在指令的前半周期,p0 口作为地址总 线的低 8 位,在指令的后半周期为 8 位的数据总线。 (2) p1.0p1.7:p1 口是一个带有上拉电阻的 8 位双向 i/o 口。 (3) p2.0p2.7:p2 口是一个带有上拉电阻的 8 位双向 i/o 口。在访问外部 存储器(ram 、 rom)和扩展的 i/o 口时,送出地址总线的高 8 位 。 (4)p3.0 p3.7:p3 口是一个带有上拉电阻的 8 位双向 i/o 口在 mcs-51 单 片机中, p3 口是一个双功能口,其第一功能是作为通用 i/o 口,第二功能是作 为特殊信号线使用。 (5) ale(地址锁存控制信号):在系统扩展时,ale 用于控制把 p0 口输出 的低 8 位地址送锁存器锁存起来,以实现低位地址和数据的隔离。此外由于 ale 是以晶振 1/6 的固定频率输出的正脉冲, 因此可作为外部时钟或外部定时脉冲 使用。 (6) (外部程序存储器读选通信号):在读外部程序空间时有效 psenpsen (低电平),以实现外部程序空间单元的读操作。 (7) (访问内外程序存储器控制信号):当信号为低电平时, 对 rom eaea 的读操作限定在外部程序存储器;而当信号为高电平时, 则对 rom 的读 ea 武汉工程大学邮电与信息工程学院(论文) 5 操作是从内部程序存储器开始, 并可延至外部程序存储器 。 (8) rst 复位信号:当输入的复位信号延续 2 个机器周期以上高电平时即 为有效, 用以完成单片机的初始化复位操作。 (9) xtal1 和 xtal2(外接晶体引线端):当使用芯片内部时钟时,此二引 线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信 号。 (10) vss:地线。 (11) vcc:正 5v 电源 。 3.3 a/d 转换器转换器 本系统采用 adc0809 进行模数转换,adc0809 是 ti 公司生产的 8 位逐次 逼近式模数转换器,包括一个 8 位的逼近型的 adc 部分,并提供一个 8 通道的 模拟多路开关和联合寻址逻辑,为模拟通道的设计提供了很大的方便。 用它可直接将 8 个单端模拟信号输入,分时进行 a/d 转换,在多点巡回监测、 过程控制等领域中使用非常广泛,所以本设计中选用该芯片作为 a/d 转换电路的 核心。 adc0809 引脚如图 3.3 所示。 图图 3.3 adc0809 引脚图引脚图 各引脚的功能如下: in0in7:8 个通道的模拟量输入端。可输入 05v 待转换的模拟电压。 武汉工程大学邮电与信息工程学院(论文) 6 d0d7:8 位转换结果输出端。三态输出,d7 是最高位,d0 是最低位。 a、b、c:通道选择端。当 cba=000 时,in0 输入;当 cba=111 时,in7 输入。 ale:地址锁存信号输入端。该信号在上升沿处把 a、b、c 的状态锁存到 内部的多路开关的地址锁存器中,从而选通 8 路模拟信号中的某一路。 start:启动转换信号输入端。从 start 端输入一个正脉冲,其下降沿启 动 adc0809 开始转换。脉冲宽度应不小于 100200ns。 eoc:转换结束信号输出端。启动 a/d 转换时它自动变为低电平。 oe:输出允许端。 clk:时钟输入端。adc0809 的典型时钟频率为 640khz,转换时间约为 100s。 ref(-)、ref(+):参考电压输入端。adc0809 的参考电压为5v。 vcc、gnd:供电电源端。adc0809 使用5v 单一电源供电。 当 ale 为高电平时,通道地址输入到地址锁存器中,下降沿将地址锁存, 并译码。在 start 上升沿时,所有的内部寄存器清零,在下降沿时,开始进行 a/d 转换,此期间 start 应保持低电平。在 start 下降沿后 10us 左右,转换 结束信号变为低电平,eoc 为低电平时,表示正在转换,为高电平时,表示转换 结束。oe 为低电平时,d0d7 为高阻状态,oe 为高电平时,允许转换结果输 出。 3.4 无线发射电路设计无线发射电路设计 无线发射电路如图 3.4 所示,电路以 micrf102 为核心。micrf102 芯片内 包含有:由基准振荡器、相位检波器、分频器、带通滤波器、压控振荡器构成的 合成器,发射偏置控制,rf 功率放大器,天线调谐控制和变容二极管等电路, 是一个真正的“数据输入无线输出“的单片无线发射器件。uhf 合成器产生载频 和正交信号输出。输入相位信号(i)用来驱动 rf 功率放大器。天线调谐正交信 号(q)用来比较天线信号相位。天线调谐控制部分检测天线通道中发射信号的 相位和控制变容二极管的电容,以调谐天线,实现天线自动调谐。功率放大器输 出受发射偏置控制单元控制。ask/ook 调制,提供低功耗模式,数据传输速率 武汉工程大学邮电与信息工程学院(论文) 7 为 20kb/s。 图图 3.4 无线发射电路无线发射电路 这个无线发射电路是基于 micrf102 芯片设计的,在使用此芯片时要注意以 下问题: (1)refosc(引脚 4)是基准振荡端,连接晶振到地,或采用 ac 耦合方 式输入峰-峰值为 0.5 v 的时钟脉冲。发射频率是基准振荡器频率的 32 倍:基准 振荡频率32=发射频率。如果使用外接时钟信号,须采用 ac 耦合方式,输入信 号幅度峰-峰值为 200500 mv。 (2)micrf102 使用差分输出去驱动天线负载。功率放大器输出级包含有 一个变容二极管,它自动与天线的电感调谐,以保证谐振在发射频率上。典型的 pcb 导线天线的电感与回路的尺寸、天线导线的宽度、pcb 铜泊的厚度和接地 板的位置有关。设计时一般选择变容二极管的电容值为 6.5pf。天线电感 l 由公 式 l=1/(42f2c)计算。 (3)功率放大器的输出功率与 pc 端(引脚 1)上的电压有关。正常工作时, 该引脚端上的电压被设置在 0.20.4v 之间。pc 端上的电压上升,输出功率加大; 但是,如果 pc 端上的电压超过 0.4v,功率放大器被限流,输出功率不再增加。 减少 pc 端的电压可降低电源功率消耗,同时也会减少 rf 输出功率。 (4)stby 端(引脚 5)是待机模式控制。接 vdd 为发射方式,接 vss 为 待机模式。 (5)micrf102 芯片对电源纹波敏感,正确地电源旁路是必需的,一般使 用 4.7f、0.1f、100pf3 个电容并联在 vdd 和 vss 之间。 武汉工程大学邮电与信息工程学院(论文) 8 第第 4 章章 软件设计软件设计 4.1 adc0809 工作地址工作地址 adc0809 与 mcs-51 单片机的硬件接口有 3 种形式,分别是查询方式、中断方 式和延时等待方式,本论文中选用中断接口方式。 由于 adc0809 无片内时钟,时钟信号可直接由外部时钟信号源给出。由于 adc0809 内部设有地址锁存器,所以通道地址由 p0 口的低 3 位直接与 adc0809 的 a、b、c 相连。通道基本地址为 0000h0007h。其对应关系如表 4.1 所示。表表 4.1 adc0809 地址码与对应输入通道地址码与对应输入通道 地址码 cba 输入通道 000in0 001in1 010in2 011in3 100in4 101in5 110in6 111in7 在本系统中,由于只采用 adc0809 的一个采样信道,故可直接将 adc0809 的 a、b、c 三个接口接 0 电平。 控制信号:将 p2.0 作为片选信号,在启动 a/d 转换时,由单片机的写信号 和 p2.0 控制 adc 的地址锁存和启动转换。由于 ale 和 start 连在一起,因此 adc0809 在锁存通道地址的同时也启动转换。adc0809 工作时序图如图 4.1 所 示。 武汉工程大学邮电与信息工程学院(论文) 9 图图 4.1 adc0809 工作时序图工作时序图 在读取转换结果时,用单片机的读信号和 p2.0 引脚经或非门后,产生正 rd 脉冲作为 oe 信号,用一打开三态输出锁存器。 start 信号和 oe 信号的逻辑表达式为 start= (4.1)2.0wrp oe= (4.2)2.0rdp 当 mcs-51 通过对 0000h0007h(基本地址)中的某个口地址进行一次写操 作,即可启动相应通道的 ad 转换;当转换结束后,adc0809 的 eoc 端向 mcs-51 发出中断申请信号;mcs-51 通过对 0000h0007h 中的某个口地址进 行一次读操作,即可得到转换结果。通过电路图的电路连接方式可以算出, adc0809 的一个工作地址是 fef8h。 4.2 a/d 转换转换 中断方式使用 eoc 信号作为向 mcs-51 的中断申请。在主程序中,向 adc 发出首次启动转换信号后,并计数管理转换通道数。当检测到 eoc 的请求后, 转去执行中断服务程序,读取转换结果,并启动下一次转换,后继续执行。 a/d 转换程序流程图如图 4.2 所示。 武汉工程大学邮电与信息工程学院(论文) 10 开始 开中断 将adc0809所对应 的地址送入dptr 启动a/d转换 转换结果存入a中 结束 转换好了吗? y n 图图 4.2 a/d 转换程序流程图转换程序流程图 4.3 crc-8 编码编码 为保证单片机系统串行通信的可靠性 ,除了需采取硬件措施确保通信接口 电平匹配、时序匹配消除波特率误差外,还需通过软件对通信数据的准确度进行 校验。mcs-51 单片机的 uart 技术为应用系统实现串行通信奠定了基础。mcs-51 单片机串行通信系统中,主要采用奇偶校验方法,例如,设置 mcs-51 单片机 为 方式 2(11 位:起始位 0、数据位 d0d7、奇偶校验位、停止位 1),通过检测接 收数据的奇偶性来判断其传翰的数据是否畸变。奇偶校验法简单、快速,但它只 能进行数据的奇偶性畸变检测,对于双位畸变则无能为力,可靠度较差 。 常见的校验方法还有多重校验、海明校验和 crc 校验等。多重校验采用多个 校验位检测校验每一组数据中的每一位,具有相当高的可靠性,但由于检验位占 据太多的数据流位置 ,因而通信设备利用率很低。海明校验是奇偶校验与多重 校验的折中,通过在数据流中插人一定数量的校验位,通过采取编码、译码与纠 错等措施保证通信可靠性,这种方法实现过程复杂,且不能保证实现高可靠性通 信。crc(cyclic redundancy check) 循环冗余校验技术可为 mcs-51 单片机系统 实施高可靠通信设计提供技术支持。crc 转换子程序流程图如图 4.3 所示。 武汉工程大学邮电与信息工程学院(论文) 11 crc开始 crc余数赋初值 余数低字节异或进一字节新数据 crc余数右移1位,最左位添0 移出位=1? crc余数同反序多项式模减 移位够8次? 所有数据处理完? 得到crc校验值 y y y n n n 图图 4.3 crc 转换子程序流程图转换子程序流程图 4.3 mcs-51 单片机串行口结构与数据发送单片机串行口结构与数据发送 mcs-51 单片机的串行口是一个全双工串行口,在结构上它由两个物理上独 立的接收和发送缓冲器 sbuf( 共用一个逻辑地址 99h)、一个串行口控制寄存器 ( scon)、由定时器 ti 构成的波特率发生器 、移位寄存器等部件组成的通用异 步收发器 (uart),如图 4.4 所示。 武汉工程大学邮电与信息工程学院(论文) 12 发送缓冲器(99h) 串行 口控 制寄 存器 =1 接收控制器 移位寄存器 发生控制器 门 波特率发 生器 t1 a 接收缓冲器(99h) 串行口 中断 txd rxd ti ri scon 图图 4.4 单片机串行口结构图单片机串行口结构图 串行口控制寄存器的主要功能是选择串行口的通信方式、发送和接收控制及 串行口通信状态的指示。scon 作为特殊功能寄存器之一,它占用内部 98h 地址, 可以进行位寻址。该寄存器各位意义如表 4.2 所示。 表表 4.2 寄存器各位意义寄存器各位意义 scon9fh9dh9ch9bh9ah99h98h 98hsm0/fesm1sm2rentb btr bri 1.1.串行工作方式选择位串行工作方式选择位 (sm0(sm0、sm1sm1 ) ) scon 寄存器中的 sm0 和 sm1 位的不同编码决定串行口的不同工作方式, 如表 4.3 所示。 表表 4.3 sm0 和和 sm1 串口工作方式串口工作方式 sm0sm1工作方式功能波特率 00方式 08 位移位寄存器方式 /12 osc f 01方式 110 位 uart可变 10方式 211 位 uart /64、/32 osc f osc f 11方式 311 位 uart可变 武汉工程大学邮电与信息工程学院(论文) 13 (1) 方式 0 为 8 位移位寄存器方式。该方式用于 i/o 口扩展。在这种方式下, rxd 端可以作为串行数据的输出和输入端,txd 按/12 的速率输出同步移 osc f 位脉冲。在同步移位脉冲作用下驱动外接的移位寄存器,可以将该串行口扩展为 并行输出口或并行输入口。该方式以 8 位数据为一帧,没有起始位和停止位。 这种串行口扩展 i/o 口方式,可节省单片机本身的 i/o 口资源。 (2 ) 方式 1 为 10 位 uart 方式。在这种方式下,串行口按串行通信字符格 式在发送的 8 位数据前嵌入一个起始位,在 8 位数据后嵌入一个停止位,10 位作 为一帧发送。波特率可按要求设定。接收方以同样方式和波特率接收数据。 (3) 方式 2 为 11 位 uart 方式。在这种方式下,tb8 作为发送的第 9 位数 据,8 位数据和第 9 位 tb8 与起始位和停止位,共 11 位构成一帧。发送的第 9 位数据 tb 8 是发送 8 位( d0d7 )数据的附加信息位, 在双机通信时它可以 代表数据的奇偶性,在多机通信时它可以表明所发的 8 位数据(d0d7)是地址信 息还是数据信息。第 9 位作为附加信息位与 sm 2 ( 多机通信控制位 ) 配合, 完成多个分机的寻址。第九位数据 tb8 在发送前由程序设定。 (4) 方式 3 与方式 2 类似。它们之间的区别在于方式 3 波特率可变, 更适用 于要求以某一波特率进行多机通信的场合。 2.2.允许接收控制位允许接收控制位 renren 通信的双方在通信前由软件将该位置 1,允许接收。该位清零时禁止接收。 3.3.发送第发送第 9 9 位位 tb8tb8 该位是工作在方式 2 和方式 3 时要发送的第 9 位数据,根据需要由软件置位 或清零。在主从式多机通信时,该位作为标志位,标志所发数据是地址帧(tb 8 1)还是数据帧(tb 8 0),而由分机进行识别接收。在双机通信时,该位也可 当做附加奇偶校验位。 4.4. 接收第接收第 9 9 位位 rbrb 8 8 该位是方式 2 和方式 3 时接收到的第 9 位数据。在方式 1 中,如果接收 方 sm 2 0,则 rb 8 是接收到的停止位。方式 0,不使用 rb 8。 5 5发送完毕标志位发送完毕标志位 titi 该位是发送完毕标志。在方式 0,发送完第 8 位后,该位由硬件自动置 1。 在其他方式时,该位在串行发送有效停止位时置 1。该位是由硬件自动置位,由 武汉工程大学邮电与信息工程学院(论文) 14 软件清零。该位置位后作为发送完毕申请串行口中断标志, 也可作为软件查询 标志。 6 6接收完毕标志位接收完毕标志位 riri 该位是接收完毕标志。在方式 0 中,接收方接收完第 9 位数据后由硬件将 ri 置位;在其他方式中,接收方在接收到有效停止位时将该位置位,由软件清零。 该位置位后作为接收完毕申请串行口中断标志。也可作为软件查询标志。scon 所有位在复位时被清零。 对应的发送子程序流程图如图 4.5 所示。 开始发送数据 a/d转换数据送至p1口,点亮led 发送完了吗? 清除ti中断标志,发送crc-8编码 发送完了吗? 一帧数据发送完成 以串行方式将a/d转换数据发送出去 y y n n 图图 4.5 子程序流程图子程序流程图 4.4 仿真代码仿真代码 由数据采集、crc 编码、发送三个子程序构成本系统的全部程序,总程序流 程图如图 4.6 所示。 武汉工程大学邮电与信息工程学院(论文) 15 程序初始化 采集数据 采集好了吗? 调用crc-8编码子 程序 crc-8校验码 编好了吗? 调用发送子程序 发送完了吗? 结束 y y y n n n 图图 4.6 总程序流程图总程序流程图 根据流程图,编写了相应的代码如下。 org 0000h ;初始化程序 sjmp start org 0013h ajmp intr1 start: setb it1 ;int1 设置为边沿触发 setb ea ;cpu 开中断 setb ex1 ;开外部中断 1 mov dptr,#0fef8h ;指向 0809 的 in0 通道 movx dptr,a ;启动 a/d 转换 wait:sjmp wait ;等待中断 intr1:movx a, dptr ;将转换结果存入 a 中 武汉工程大学邮电与信息工程学院(论文) 16 mov 42h,a acall crc8 mov a,b mov 43h,a acall send movx dptr,a ;启动 a/d 转换 reti ;中断返回 crc8: push 00h push acc mov r0,#08 ; 设置 crc-8 校验码的位数 xrl b,a ; 将 a 与 b 异或,结果存入 b 中 lp1: clr c ; c 清零,用于最高位置 0 mov a,b rrc a ;将 a 的内容带进位循环右移一位 mov b,a jnc lp2 ; 如果 c 不为 0,则跳至 lp2 xrl b,#8ch ; 将 b 中内容与 crc 多项式异或 lp2: djnz r0,lp1 ; 循环八次 pop acc pop 00h ret send: mov scon,#00h ;设置串行口工作方式为方式 0 mov a,42h ;发送 a/d 转换数据 mov p1,a mov sbuf,a wait2: jnb ti,wait2 clr ti mov a,43h ;发送 a/d 转换数据的 crc-8 校验码 mov p1,a 武汉工程大学邮电与信息工程学院(论文) 17 mov sbuf,a wait1: jnb ti,wait1 clr ti reti end 武汉工程大学邮电与信息工程学院(论文) 18 第第 5 章章 系统调试系统调试 5.1 系统软件调试系统软件调试 在本设计中,采用的是汇编语言进行编程,所以在keil uvision2软件环境中 进行程序调试。在这个过程中需要解决的问题是找出程序中的错误和生成.hex 文件。用keil uvision2进行编译的步骤如下: 首先,打开keil uvision2软件,在该编译环境中新建一个sheji.asm文件,输 入程序并保存:然后,新建一个工程文件,命名为sheji.uv2后单击确定,在紧接 这会出现如图5.1 的界面。选择我们用到得intel中的80c51后单击确认。 图图5.1 新建一个工程文件新建一个工程文件 最后就是加载源程序sheji.asm,加载后进行编译,编译的主要作用是查找 程序中的错误,把错误修改好的程序再次进行编译生成.hex文件,具体操作如下。 左击界面上的target,选择“options for target”后会出现图5.2的界面,在出现 的对话框中选择output,选择create hex fi项,这样就会生成一个sheji.hex文件, 这样就完成的系统的软件调试。 武汉工程大学邮电与信息工程学院(论文) 19 图图 5.2 选择选择 target 选项选项 5.2 系统仿真调试系统仿真调试 设计要求用 proteus 软件进行了系统仿真。proteus 嵌入式系统仿真与开发平 台由英国 labcenter 公司开发,是目前世界上最先进最完整的嵌入式系统设计与 仿真平台。proteus 软件可以实现数字电路、模拟电路及微控制器系统与外设的混 合电路系统的电路仿真、软件仿真、系统协同仿真和 pcb 设计等全部功能。 按照设计在 proteus isis 中放置连线完毕后,编译元器件单片机将软件调试 生成的 sheji.hex 文件选为单片机 mcs-51 的 program file,如图 5.3 所示。 武汉工程大学邮电与信息工程学院(论文) 20 图图5.3 编辑元件属性编辑元件属性 在最初设计程序时,经过调试发现如下几个问题: (1) 数据采集不连续,即采集完一次数据后adc0809就停止工作了。 (2) 从rxd(p3.0)引脚没有串行数据发送出来。 经过分析发现,数据采集不连续是因为数据送到 a 后没有再次启动 adc0809,只要在数据处理完后加一条启动指令 movx dptr,a 再中断返回 就解决了问题。串行接口在工作方式 0 下,发送完 8 位数据后,由硬件将 ti 标 志置 1.再次发送数据之间必须由软件将 ti 清 0,在刚开始编写的程序中,由于没 有用软件将 ti 清 0,所以 rxd 口没有串行数据发送出来,在“mov sbuf,a” 后加一条“clr ti”指令即可。 5.3 数据测试与误差分析数据测试与误差分析 设置模拟信号输入为 0.02v 恒定电压时,其对应的编码为 00000001b,相对 应的 crc-8 编码则为 00110001b。对于数据码流 g(x)0000000100110001,用多 项式 q(x)= 除,可除尽,故此 crc-8 码是一个正确的编码。此时 854 1xxx 从串口输出的编码 00000001 对应的电压为 v=1 0.0196=0.0196v,与系统给定的 武汉工程大学邮电与信息工程学院(论文) 21 电压相差 0.0004v。对应波形如图 5.4 所示。 图图 5.4 0.02v 时输出波形图时输出波形图 设置模拟信号输入为 5v 恒定电压时,其对应的编码为 111111111b,相对应 的 crc-8 编码则为 10101100b。对于数据码流 g(x)1111111110101100,用多项 式 q(x)= 除,可除尽,故此 crc-8 码也是一个正确的编码。 854 1xxx 此时从串口输出的编码 11111111 对应的电压为 v=255 0.0196=4.998v,与 系统给定的电压相差 0.002v。对应波形如图 5.5 所示。 图图 5.5 恒定恒定 5v 时输出波形图时输出波形图 武汉工程大学邮电与信息工程学院(论文) 22 设置模拟信号输入为峰值 5v,频率 50hz 的正弦信号时,在某一时刻其对应 的编码为 10110001b,相对应的 crc-8 编码则为 10001110b。对于数据码流 g(x) 1011000110001110,用多项式 q(x)= 除,可除尽,故此 crc-8 码 854 1xxx 也是一个正确的编码。 此时从串口输出的编码 101

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论