***大 ***大 学 本 科 毕 业 论 文科 学 专 年 姓目:单片机串行通信协议设计 院:工学院 业:通信工程 级:2009 级 名:***指导老师:*** 指导老师:摘 要本文介绍了 89C51 单片机的发展历史和简单介绍,并展望了它们的前景。 着重介绍了单片机串行接术,指出了它们的重要性并阐述了其实现原理。根 据串行通讯原理结合 RS232 串口设计了串行通讯协议,利用汇编语言为基础,编 写了一个基于 RS232 串口的通信程序,实现了单片机-PC 机的双机通讯。在硬件 上测试完好,测试表明,在基于设计的通信协议上的单片机-PC 机的通讯状况良 好。关键词: 关键词:89C51 单片机;串行通讯原理;RS232 串口;串行通讯协议IAbstractThis article describes the development and give a brief history of the 89C51 microcontroller and look forward to their future.Focused on single-chip serial intece technology, pointed out the importance of them and described the principles of its realization. Serial communication in accordance with the principle of combining the design of a serial RS232 serial Communication protocol, Based on the use of assembly language, the preparation of a RS232 serial communication based on the procedures, to achieve a single-chip dual-PC machine communication. Well-tested in hardware, testing showed that the single-chip-PC communications machine based on the design of communication protocols in good condition.Key words:89C51 microcontroller,; principle of serial communication,; RS232 serial port,;serial communication protocolII目 录摘 要 ................................................................................................................................................ I Abstract ............................................................................................................................................ II 目 录 .............................................................................................................................................. III 绪 论 ................................................................................................................................................ 1 1.单片机概述................................................................................................................................... 2 1.1 单片机的发展历史 ......................................................................................................... 2 1.2 单片机的特点................................................................................................................. 3 1.3 单片机的应用.................................................................................................................... 3 1.4 AT89C51 单片机简介 .................................................................................................... 5 2.单片机的串行接口..................................................................................................................... 11 2.1 基本概念....................................................................................................................... 11 2.2 串行口和控制寄存器 ................................................................................................... 12 3.串行通讯技术及硬件基本组成 ................................................................................................. 15 3.1 硬件的基本组成.............................................................................................................. 15 3.2 串行通信原理.................................................................................................................. 15 3.3 双机通信连接方法 .......................................................................................................... 16 4.软件的设计和调整过程............................................................................................................. 17 4.1 程序流程图................................................................................................................... 17 4.2 通信协议....................................................................................................................... 18 4.2.1 串行口控制寄存器 SCON 的设置 ..................................................................... 18 4.2.2 定时器的初始化设置 ....................................................................................... 18 4.2.3 波特率计算 ....................................................................................................... 19 4.3 程序演示.......................................................................................................................... 19 总 结 .............................................................................................................................................. 20 参考文献......................................................................................................................................... 21 致 谢 .............................................................................................................................................. 22III绪 论在工业监测及自动控制系统种, 串行通信是微机与单片机之间进行数据交换 的主要方式。而在现代社会中,短距离的双机通信,最常用的就是串口通信。目 前存在的一些通信协议(如 RS-232,RS-484 等) ,仅对通信线的电气特性进行 了约定, 并没有涉及通信内容的格式, 类型等信息。 针对这一现象, 我对于 RS-232 接口设计了比较规范的串行通信协议, 实现了上位单片机与下位计算机的串行通 信。通过实验室测试表明该串行通信协议是可靠可行的。 单片微型计算机是微型计算机发展中的一个重要分支,是把构成一台微型 计算机的主要部件如中央处理器(CPU)、 存储器(RAM/ROM)和各种功能 I/O 接口集 成在一块芯片上的单芯片微型计算机(Single Chip Micro Computer),简称单片 机.由于它的结构与指令功能都是按工业控制要求设计的。是把构成一台微型计 算机的主要部件如中央处理器(CPU)、 存储器(RAM/ROM)和各种功能 I/O 接口集成 在一块芯片上的单芯片微型计算机(Single Chip Micro Computer),简称单片机. 由于它的结构与指令功能都是按工业控制要求设计的,且近年来单片机着力扩展 了各种控制功能如 A/D、 等,因此我们更多时候称其为一个单片形态的微控制 PWM 器 可灵活地组装成各种智能控制装置,并能有针对性设计成专用系统,解决从 简单到复杂的各种需要,实现最佳的性价比。特别是单片机与传统机械产品相结 合,使原有机械产品的结构简化、控制智能化。如数控机床就是典型实例。近年 来,单片机发展极快,其产量占微机产量的 70%以上控制线和地线进行连接,数据 在数据线上一位一位地进行传输,每一位数据都占据一个固定的时间长度。在计 算机系统中,每个字符一般使用一个 8 位二进制代码表示。在数据通信中11.单片机概述 1.单片机概述单片机也被称作“单片微型计算机”、 “微控制器”、 “嵌入式微控制器”。 单片机一词最初是源于“Single Chip Microcomputer”,简称 SCM。随着 SCM 在 技术上、体系结构上不断扩展其控制功能,单片机已不能用“单片微型计算机” 来表达其内涵。国际上逐渐采用“MCU”(Micro Controller Unit)来代替,形成 了单片机界的、 最终统一的名词。 为了与国际接轨, 以后应将中文“单片机” 一词和“MCU”唯一对应解释。在国内因为“单片机”一词已约定俗成,故而可 继续沿用。1.1 单片机的发展历史如果将 8 位单片机的推出作为起点, 那么单片机的发展历史大致可以分为以 下几个阶段: 第一阶段(1976—1978) :单片机的探索阶段。以 Intel 公司的 MCS-48 为代 表。MCS-48 的推出是在工控领域的探索,参与这一探索的公司还有 Motorola、 Zilog 等。都取得了满意的效果。这就是 SCM 的诞生年代,“单片机”一词即由 此而来。 第二阶段(1978—1982) :单片机的完善阶段。Intel 公司在 MCS-48 基础上 推出了完善的、典型的单片机系列 MCS-51。它在以下几个方面奠定了典型的通 用总线.完善的外部总线 位单片机的总线 位数据总线 位地址总线、控制总线及具有多机通信功能的串行通信接口。 2.CPU 外围功能单元的集中管理模式。 3.体现工控特性的地址空间及位操作方式。 4.指令系统趋于丰富和完善,并且增加了许多突出控制功能的指令。 第三阶段 (1982—1990)8 位单片机的巩固发展及 16 位单片机的推出阶段, : 也是单片机向微控制器发展的阶段。Intel 公司推出的 MCS-96 系列单片机,将 一些用于测控系统的模数转换器、程序运行器、脉宽调制器等纳入片中,体 现了单片机的微控制器特征。 第四阶段(1990—) :微控制器的全面发展阶段。随着单片机在各个领域全2面、深入地发展和应用,出现了高速、大寻址范围、强运算能力的 8 位/16 位/32 位通用型单片机,以及小型廉价的专用型单片机。目前,单片机正朝着高性能和 多品种方向发展,今后单片机的发展趋势将是进一步向着 CMOS 化、低功耗化、 低电压化、低噪声与高可靠性、大容量化、高性能化、小容量、低价格化、外围 电内装化和串行扩展技术。1.2 单片机的特点单片机主要有如下特点: 1.有优异的性能价格比。 2.集成度高、体积小、有很高的可靠性。单片机把各功能部件集成在一块芯 片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠 性和抗干扰能力。另外,其体积小,对于强易于采取屏蔽措施,适合在 恶劣 下工作。3.制功能强。为了满足工业控制的要求,一般单片机的指令系统中均有极丰 富的转移指令、I/O 口的逻辑操作以及位处理功能。单片机的逻辑控制功能及运 行速度均高于同一档次的微机。 4.低功耗、低电压,便于生产便携式产品。 5. 外 部 总 线C ( Inter-Integrated Circuit ) 及 SPI(Serial Peripheral Intece)等串行总线方式,进一步缩小了体积,简化了结构。 6.单片机的系统扩展和系统配置较典型、规范,容易构成各种规模的应用系 统。1.3 单片机的应用由于单片机具有显著的优点,它已成为科技领域的有力工具,人类生活的得 力助手。它的应用遍及各个领域,主要表现在以下几个方面: 1.单片机在智能仪表中的应用 2.单片机在机电一体化中的应用 3.单片机在实时控制中的应用 4.单片机在分布式多机系统中的应用 5.单片机在人类生活中的应用3单片机已成为计算机发展和应用的一个重要方面,另一方面,单片机应用的 重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前 必须由模拟电或数字电实现的大部分功能,现在已能通过单片机来实现了。 这种用软件代替硬件的控制技术也称为微控制技术, 是对传统控制技术的一次革 命。 A:由单片机组成控制器的结构和特点: 单片微型计算机是微型计算机发展中的一个重要分支, 是把构成一台微型计 算机的主要部件如中央处理器(CPU)、 存储器(RAM/ROM)和各种功能 I/O 接口集成 在一块芯片上的单芯片微型计算机(Single Chip Micro Computer),简称单片机. 由于它的结构与指令功能都是按工业控制要求设计的,且近年来单片机着力扩展 了各种控制功能如 A/D、 等,因此我们更多时候称其为一个单片形态的微控制 PWM 器(Single Chip Micro Controller),或直接称其为微控制器(Micro Controller)。 B:用单片机组成的微机控制系统具有以下特点: 1.受集成度,片内存储器容量较小,一般片内 ROM 小于 4—8K 字节,片内 RAM 小于 256 字节;但可在外部进行扩展,如 MCS—51 系列单片机的片外可擦可编 程只读存储器(EPROM)、静态随机存储器(SRAM)可分别扩展至 64K 字节。 2.可靠性高。 单片机芯片本身是按工业控制要求设计的,其抗工业噪声 的能力优于一般通用 CPU;程序指令及其、表格固化在 ROM 中不易;常用 信号通道均在一个芯片内,故可靠性高。 3.易扩展。 片内具有计算机正常运行所必须的部件,芯片外部有许多供扩展 用的总线及并行、串行输入/输出端口,很容易构成各种规模的微机控制系统。 4.控制功能强。为了满足工业控制要求,单片机的指令系统中有极丰富的条 件分支转移指令、I/O 口的逻辑操作以及位处理功能。一般来说,单片机的逻辑 控制功能及运行速度均高于同一档次的微处理器。 5.一般的单片机内无程序或系统管理软件,软件开发工作量大。 但近年 来已开始出现了片内固化有 BASIC 解释程序及 FROTH 操作系统的单片机,使单片 机系统的开发提高了一个新水平。 此外,单片机成本低、集成度高、控制功能多,可灵活地组装成各种智能控制4装置,并能有针对性设计成专用系统,解决从简单到复杂的各种需要,实现最佳的 性价比。特别是单片机与传统机械产品相结合,使原有机械产品的结构简化、控 制智能化。如数控机床就是典型实例。近年来,单片机发展极快,其产量占微机产 量的 70%以上。 目前, 至少有 50 个系列 400 余种机型, 性能和结构各不相同,INTEL、 MOTOROLA、ZILCG 等公司都有系列单片微型计算机。国内普及的几乎都是 INTEL 公司的产品。1.4 AT89C51 单片机简介AT89C51 是美国 ATMEL 公司生产的低电压,高性能的 CMOS8 位单片机片内 4Kbytes 的可反复擦写的只读程序存储器(PEROM)和 128bytes 的随机存储器 (RAM) 器件采用 ATMEL 公司的高密度、 , 非易失存储技术生产, 兼容标准 MCS-51 指令系统,片内置通用 8 位中央处理器(CPU)和 Flash 存储单元,功能强大。 AT89C51 单片机可为你提供许多高性价的应用场合,可灵活的应用于各种控制领 域。图 1.1 主要性能参数:单片机 AT89C51·与 MCS-51 产品指令系统的全兼容 ·4k 字节可重擦写 Flash 闪速存储器 ·1000 次可擦写周期 ·全静态操作:0Hz-24MHz ·加密程序存储器 ·128×8 字节内部 RAM5·32 个可编程 I/O 口线 个中断源 ·可编程串行 UART 通道 ·低功耗空闲和掉电模式 AT89C51 功能特性描述: AT89C51 提供以下标准功能: 字节 Flash 闪速存储器, 字节内部 RAM, 4k 128 32 个 I/O 口线 位定时/计数器,一个 5 向量中断结构,一个全双工串 行通信口, 片内震荡器及时钟电。 同时, AT89C51 可降至 0Hz 的静态逻辑操作, 并支持两种软件的可选的节电工作模式。 空闲方式停止 CPU 的工作, 但允许 RAM, 定时/计数器,窜行通信口及中断系统继续工作。掉电方式保存 RAM 中的内容, 但震荡器停止工作并所有部件工作直到下一个硬件复位。 (1) AT89C51 引脚功能说明:·Vcc:电源电压 ·GND:地 ·P0 口:PO 口是一组 8 位漏极开行双向 I/O 口,也既地址/数据总线复用 口。可作为输出口使用时,每位可吸收电流的方式驱动 8 个 TTL 逻辑电,对端 口写“1”可作为高输入输入端用。在访问外部数据存储器时,这组口线分 时转换地址 (低 8 位) 和数据总线复用, 在访问期间激活内部上拉电阻。 Flash 在 编程时,PO 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求 接上拉电阻。 ·P1 口:P1 口是一个内部上拉电阻的 8 位双向 I/O 口,P1 的输入缓冲级可 驱动(吸收或输出电流)4 个 TTL 逻辑门电。对端口写“1”,通过内部的上 拉电阻把端口拉到高电平,此时可作输出口。作输入口时,因为内部存在上拉电 阻, 某个引脚被外部信号拉低时输出一个电流 (I) Flash 编程和程序校验期间, 。 P1 口接收 8 位地址。 ·P2 口:P2 口是一个带有内部上拉电阻的 8 位双向 I/O 口,P2 的输入缓冲 极可以驱动(输入或输出电流)4 个 TTL 逻辑门电。对端口“1”,通过内部 的上拉电阻把端口拉到高电平,此时和作为输出口,作输出口时,因为存在内部 上拉电阻,某个引脚被外部信号拉低时会输出一个电流。在访问外部存储器或 1 位地址的外部数据存储器(例如执行 MOVX@DPTR 指令)时,P2 口送出高 8 位地6址数据。在访问 8 位地址的外部数据存储器(如执行 MOVX@RI 指令)时,P2 口 线的内容(也既特殊功能寄存器(SFR)区中 R2 寄存器的内容) ,在整个访问期 间不改变。Flash 编程或校验时,P2 亦接收高地址和其他控制信号。 ·P3 口:P3 口是一组带有内部上拉电阻的 8 位双向 I/O 口, ,P1 的输入缓 冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电。对 P3 口写入“1”时,它 们被内部上拉电阻拉高并可作为输出端口。作输出端口时,被外部拉低的 P3 口 将用上拉电阻输出电流。P3 口除可作为一般的 I/O 口线外,更重要的用途是它 的第二功能,如表 1.2 所示: P3 口还接收一些用于 Flas 闪速存储器编程和程序校验的控制信号图 1.2AT89C51 方框图·RST:复位输出。当震荡器工作时,RST 引脚出现两个机器周期以上高电7平使机器复位。 ALE ·ALE/ PROG 当访问外部程序存储器或数据存储器时, (地址锁存允许) 输出脉冲用于锁存地址的低 8 位字节,即使不访问外部字节,ALE 仍时钟震荡频 率的 1/6 输出固定的正脉冲信号,因此它可对外输出时钟脉冲或用于定时目的。 要注意的是:每次访问外部存储器时将跳过一个 ALE 脉冲。对 Flash 存储器编程 期间,该引脚还要输入编程脉冲( PROG ) 。如有必要,可通过对特殊功能寄存 器(SFR)区中的 8EH 单元的 D0 位,可 ALE 操作。该位后,只有一 条 MOVX 和 MOVC 指令可激活。此外,此引脚会被微弱拉高,单片机执行外部程序 时,应该置 ALE 无效。 · PSEN : 程序存入允许 PSEN ) ( 输出的是外部程序存储器的读选通信号, 当表 1.3 AT89C51 端口 AT89C51 由外部程序取指令(或数据)时,每个机器周期两次 PSEN 有效,既输 出两个脉冲。在此期间,当访问外部数据存储器,这两次有效的 PSEN 信号不出 现。 ·EA/VPP:外部访问允许。欲使 CPU 仅访问外部程序存储器(地址为 0000H--FFFFH) ,EA 端必须保持低电平(接地) 。要注意的是:如果加密位 LB1 被编程,复位时内部会锁存 EA 端状态。Flash 存储器编程时,该引脚加上+12V 的编程允许电源 Vpp,当然这必须是该器件是使用 12V 的编程电压 Vpp。 ·XTAL1:震荡器反向放大器及内部时钟的输入端。 ·XAAL2:震荡器反向放大器的输出端。 ·时钟震荡器:AT89C51 中有一个构成内部震荡器的高增益反向放大器,引 脚 XTAL1 和 XTAL2 分别是该放大器的输入端和输出端。 这个放大器与作为反馈元 件的片外石英或陶瓷震荡器一起构成自激震荡器震荡电如图。外接石英晶体8(或陶瓷震荡器)及电容 C1、C2 接在放大器的震荡回中构成并联震荡电。 对外接电容 C1、C2 虽然没有非常严格的要求,但电容的大小会轻微影响震荡频 率的高低、震荡工作的稳定性、起震的难易程序及温度稳定性,如果使用石英晶 体,推荐使用 30pF±10pF,而如果使用陶瓷谐振器选择 40pF±10pF。用户 还可以采用外部时钟,采用外部时钟如图所示。在这种情况下,外部时钟脉冲接 到 XTAL1 端,既内部时钟发生器的输入端,XTAL2 悬空。图 1.4内部震荡电图 1.5外部震荡电由于外部时钟信号是通过一个 2 分频的触发器后作为内部时钟信号的所以外部 寄存器 内容 寄存器 内容 PC 0000H TMOD 00H ACC 00H TCOM 00H B 00H TH0 00H PSW 00H TLO 00H SP 07H TH1 00H0 DPTR 0000H TH1 00H P1—P3 0FFH SCON 00H IP 00000 SBUF 不定 IE 000000 PCON 000000 表 1.6 AT89C51 寄存器 时钟的占空比没有特殊要求, 但最小高电平持续的时间和最大低电平持续的时间 应符合产品技术条件的要求。 ·Flash 闪速存储器的编程: AT89C51 单片机内部有 4K 字节的 Flash PEROM,这个 Flash 存储存储阵列出厂时 已处于擦除状态 (既所有存储单元的内容均为 FFH) 用户随时可对其进行编程。 , 程序接收高电压(+12V)或低电压(Vcc)的允许编程信号。低电压编程模式,9适用与用户在线编程系统。而高电平模式可与通用 EPROM 编程程序兼容。 ·编程方法: 编程前需设置好地址、数据及控制信号,编程单元的地址就、加在 P1 口和 P2 口的 P2.0—P2.3 11 位地址范围为 0000H—0FFFH)数据从 P0 口输入, ( , 引脚 P2.6、 P2.7 和 P3.6、 P3.7 的电平设置见表。 PSEN 为低电平, 保持高电平, RST EA/Vp 引 脚是编程电源的输入端, 按要求加上编程电压, ALE/PROG 引脚输入编程脉冲 (负 脉冲)编程时可采用 4—20MHz 的时钟震荡器 AT89C51 的编程方法如下:1.0 在 地址线上加上要编程单元的地址信号。 1.在数据线上加上要写入的数据字节。 2.激活相应的控制信号。 3.在高电压编程时,将 EA/Vpp 端加上+1V 编程电压。 4.每对 Flash 存储阵列写入一个字节,加上一个 ALE/PROG 编程脉冲。 (2) AT89C51 控制信号RST/VPD(9 脚)复位信号时钟电工作后,在引脚上出现两个机器周期的 高电平,芯片内部进行初始复位,复位后片内存储器的状态如表所示,P1—P3 口输出高电平,初始值 07H 写入堆栈指针 SP、清 0 程序计数器 PC 和其余特殊功 能寄存器,但始终不影响片内 RAM 状态,只要该引脚保持高电平,89C51 将循环 复位, ,RAT/VPD 从高电平到低电平单片机将从 0 号单元开始执行程序,另外该 引脚还具有复用功能,只要将 VPD 接+5V 备用电源,一旦 Vcc 电位突然降低或断 电,能片内 RAM 中的信息不丢失,恢复电后能正常工作。 AT89C81 通常采用上电自动复位和开关手动复位,我们采用的是手动复位开 关如图所示:10图 1.7手动开关手动开关未按下之前, 电容正极处于家电状态, 当按键按下去后, 与 GND VCC 导通,电容放电,从而实现放电。2.单片机的串行接口 2.单片机的串行接口MCS-51 单片机内部有一个 全双工的串行接收和发射缓冲器(SBUFF) ,这两 个在物理上的接收发射器,即可以接收也可以发射数据,但接收缓冲器只可 以读出不能写入,而发送缓冲器只能写入不能读出,它们的地址是 99H。这个通 信口即可以用于网络通信,亦可以实现串行异步通信,还可以构成同步移位寄存 器使用。如果在串行口的输入输出引脚上加上电平转换器,就可以方便的构成标 准的 RS-232 接口。下面我们分别介绍。2.1 基本概念数据通信的传输方式:常用于数据通信的传输方式有单工、半双工、全双 工和工方式。 单工方式: 数据仅按一个固定的方向传送。 因为这种传输方式的用途有限, 常用于串行口的打印数据传输与简单系统间的数据采集。11双工方式:数据可以实现双向传送,但不能同时进行,实际的应用采用某 种协议实现收发开关转换。 全双工方式:允许双方同时进行数据双向传送,但一般全双工电的线 和设备比较复杂。 多工方式:以上三种传输方式都是同一线传输一种频率信号,为了充分 的利用线资源,可通过使用多复用器或多集线器,采用频分、时分、或码 分复用技术,即可实现在同一线上资源共享功能,我们称之为多工传输方式。 串行通信的两种通信形式 A. 异步通信 在这种通信方式中, 接收器和发射器有各自的时钟, 他们的工作同步的, 异步通信用一帧来表示一个字符,其内容如下:一个起始位,紧接着是若干个数 据位,图 是传输 45H 的数据格式。 B.同步通信 同步通信格式中,发送器和接收器由同一个时钟源控制,为了克服在异步传 输中,每传输一帧字符都必须加上起始位和停止位,占用了传输时间,在要求传 送的数据量较大的 C. 串行数据通信的传输速率: 串行数据传输率有两个概念,既美秒传送的位数 bps(Bit per second)和 美秒符号数-波特率(Band rate),在具有调治解调器的通信中,波特率与调 治速率有关。2.2 串行口和控制寄存器MCS-51 单片机串行口专用寄存器结构如图所示。SBUF 为串行口的收发缓冲 器,它是一个可寻址的专用寄存器,其中包含了接收器和发射器寄存器,可以实 现全双工通信。但这两个寄存器具有同一地址(99H) 。MCS-51 的串行数据传输 很简单,只要向缓冲器写入数据就可发送数据。而从接收缓冲器读出数据既可接 收数据。12此外,接收缓冲器前还加上一级输入移位寄存器,MCS-51 这种结构的目的 在于接收数据时避免发生重叠现象,文献称这种结构为双缓冲结构。而发送数据 就不需要这样设计,因为发送时,CPU 是主动的,不可能出现这种情况。 A:串行通信寄存器 在上一节我们已经分析了 SCON 控制寄存器, 它是一个可寻址的专用寄存器, 用于串行数据通信的控制,单元地址是 98H,其结构格式如下:1寄存器 SCON 结构 SCON D7 SM0 位地址 9FH D6 SM1 9EH D5 SM2 8DH D4 REN 9CH D3 TB8 9BH D2 RB8 9AH D1 TI 99H D0 RI 98H表 2.1SCON 寄存器结构下面我们对个控制位功能介绍如下: (1)SM0、SM1:串行口工作方式控制位 SMO 0 0 1 fosc/32 1 1 方式 3 9 位 UART, 波特率可变 (T1 溢出率/ n) SM1 0 1 0 工作方式 方式 0 方式 1 方式 2 功能说明 移位寄存器方式(用于 I/O 扩展) 8 位 UART, 波特率可变 (T1 溢出率/ n) 9 位 UART,波特率为 fosc/64 或(2)SM2:多机通信控制位 多机通信是工作方式 2 和方式 3,SM2 位主要用于方式 2 和方式 3。接收 状态, 当串行口工作方式 2 或 3, 以及 SM2=1 时, 只有当接收到第 9 位数据 (RB8)13为 1 时,才把接收的前 8 位数据送入 SBUF,且置位 RI 发出中断申请,否则会将 收到的数据放弃。当 SM2=0 时,只有在接收到有效停止位时才启动 RI,若没接 收到有效停止位,则 RI 清“0”。在方式 0 中 SM2 应该为“0”。 REN:允许接收控制位。由软件置“1”时,允许接收;软件置“0”时,不 许接收。 TB8: 在方式 3 和方式 3 中要发送的第 9 位数据, 需要时用软件置位和清零。 TB8: 在方式 2 和方式 3 中是接收到的第 9 位数据。 在方式 1 时, SM2=0, 如 RB8 接收到的停止位。在方式 0 中,不使用 RB8。 TI:发送中断标志。由硬件在方式 0 发送完第 8 位时置“1”,或在其它方 式中串行发送停止位的开始时置“1”。必须由软件清“0”。 RI:接收中断标志。由硬件在方式 0 串行发射第 8 位结束时置“1” B:特殊功能寄存器 PCON PCON:主要是是 CHMOS 型单片机的电源控制而设置的专用寄存器,单元地址 为 87H 其机构格式如下表:PCON 位符号 表 1.2D7 SMODD6D5D4D3 GF1D2 GF0D1 PDD0 IDL特殊功能寄存器 PCON在 CHMOS 型单片机中,除 SMOD 位外其它位均为虚设的,SMOD 是串行波特率 倍增位,当 SMOD=1 时串行口波特率加倍,系统复位默认为 SMOD=0。 C:中断允许寄存器 IE 中断允许寄存器这里重述一下对串行口有影响的位 ES。ES 为串行中断允许 控制位,ES=1 允许串行中断,ES=0,串行中断。 2.2.2 串行口工作方式14串行口具有 4 种工作方式,我从应用和毕业设计的角度,重点讨论方式 1 发送。 串行口定义为方式 1 时传送 1 帧数据为 10 位,其中 1 位起始地址、8 位数 据位 (先低位后高位) 1 位停止位方式 1 的波特率可变, 、 波特率= 2 SMOD / 32 × (T1 的溢出率)符号 位地址 表 2.3EA AFH AEH ADHES ACHET1 ABHEX1 AAHETO A8HEX0 A8H中断允许寄存器3.串行通讯技术及硬件基本组成 3.串行通讯技术及硬件基本组成通常情况下,人们是通过外部设备使用计算机的,但是由于种种原因,外设 往往不能与 CPU 直接相连,它们之间的信息交换需要一个中间环节(或界面) , 我们称之为接口电。接口是 CPU 与的连接部件(电) 。串行接口是计算 机的一种接口标准。在实验和工业应用中,串口是常用的计算机与外部串行设备 之间的数据传输通道,同时,串行接口也可以用来实现短距离的双机通信。串行 通信具有连接简单、使用灵活方便、数据传递可靠等优点。3.1 硬件的基本组成单片机 89C52、11.059M 晶震、30pF 电容、22uf/10V 电容、1K 电阻、MAX232 转换器,DB9 接口,按键。3.2 串行通信原理所谓“串行通信”是指外设和计算机间或者两台计算机之间使用了数据线、 控制线和地线进行连接,数据在数据线上一位一位地进行传输,每一位数据都占 据一个固定的时间长度。在计算机系统中,每个字符一般使用一个 8 位二进制代 码表示。在数据通信中,通常将待传送的每个字符的二进制代码按照由低位到高15位的顺序依次发送的方式成为串行通信。图 3.1 串行通信的示意图3.3 双机通信连接方法对于 DB-9 串口,3 线连接法只使用电缆中的 3 条线,一条作为信号地线, 一条作为发送线,一条作为接收线。在连接这种电缆时需要注意,电缆中的发送 线和接收线需要交叉,也就是说,一台计算机的 RS-232 发送引脚需要和另一台 计算机的 RS-232 发送引脚相连,连接方法见图 3.2 所示。图 3.2 硬件连接图164.软件的设计和调整过程 4.软件的设计和调整过程4.1 程序流程图程序流程图是编写软件的重要前提, 它是在图表上直观的体现拟设计的目的 及过程。也是编译的重要依据,按照流程图一步一步编写程序,下面是我的流程 图;图 4.1 串口程序设计流程图 4.2 程序设计流程174.2 通信协议通信协议是单片机和 PC 机之间通信不可缺少的部分,也是我此次毕业设计 最重要的部分,包括下面几方面的设置;4.2.1 串行口控制寄存器 SCON 的设置串行口控制寄存器的基本情况在前面已经介绍,这里不再重复。根据我们所 做的内容,我们采用了串行工作方式 1,REN 设置为“1”(允许接收) ,综上所 述我们设 SCON 的初始值为 50H,如下表所示:SM0 0 表 4.1SM1 1SM2 0REN 1TB8 0TB8 0TI 0RI 0串行口控制寄存器4.2.2 定时器的初始化设置在定时器为方式 1 时,方式字为:CATEC/ T 0 定时计数器的初始化M1MOT10 表 4.210T0GATE:表示 INT1 不参与控制 C/ T :选择计数/时钟方式 M1MO:选定定时器 1 工作方式 2 所以定时器 TMOD 初始值为 20H184.2.3 波特率计算方式 l 和方式 3 的波特率 方式 1 和方式 3 的移位时钟脉冲由定时器 T1 的溢出率决定,故波特宰由定 时器 T1 的 溢出率与 SMOD 值同时决定,即: 方式 1 和方式 3 的波特率=2SMOD/32·T1 溢出率 其中,溢出率取决于计数速率和定时器的预置值。计数速率与 TMOD 寄存器 中 C/T 的状态有关。当 C/T=0 时,计数速率=fosc/2;当 C/T=1 时,计数 速率取决于外部输入时钟频率。 当定时器 Tl 作波特率发生器使用时, 通常选用可自动装入初值模式(工作方 式 2),在工作方式 2 中,TLl 作为计数用,而自动装入的初值放在 THl 中,设计 数初值为 x,则每过“256 一 x”个机器周期,定时器 T1 就会产生一次溢出。为 了避免因溢出而引起中断,此时应 T1 中断。 系统晶振频率选为 11. 0592MHZ 就是为了使初值为整数, 从而产生精确的波特率。 如果串行通信选用很低的波特率, 可将定时器 Tl 置于工作方式 0 或工作方式 1, 但在这种情况下,T1 溢出时,需用中断服务程序重装初值。中断响应时间和执 行指令时间会使波特率产生一定的误差,可用改变初值的办法加以调整。4.3 程序演示本设计主要是通过 89C52 单片机的串行通信端口 TX(RC7)发送引脚,RX(RC6) 接收引脚,手法信息,把下位机(单片机)的信息通过 RS232 总线传输给上位机 (PC 机) ,上位机借助串口调试软件接手或发送信息给下位机。为了能够在计算 机端看到单片机发出的数据,我们必须借助一个 WINDOWS 软件进行观察,这里我 们主要使用串口调试软件做演示工具, 所谓串口调试软件是指: 1.用于串口调试, 支持常用的 110-25600 波特率,能设置端口参数;2 能以字符或十六进制收发数 据,真正支持中文字符的收发;3.支持文件数据的发送;4.允许设置发送周期, 自动发送数据;5.绿色软件,不需安装。19总 结我所做的是单片机通信协议设计, 从开学初我就开始准备。 毕业设计完成了, 达到了预期的目的。一开始拿到这个题目的时候,真不知道从哪下手,在老师的 指导下,自己找资料、看书,总算完成了。通过这次的毕业设计,使我对单片机 有了更深的认识,从理论和实践上都得到了很大的提高,所以这次任务的完成是 我学到了很多东西。首先,丰富了自己的知识面,学到了以前没能学通的东西, 具体了解了怎样去完成一个电的设计:从流程图、电图、焊接电板、检查 电板、仿真到烧片一整套东西。从毕业设计中,学到了单片机 AT89C51 的内部 结构及其工作原理,了解了时钟电和控制电的工作原理,巩固了汇编语言的 使用能力,提高了自己动手的能力,学到了很多经验,并且提高了自己分析问题 的能力和创新能力,得到了理论联系实际的机会,做出了。使自己在硬件设 计方面树立了信心,为以后从事这方面的工作打好了基础,这也是这次毕业设计 的最大收获。 在一开始接触这个题目的时候,真的很茫然,不知道从哪开始下手,不知道 单片机串行通信协议是干什么的?怎么才能做出来?用什么做?这些问题一个 都不知道。 后来在蔡老师的指导下, 才知道我要怎么开始做。 自己就开始找资料, 了解单片机 89C51、 通信传输的有关知识, 学习时钟电、 控制电的设计原理, 看不懂的时候就去问老师、同学。在这些都搞得比较明白后就开始画设计流程图 和电图,最后用了很长时间才完成自己的通信程序设计,给老师看后,在老师 的帮助下,改正了几处有问题的地方,完成后就开始仿真。但是仿真的时候却又 遇到了麻烦,先是汇编语言的程序错误,Topice52 仿真软件提示我的程序有问 题,程序自身没有通过检验。接着仔细根据提示检查程序上的错误,直到软件仿 真结束。接下来的工作一切还算顺利,在老师还有同学的帮助下,都一一完成。 这次的毕业设计总的来说还是很成功的,自己从中学到很多,也发现了不少 问题,为自己以后的学习、进步打下了不错的基础。20参考文献[1]Micrel Inc. QwikRadio TM UHF ASK Transmitter.newyork.薛晓书.单片微机原理及接术.西安.西安石油大学 2002.3 [4] 黄智伟 朱卫华.单片机与嵌入式系统应用.南京.南华大学.2005.3 [5] 付浩 AT89C51 单片机高速串行输出口设计.淮阴.淮阴师范学院 2004.10 [6]张有德.单片机原理应用与实验.上海:复旦大学出版社,1991 [7]高鹏。Protel 入门与提高。:是、人民邮电出版社,2000 [8]李群,肖看.单片机原理,接口及应用-嵌入式系统技术基础。:大 学出版社,2005 [9].基于 MC5-51 系列单片机原理的应用设计.:国防工业出版社, 2006.521致 谢紧张而忙碌的毕业设计就要结束了,在完成了系统的功能设计后,我感到由 衷的喜悦和自豪。在我做毕业设计期间,许多老师,同学和朋友给我我的关 怀和帮助,在此,我要向他们表示衷心的感谢。 首先,我要感谢学校的老师在毕业设计期间给了我悉心的关怀与帮助,并且 给了我许多关键的,建设性的指导。 这次的毕业设计让我受益匪浅。可以这样说,用计算机来解决繁重而低效的 手工管理工作,计算机发展史上的必然。在理论课的学习中,我掌握了基础课和 专业课的理论知识,也曾经做过一些程序设计的联系和计算机综合试验,但真正 动手设计一个管理软件,还是第一次。在这次的毕业设计中,我曾遇到了许多困 难,而在克服这些困难的过程中,我的各方面的能力又有了很大的提高,使我的 理论知识更好的与实践相结合,增强了专业技能的可实践性。从调研,需求分析 到查找资料,结构设计,详细设计以及调试程序,到最后的写使用说明书,我终 于设计出了一个比较完整的, 周密的, 可使用的聊天系统。 通过这次的毕业设计, 我真正了解了软件工程设计的整个过程,既巩固了以前的理论知识,也为我以后 的工作奠定了良好的基础。 当然,由于时间的短促,我所完成的系统并不是尽善尽美的,还有待进一步 的修改和完善。最后,请允许我再一次向毕业期间帮助过我的老师,同学和 朋友表示最衷心的感谢。22
推荐: