收藏 分享(赏)

(毕业论文)基于单片机的串口通讯设计.doc

上传人:微传9988 文档编号:2448335 上传时间:2018-09-17 格式:DOC 页数:29 大小:471.50KB
下载 相关 举报
(毕业论文)基于单片机的串口通讯设计.doc_第1页
第1页 / 共29页
(毕业论文)基于单片机的串口通讯设计.doc_第2页
第2页 / 共29页
(毕业论文)基于单片机的串口通讯设计.doc_第3页
第3页 / 共29页
(毕业论文)基于单片机的串口通讯设计.doc_第4页
第4页 / 共29页
(毕业论文)基于单片机的串口通讯设计.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

1、 工程训练设计报告题目:基于单片机的串口通讯设计学 院计算机与信息科学学院专 业 自动化 组长 组 员 指导教师 成 绩日 期 2013 年 8 月 25 日摘要:本文设计的是基于单片机串口通讯的发送和接收。本系统的设计主要是以两个 AT89C51 单片机为核心部分,进行数据发送和接收的控制。该系统采用两个 max232 芯片进行电平的转换,同时用 LCD 显示发送和接收的相应的数据,在实际应用中很方便。并且能实现用键盘控制数据发送和接收的启动和停止。关键词:串口通讯,AT89C51 单片机, LCD 显示,键盘控制Abstract: in this paper, the design is

2、based on single chip computer serial communication to send and receive. The design of this system is mainly based on two AT89C51 as the core part, send and receive data control. The system USES two max232 chip level transformation, at the same time with the LCD display to send and receive the corres

3、ponding data, is very convenient in practical application. And can realize the keyboard to control the sending and receiving data to start and stop.Key words:a serial port communication, AT89C51 single-chip microcomputer, LCD display, keyboard control目录前言 21、 串口通讯简介 .22、 总体方案设计 .23、 硬件电路设计 .23.1 单片机

4、主机系统电路设计 .23.2 MAX232 电路设计 23.3 LCD 电路设计 .23.4 单片机与 max232 连接电路的设计 .24、 软件设计 .24.1 主程序设计 .24.2 键盘程序设计 .24.3 发送和接收程序 .24.4 LCD 显示程序设计 25、 系统调试与通信 .25.1 软件调试 .25.2 硬件调试 .25.3 软件、硬件连接调试 26、 总结体会 .27、 源程序 .2前言单片机行业已经有了很久的历史,随着科学技术的进步和社会的发展,单片机行业更加迅速的发展起来。不论在工业还是民也上都有很好的发展和应用,得到大家很好的认可和高度的评价。单片机的通信接口是各台仪

5、表之间或仪表与计算机之间进行信息交换和传输的联络装置。主要有五种类型,串行通信接口、并行通信接口、USB 接口、 现场总线接口以及以太网接口。串行通信按同步方式可分为异步通信和同步通信两种基本通信方式。它是在数字化的基础上用微处理器装备起来,是 计算机技术 与电子仪器相结合的产物。它具有数据存储、运算、 逻辑判断能力,能根据被 测参数的变化自选量程,可自动校正,自动补偿,自 寻故障等,可以做一些需要人 类的智慧才能完成的工作,既具备了一定的智能,故称 为智能仪器。人 们习惯将 这 种内含微型计算机并带有GP-IB 等通信接口的电子仪器称为智能仪器。本课程设计就是利用两片单片机实现串口通讯数据的

6、发送和接收,该系统可采用 max232 进行串口通讯数据传送。可用 LCD 显示发送的相应据。可用键盘控制数据发送的启动和停止。1、串口通讯简介串 口 通 信 最 重 要 的 参 数 是 波 特 率 、数 据 位 、停 止 位 和 奇 偶 校 验 。对 于 两个 进 行 通 行 的 端 口 ,这 些 参 数 必 须 匹 配 : a,波 特 率 :这 是 一 个 衡 量 通 信 速 度 的 参 数 。它 表 示 每 秒 钟 传 送 的 bit 的 个数 。例 如 300 波 特 表 示 每 秒 钟 发 送 300 个 bit。当 我 们 提 到 时 钟 周 期 时 ,我 们就 是 指 波 特 率

7、 例 如 如 果 协 议 需 要 4800 波 特 率 ,那 么 时 钟 是 4800Hz。这 意 味着 串 口 通 信 在 数 据 线 上 的 采 样 率 为 4800Hz。通 常 电 话 线 的 波 特 率 为14400,28800 和 36600。波 特 率 可 以 远 远 大 于 这 些 值 ,但 是 波 特 率 和 距 离 成反 比 。高 波 特 率 常 常 用 于 放 置 的 很 近 的 仪 器 间 的 通 信 ,典 型 的 例 子 就 是GPIB 设 备 的 通 信 。 b,数 据 位 :这 是 衡 量 通 信 中 实 际 数 据 位 的 参 数 。当 计 算 机 发 送 一 个

8、 信 息包 ,实 际 的 数 据 不 会 是 8 位 的 ,标 准 的 值 是 5、7 和 8 位 。如 何 设 置 取 决 于 你想 传 送 的 信 息 。比 如 ,标 准 的 ASCII 码 是 0 127(7 位 )。扩 展 的 ASCII 码 是0 255(8 位 )。如 果 数 据 使 用 简 单 的 文 本 (标 准 ASCII 码 ),那 么 每 个 数 据 包使 用 7 位 数 据 。每 个 包 是 指 一 个 字 节 ,包 括 开 始 /停 止 位 ,数 据 位 和 奇 偶 校 验位 。由 于 实 际 数 据 位 取 决 于 通 信 协 议 的 选 取 ,术 语 “包 ”指

9、任 何 通 信 的 情 况 。 c,停 止 位 :用 于 表 示 单 个 包 的 最 后 一 位 。典 型 的 值 为 1,1.5 和 2 位 。由 于数 据 是 在 传 输 线 上 定 时 的 ,并 且 每 一 个 设 备 有 其 自 己 的 时 钟 ,很 可 能 在 通 信中 两 台 设 备 间 出 现 了 小 小 的 不 同 步 。因 此 停 止 位 不 仅 仅 是 表 示 传 输 的 结 束 ,并 且 提 供 计 算 机 校 正 时 钟 同 步 的 机 会 。适 用 于 停 止 位 的 位 数 越 多 ,不 同 时 钟同 步 的 容 忍 程 度 越 大 ,但 是 数 据 传 输 率 同

10、 时 也 越 慢 。 d,奇 偶 校 验 位 :在 串 口 通 信 中 一 种 简 单 的 检 错 方 式 。有 四 种 检 错 方 式 :偶 、奇 、高 和 低 。当 然 没 有 校 验 位 也 是 可 以 的 。对 于 偶 和 奇 校 验 的 情 况 ,串 口会 设 置 校 验 位 (数 据 位 后 面 的 一 位 ),用 一 个 值 确 保 传 输 的 数 据 有 偶 个 或 者奇 个 逻 辑 高 位 。例 如 ,如 果 数 据 是 011,那 么 对 于 偶 校 验 ,校 验 位 为 0,保 证逻 辑 高 的 位 数 是 偶 数 个 。如 果 是 奇 校 验 ,校 验 位 位 1,这

11、样 就 有 3 个 逻 辑 高位 。高 位 和 低 位 不 真 正 的 检 查 数 据 ,简 单 置 位 逻 辑 高 或 者 逻 辑 低 校 验 。这 样使 得 接 收 设 备 能 够 知 道 一 个 位 的 状 态 ,有 机 会 判 断 是 否 有 噪 声 干 扰 了 通 信 或者 是 否 传 输 和 接 收 数 据 是 否 不 同 步 。 串行通信接口的基本任务:(1)实现数据格式化:因为来自 CPU 的是普通的并行数据,所以,接口 电路应具有实现不同串行通信方式下的数据格式化的任务。在异步通信方式下,接口自动生成起止式的帧数据格式。在面向字符的同步方式下,接口要在待传送的数据块前加上同步

12、字符。(2)进行串并转换:串行传送,数据是一位一位串行传送的,而计算机处理数据是并行数据。所以当数据由计算机送至数据发送器时,首先把串行数据转换为并行数才能送入计算机处理。因此串并转换是串行接口电路的重要任务。(3)控制数据传输速率:串行通信接口电路应具有对数据传输速率波特率进行选择和控制的能力。(4)进行错误检测:在发送时接口电路对传送的字符数据自动生成奇偶校验位或其他校验码。在接收时,接口电路检查字符的奇偶校验或其他校验码,确定是否发生传送错误。(5)进行 TTL 与 EIA 电平转换:CPU 和终端均采用 TTL 电平及正逻辑,它们与 EIA 采用的 电平及负逻辑 不兼容,需在接口电路中

13、进行转换。(6)提供 EIA-RS-232C 接口标准所要求的信号线:远 距离通信采用 MODEM时,需要 9 根信号线;近距离零 MODEM 方式,只需要 3 根信号线。这些信号线由接口电路提供,以便与 MODEM 或终端进行联络 与控制。串行通信接口电路的组成:为了完成上述串行接口的任务,串行通信接口电路一般由可编程的串行接口芯片、波特率发生器、EIA 与 TTL 电平转换器以及地址 译码电路组成。其中,串行接口芯片,随着大规模 继承电路技术的发展,通用的同步(USRT)和异步(UART)接口芯片种类越来越多,如下表所示。它们的基本功能是类似的,都能实现上面提出的串行通信接口基本任务的大部

14、分工作,且都是可编程的。串行通信分类:在串行通信中,数据是在两个站之间传送的。按照数据传送方向,串行通信可分为三种制式。1. 单工制式(Simplex)单工制式是指甲乙双方通信只能单向传送数据。单工制式如图 1 所示:图 1 单工制式2. 半双工制式(Half duplex) 半双工制式是指通信双方都具有发送器和接收器,双方既可发送也可接收,但接收和发送不能同时进行,即发送时就不能接收,接收时就不能发送。半双工制式如图 2 所示。图 2 半双工制式3. 全双工制式全双工制式是指通信双方均设有发送器和接收器,并且将信道划分为发送信道和接收信道,两端数据允许同时收发,因此通信效率比前两种高。全双工

15、制式如图 3 所示:图 3 全双工制式2、总体方案设计本次课程设计的整个电路是采用两个 AT89C51 单片机芯片控制两个分电路,实现串口数据的发送和接收两个功能。其中单片机的 P1 口为数据采集口,其中P1.0P1.2 接 LCD 的 RS、RW、和 E 引脚, P1.3P1.5 接键盘,然后和另一个单片机相连, 实现单片机与 LCD 之间的数据传递和显示。P2 口接 LCD 的 D0 到D7 引脚, 实现 了 8 位数显 ,然后 P3 口的输入和输 出引脚接 max232 的输出和输入引脚,另一个单片机的接法与此类似,便可以 实现 串口通讯的功能。串口通 讯的设计原理框图如 4 所示:单片

16、机单片机LCD 显示LCD 显示Max232 Max232按键1按键2按键3按键图 4 串口通讯的设计原理框图3、硬件电路设计3.1 单片机主机系统电路设计时钟电路:89C51 单片机的时钟信号通常有内部振荡和外部振荡方式。在引脚 XTAL1 和 XTAL2 外接晶体振 荡器,就 够成了内部振荡方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。晶振通常选用 6MHZ、12MHZ 或 24MHZ(晶体可在 1.2MHz12MHz 之间任选, 电容 C1 和 C2 的典型 值在 20pF100pF 之 间选择),本设计中选用12MHZ。电容器 C9、C

17、10 起稳定振荡频率、快速起振的作用,电容设定为 30PF。内部振荡方式所得的时钟信号比较稳定。外部振荡方式是把已有的时钟信号引入单片机内,这种方式适用于用来使单片机的时钟与外部信号保持一致。复位电路:本系统的复位电路是采用按键复位的电路,复位输入引脚 RET为 AT89C51 提供了初始化的手段。当 89C51 的 ALE 及 PSEN 两引脚输出高电平,RET 引脚高 电平到时 ,单片机复位。按下按 钮, 则直接把+5V 加到了 RET 端从而复位称为手动复位。复位后,P0 到 P3 并行 I/O 口全为高电平,其它寄存器全部清零,只有 SBUF 寄存器状态不确定。89C51单片机内部有P

18、0 、P1、P2、P3四个8位双向I/O口:P0口具有双重功能:可以作为输入/输出用,外接 输入/输出设备;在有外接存储器和I/O 接口 时常作为低8位地址/数据总线,即低 8位地址与数据线分时使用P0口。此时 低8位地址由ALE信号的下跳沿使它锁存到外部地址 锁存器中,而后, P0口出现数据信息。P1口具有单一接口功能,P1口每一位都能作为可编 程的输入或输出口线。P2口具有双重功能:作 为输 入口或输出口使用,外接输入/ 输出设备;在有外接存储器I/O 接口 时,作 为系统的地址总线。 输出高位地址,与P0 口低8位地址一起组成16位地址总线。P3 口为双重功能口:可以作为输入/输出口,外

19、接 输入/输出设备;作为第二功能。 单片机主机系统原理图如图 5 所示:XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD63P0.7/AD732P1.01P1.2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD1P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A92P2.2/A102

20、3P2.3/A1 24P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51Y1C13PFC23PFC31uFR210kR110kGNDVCGND图 5 单片机主机系统原理图3.2 MAX232 电路设计MAX232 芯 片 是 美 信 公 司 专 门 为 电 脑 的 RS-232 标 准 串 口 设 计 的 单 电 源电 平 转 换 芯 片 ,使 用 +5v 单 电 源 供 电 。引 脚 介 绍 :第 一 部 分 是 电 荷 泵 电 路 。由 1、2、3、4、5、6 脚 和 4 只 电 容 构 成 。功 能 是产 生 +12v 和 -12v 两 个 电 源 ,提 供

21、给 RS-232 串 口 电 平 的 需 要 。 第 二 部 分 是 数 据 转 换 通 道 。由 7、8、9、10、11、12、13、14 脚 构 成 两 个 数据 通 道 。其 中 13 脚 (R1IN)、12 脚 (R1OUT)、11 脚 (T1IN)、14 脚 (T1OUT)为 第 一 数 据 通 道 。 8 脚 (R2IN)、9 脚 (R2OUT)、10 脚 (T2IN)、7 脚 (T2OUT)为 第 二 数 据 通 道 。 TTL/CMOS 数 据 从 T1IN、T2IN 输 入 转 换 成 RS-232 数 据从 T1OUT、T2OUT 送 到 电 脑 DB9 插 头 ;DB9

22、插 头 的 RS-232 数 据 从R1IN、R2IN 输 入 转 换 成 TTL/CMOS 数 据 后 从 R1OUT、R2OUT 输 出 。第 三 部 分 是 供 电 。15 脚 GND、16 脚 VCC(+5v)。max232 电路的设计原理图如图 6:图 6 max232 电路的设计原理 图如图两 个 Max232 的 连 接 图 7:图 7 max232 连 接 原 理 图3.3 LCD 电路设计显示电路要求采用液晶显示器Liquid Crystal Display,简称LCD,它是利用液晶的光电效应特点制成的显示产品。HD44780控制器由两个8位寄存器、指令寄存器(IR)和数据寄

23、存器(DR)、忙 标志(BF)、显示数据 RAM(DDRAM)、字符发生器ROM(CGROM)、字符发生器RAM(CGRAM )、地址计数器(AC)构成。IR用于寄存指令码,只能写入不能 读出;DR 用于寄存数据,数据由内部操作自动写入DDRAM和CGRAM,或者暂存从DDRAM和CGRAM 读出的数据。BF为1时,液晶模块处于内部处理模式,不响 应外部操作指令和接受数据。DDRAM 用来存储显示的字符,能存储80个字符 码。 CGROM由8位字符码生成5*7点阵字符160种和5*10点阵字符32种。CGRAM是为用户编写特殊字符留用的,它的容量仅64字节、可以自定义8个5*7点阵字符或者4个

24、5*10点阵字符。AC可以存储DDRAM和CGRAM的地址,如果地址码随指令写入IR,则IR自动把地址码装入AC,同时选择DDRAM或者 CGRAM单 元。LM016L的各引脚功能为:D0D7(三态)为数据总线;E 为使能信号端;RS(输 入)为数据/指令信号端,RS=1为数据信号, RS=0为指令信号;RW (输入)为读/写数据模式端,RW=1为读,RW=0 为写。通过对HD44780写入控制指令,使HD44780产生显示驱动信号来驱动LM016L。HD44780的控制指令主要有:清除显示(Clear Display )、地址归位(Return Home)、输入模式设定(Entry Mode

25、 Set)、显示开/ 关控制(Display On/Off Control)、功能设定(Function Set)、设定 CGRAM 的地址(Set CGRAM Address)、设定DDRAM 的地址(Set DDRAM Address)、写 DDRAM/CGRAM(Write Date to DDRAM/CGRAM)、读忙标志和地址(Read Busy Flagand Address)以及从DDRAM 和CGRAM 中读 数据(Read Date from DDRAM/CGRAM)。LCD 数码管的 D0 到 D7 接单片机的 P2 口, LCD 的 RS、RW、和 E 引脚分别接单片机的

26、 P1.0P1.2 口。即可 实现数码管与单 片机之间的数据传送, LCD电路的设计如下图 8:图 8 LCD 显示电路原理图3.4 单片机与 max232 连接电路的设计单片机和和 max232 之间相互连接就是 TTL 电平标准和 RS-232-C 标准之间的电平转换。为使计算机、电话以及其他通信设备 互相沟通, 现在,已经对串行通信建立了几个一致的概念和标准,这些概念和标准属于三个方面:传输率,电特性,信号名称和接口标 准。1、传输率:所谓传输率就是指每秒传输多少位, 传输率也常叫波特率。国 际上规定了一个标准波特率系列, 标准波特率也是最常用的波特率,标准波特率系列为 110、300、

27、600、1200、4800、9600 和 19200。大多数 CRT 终端都能够按 110到 9600 范围中的任何一种波特率工作。打印机由于机械速度比较慢而使传输波特率受到限制,所以,一般的串行打印机工作在 110 波特率,点 针式打印机由于其内部有较大的行缓冲区,所以可以按高达 2400 波特的速度接收打印信息。大多数接口的接收波特率和发送波特率可以分别设置,而且,可以通 过编程来指定。2、RS-232-C 标准:RS-232-C 标准对两个方面作了规 定,即信号 电平标准和控制信号线的定义。RS-232C 采用负逻辑规定逻辑电平,信号电平与通常的TTL 电 平也不兼容,RS-232-C

28、将-5V-15V 规定为“1”,+5V+15V 规定为“0” 。TTL 标 准和 RS-232-C 标准之间的电平转换如图 9:图 9 TTL 标准和 RS-232-C 标准之间的电平转换单片机与 max232 连接图如图 10图 10 单片机与 max232 连接原理图4、软件设计4.1 主程序设计主程序流程图如图 11:开 始是否有键按下调用延迟哪键按下调用延迟LCD 显示结束NYYN图 11 主程序流程图整个主程序采用模块化的思想来设计,其中主要有按键识别,LCD 显示, 发送和接收等几大模块构成,来完成整个串口通讯的功能。4.2 键盘程序设计键盘程序部分主要完成键输入和显示的功能。当没

29、有键按下时主程序一直执行键扫描工作,当有键 按下时,先 执行延迟消抖程序,然后在确认是否有键按下。若确实有键按下,计算出键值后显示执行显示程序。键盘扫描的流程图见图 12 所示:开始有键闭合吗?消除抖动确实有键按下计算键位闭合键释放了吗?执行键操作返回调用显示子程序YNYNN图 12 键盘扫描流程图4.3 发送和接收程序在主程序中,TMOD=0x20:设置定时器 1 为工作方式 2,TH1=0xfd:设置串口波特率,TL1=0xfd :设 置串口波特率,TR1=1:打开定时器 1,REN=1:将允许接受位置一,SM0=0:设置串行口工作方式, SM1=1:设置串行口工作方式 EA=1:打开总中

30、断,ES=1 :打开串行口中断。发送程序流程 图如图 13:N图 13 发送程序流程图开始打开发送控制 P1.0写 SBUFT1=1?发送完毕?延时 T 秒关闭发送控制P1.0结束N接收程序流程图如图 14图 14 接收程序流程图4.4 LCD显示程序设计本次课设采用 LCD 进行显示,首先进行键盘控制,由发送端的三个键,加一,减一和锁键改变数据的状态,然后 进行键盘的 识别,再 调用延时,通过中断的的方法可以显示发送端所发送的数据和接收端所接收的数据,如图 15 所示:开始P1.0 处于结束读 SBUFT1=1?接收完毕?延时 T 秒结束NN开始键盘控制程序识别按键软件延时LCD 显示图 1

31、5 显示流程图5、系统调试与通信系统的硬件、软件独调和系统调试是系统最后的步骤也是系统特别重要的环节,因为设计和开发出的系 统是否成功,功能是否完善只有在这里才能显现出来。所以为了保证设计系统能够正常工作,必须对软件和硬件部分的每一个部分进行调试和分析。5.1 软件调试软件问题是调试中遇到问题最多的,此系统中出现过的问题有以下几处:1、键盘中断处理程序中中断入口后,没有关掉外部中断,出现键值读取不正确,不能正确操作键盘。解决方法,在中断入口 处 关掉外中断,并在出口时再开外中断。2、键盘扫描前没有软件延时消抖,出 现键值读取不准确。解决方法,在键盘中断入口后在键值扫描前软件延时 1ms,消去

32、键盘 抖动所带来的误操作。3、程序中有个别地方将“=”与“=” 混淆,造成 结果不准确,解决办法,仔细查找,将混淆出更正。再把到计时设定时子程序加进来,看是否能通过菜单正确调用,返回。能否修改到计时。整个调试完毕 。5.2 硬件调试硬件的测试首先是检查电路的逻辑线路是否正确,如果正确再检查原理图的线路连接是否正确,电路的布局安排是否合理等等。经过进行精心的检查的连线,本设计的硬件仿真图运行正确无误。5.3 软件、硬件连接调试本设计软件采用的是 keil,硬件采用的是 Proteus 软件实现仿真和电路图设计和,Proteus 软件与 Keil 软件联合使用, 实现设计 要求。在 Keil 软件

33、中创建新文件,输入所编写的 c 语言程序并保存,在编译源程序无误后,会 产出相应的”.HEX”文件;将所生成的”.HEX” 文件加载到已绘制好的Proteus 原理图中,使 Proteus 与 Keil 真正连接起来,实现联合调试。调试结果如图 16 所示:图 16 仿真效果图XTAL218 XTAL119ALE30EA31PSEN29 RST9P0./AD039P0.1/A138P0.2/AD237P0.3/A336P0.4/AD435P0.5/A534P0.6/AD63P0.7/A732P1.01P1.2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.

34、1/TX1P3.2/INT012P3./IT113P3.4/T014P3.7/RD17P3.6/W16P3.5/T115 P2.7/A1528 P2.0/A821P2.1/A92P2./A1023P2.3/A124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51C130PC230P X1CRYSTALR110kR210k C510uFXTAL218 XTAL119ALE30EA31PSEN29 RST9P0./AD039P0.1/A138P0.2/AD237P0.3/A336P0.4/AD435P0.5/A534P0.6/AD63P0.7/A732P1.01P1.

35、2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TX1P3.2/INT012P3./IT113P3.4/T014P3.7/RD17P3.6/W16P3.5/T115 P2.7/A1528 P2.0/A821P2.1/A92P2./A1023P2.3/A124P2.4/A1225P2.5/A1326P2.6/A1427 U1AT89C51C1230PC230P X12CRYSTALR1210kR210k C5210uFT1IN1R1OUT12T2IN10R2OUT9 T1OUT14R1IN13T2OUT7R2IN8C2+4C2-5 C1+1C1- 3V

36、S+2VS-6 U2MAX23T1IN1R1OUT12T2IN10R2OUT9 T1OUT14R1IN13T2OUT7R2IN8C2+4C2-5 C1+1C1- 3VS+2VS-6 U3MAX23C31nFC41nF61nF71nFC81nF C91nFC01nF C1nFD71463512D431029D1807E6RW5S4VS1D2VE3LCD1LM016LD71463512D431029D1807E6RW5S4VS1D2VE3LCD2LM016LRV11KRV21K6、总结体会本课程设计的主要任务是设计一个以两片 89C51 单片机为核心的串口通讯系统。从确定课设题目,到查阅质料确定总

37、体方案设计 ,硬件 电路仿真的设计,硬件电路的优化,软件的设计 ,软件的优化,检验仿真 电路,调试软件程序,到最后的软硬件联调,都是我努力去完成的。在最后的仿真 电路图中达到了我想要的结果,并且对串口通讯有了更一步的认识。 对单片机也有了更加深刻的了解。 对以后很好的应用单片机打下了深刻的基础。本次课设主要设计的是单片机与单片机之间的通信,即双机通信。但是设计的比较简单,如果进一步的 设计,可以有以下两种改进方案:1 可以使发送的数据多样化,不止停留在数字的发送,可以使字母或者其他形式的数据。2 可以进行多机通讯,突破两片单片机之间的通讯,还可以研究单片机与 PC 机之间的通信。总而言之,本次

38、毕业设计我收获颇多。不 仅学会了两款新的软件 protues 和KEIL C51,也了解了单片机的一些工作原理及常见 的用途。最重要的,本次 设计教会了我一种解决问题的方法,这对我以后的工作及学习绝对是大有帮助。最后,在此对所有帮助过我的老师和同学再次表示真挚的感谢。7、源程序串口发送程序:#include#define uint unsigned int#define uchar unsigned charuchar a=150;uchar b=0;sbit RS=P12;sbit RW=P11;sbit E=P10;sbit INC=P13;sbit DEC=P14;sbit CON=P1

39、5;code uchar table=0,1,2,3,4,5,6,7,8,9;/*延时子程序*void delay(uinti)uint j;for(;i0;i-)for(j=0;j=15) Xpos=0;Ypos=1;/异或运算void display(uchardat)writeChar(7,1,tabledat%10);dat/=10;writeChar(6,1,tabledat%10);dat/=10;writeChar(5,1,tabledat%10);/*主程序子程序*void main(void)TMOD=0x20;/设置定 时器 1 为工作方式 2TH1=0xfd;/*设置串口

40、波特率TL1=0xfd;/*设置串口波特率TR1=1;/*打开定时器 1/REN=1;/*将允许接受位置一SM0=0;/*设置串行口工作方式SM1=1;/*设置串行口工作方式/EA=1;/*打开总 中断/ES=1;/*打开串行口中断LCDRset();/P0=0xf0;writeString(0,1,“sent:“);while(1) display(a);if(INC=0)delay(10);if(INC=0)while(!INC);a+;if(DEC=0)delay(10);if(DEC=0)while(!DEC);a-;if(CON=0)delay(10);if(CON=0)while(

41、!CON);if(b=1)b=0;else b+;if(b=0)writeString(3,0,“UNLOCKED!“);SBUF=a;while(!TI);TI=0;elsewriteString(3,0,“ LOCKED!“);/*END*串口接收程序:#include#define uint unsigned int#define uchar unsigned charuchar a;uchar b=0;sbit RS=P12;sbit RW=P11;sbit E=P10;sbit CON=P13;code uchar table=0,1,2,3,4,5,6,7,8,9;/*延时子程序*

42、void delay(uinti)uint j;for(;i0;i-)for(j=0;j=15) Xpos=0;Ypos=1;/异或运算void display(intdat)writeChar(10,1,tabledat%10);dat/=10;writeChar(9,1,tabledat%10);dat/=10;writeChar(8,1,tabledat%10);/*主程序子程序*void main(void)TMOD=0x20;/设置定 时器 1 为工作方式 2TH1=0xfd;/*设置串口波特率TL1=0xfd;/*设置串口波特率TR1=1;/*打开定时器 1REN=1;/*将允许接

43、受位置一SM0=0;/*设置串行口工作方式SM1=1;/*设置串行口工作方式EA=1;/*打开总中断ES=1;/*打开串行口中断LCDRset();writeString(0,1,“recieve:“);while(1)if(CON=0)delay(10);if(CON=0)while(!CON);if(b=1)b=0;else b+;if(b=0)writeString(3,0,“UNLOCKED!“);ES=1;elsewriteString(3,0,“ LOCKED!“);ES=0;display(a);/*串行中断子程序*voidSer_Init(void) interrupt 4RI=0;/*将接收中断 标志位清零,准 备下一次置位a=SBUF;/*将串口缓存中的数据赋值给变量 a /*END*

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 学术论文 > 管理论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报