毕业设计(论文)-基于Proteus的51单片机应用-单片机串口通信设计.doc_第1页
毕业设计(论文)-基于Proteus的51单片机应用-单片机串口通信设计.doc_第2页
毕业设计(论文)-基于Proteus的51单片机应用-单片机串口通信设计.doc_第3页
毕业设计(论文)-基于Proteus的51单片机应用-单片机串口通信设计.doc_第4页
毕业设计(论文)-基于Proteus的51单片机应用-单片机串口通信设计.doc_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

装订线 毕业设计(论文)说明书1.绪论1.1课题背景及意义目前,单片机的发展速度大约每两、三年要更新一代,集成度增加一倍,功能翻一番。其发展速度之快、应用范围之广已达到了惊人的地步,它已渗透到生产和生活的各个领域,应用非常广泛。在汽车、通信、智能仪表、家用电器和军事设备的智能化以及实时过程控制等方面,单片机都扮演着非常重要的角色1。因此单片机的设计开发具有广阔的前景。所以,对于电气类学生而言,学习一种单片机的开发是十分必要的。而51系列的单片机,随着半导体技术的发展,其处理速度更快,性能更优越,在工业控制领域上占据十分重要的地位,通过对51系列单片机的学习而掌握单片机开发的过程是一种不错的选择。然而单片机是一门综合性、实践性都很强的学科,其学习涉及的实验环节比较多,硬件设备投入比较大,对于大多数人而言很难投入大笔资金去购买实验器件。而且要进行硬件电路测试和调试,必须在电路板制作完成、元器件焊接完毕之后进行,但这些工作费时费力。因此引入EDA软件仿真系统建立虚拟实验平台,不仅可以大大提高单片机的学习效率,而且大大减少硬件设备的资金投入,同时降低对硬件设备的维护工作。EDA设计思路是:从元器件的选取到连接、直至电路的调试、分析和软件的编译,都是在计算机中完成,所用的工作都是虚拟的。虽然现在的电路设计软件已经很多,诸如PROTEL、ORCAD、EWB 、Multisim等,不过这些软件之间的差别都不大:都有原理图和PCB制作功能,都能进行诸如频率响应,噪音分析等电路分析,主要用于模拟电路、数字电路、模数混合电路的性能仿真与分析,但对于单片机设计及软件编程,最重要的是两者的联调,这些软件都无法实现,所以造成了单片机系统设计周期长、设计费用高等缺点2。新款的EDA软件Proteus解决了上述软件的不足,成为目前最好的一款单片机学习仿真软件。Proteus 软件是由英国Lab Center Electronics 公司开发的EDA 工具软件。Proteus软件已有近20年的历史,在全球已得到相当广泛的使用。Proteus 软件集成了高级原理布图、混合模式SPICE 电路仿真、PCB 设计以及自动布线来实现一个完整的电子设计系统。Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机 CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。同时,当硬件调试成功后,利用Proteus ARES软件,很容易获得其PCB图,为今后的系统制造提供了方便。对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象34。Proteus 软件支持许多通用的微控制器,如PCI系列、AVR系列、HC11系列、68000系列、Z80系列、8051系列以及各种外围芯片;包含强大的调试工具,具有对寄存器和存储器,断点和单步模式IAR、C-SPY、Keil、MALAB等开发工具的源程序进行调试的功能;能够观察代码在仿真硬件上的实时运行效果、对显示、按钮、键盘等外设的交互可视化进行仿真;具有6000 多种模拟和数字器件的模型库;具有单步断点设置等调试功能;能够与常用的汇编器、编译器如IAR、Keil、Proton 等协同调试;有直流电流表/电压表、交流电压表/电流表、示波器逻辑分析仪、计数/按时/频率计虚拟终端、SPI 调试器等虚拟仪器,以仿真中的测量记录提供了方便;支持图形化的分析功能,具有频率特性、傅立叶、失真、噪声分析等多种绘图方式、可将仿真曲线精美地绘制出来3。Keil是Keil Software公司开发的,是目前世界上最好的51单片机开发工具之一。 软件本身支持数百种51系列单片机机芯,可以用来编译C源码、汇编程序、连接和重定位目标文件和库文件、创建HEX文件、调试目标程序等,是一种集成化文件管理编译环境。它集成了文件编译处理、编译连接、项目管理,窗口、工具引用和软件仿真调试等多种功能,是相当强大的的开发工具5。Proteus ISIS与Keil整合起来使用,充分利用各自的仿真功能,单片机的软硬件的调试和仿真,将变得非常直观和生动。国内外的很多知名大学已经开始使Proteus作为他们的教学工具,比如Stanford University,University Of California,Cambridge University,Carlisle college,香港理工大学,中山大学,华南理工大学,哈尔滨工程大学等几十所高校。他们一致认为该软件在教学中的应用有很大的帮助,其灵活自主的设计方式使学生更能体验到电子设计的魅力,学生对单片机以及电子设计的兴趣大大提升,知识的掌握和应用当然也有了很大的提高。虽然Proteus在单片机的学习和应用系统的开发上有着诸多的优点,但是在国内的发展才几年的时间,其应用还未普及。因此,通过Proteus仿真平台学习51系列单片机之间的串口通信,是对EDA软件Proteus的使用过程的学习,也为以后利用该软件进行电子设计与开发打下一定的基础,以跟上现代科技的快车去适应激烈竞争的环境。 串行通信是CPU与外界交换信息的一种基本方式,单片机应用于数据采集或工业控制时,往往作为前端机安装在工业现场,远离主机,现场数据采用串行通信方式发送给主机并进行处理,以降低成本,提高通信的可靠性。51系列单片机自身有全双工的异步串行通信接口,实现串行通信极为方便。既可通过一台计算机来控制和监视多台单片机系统,也可实现多台单片机之间的互联,组成不同的控制系统,适应不同的应用场合6。实现单片机之间的串口通信所涉及单片机的知识点多,概括了单片机的定时器/计数器功能、中断功能和串行通信功能等,是单片机功能的综合应用。通过Proteus对单片机串行通信的仿真和调试,不仅是对51单片机知识的综合学习,也是熟悉Proteus软件的应用过程。 1.2设计的主要任务本论文要求在理解串行通信基本知识、学习并掌握51单片机的结构组成、指令系统、C语言程序设计、熟悉Keil软件的编程与调试环境以及掌握Proteus仿真软件的使用环境、元器件调用、虚拟仪器应用、原理图设计、仿真调试的基础上,完成以下4项任务:1、 总结单片机串口通信的基本知识和设计要求,对单片机串口通信的各种控制 方案进行比较,选择一个合适的控制方案;2、 根据课题的设计要求,在Proteus仿真环境中设计单片机串口通信硬件电路;3、 在Keil环境中编制串口通信控制程序,并进行编译调试;4、 在Proteus仿真环境中调用硬件电路,加载控制程序,并进仿真调试。1.3论文的主要内容在本论文中,设计的主要内容有五个方面:一是串行通信控制系统方案的选择;二是系统硬件电路的设计;三是系统软件设计;四是系统软件设计;五是系统仿真与调试;六是系统硬件PCB设计。具体章节安排如下:1、 绪论 在课题的背景及意义中介绍单片机发展现状、单片机EDA软件Proteus的优势、Keil集成开发环境软件简介以及单片机通信的描述;此外,还简单的说明介绍了本文设计的主要任务以及论文的主要内容。2、 系统方案设计 主要论述通信的基本知识和系统的方案选择。系统的方案选择主要包括控制器的选择、串行通信方式比较与方案选择、显示方案比较与选择、编写程序语言比较和选择、串行控制方案确定以及系统框图绘制。3、 系统硬件设计 根据控制系统方案在Proteus ISIS原理图编辑环境中绘制系统硬件电路,主要包括原理图文件的创建、图纸大小的设置、原理图中元器件的选取、元器件的放置、电源、地、和输入输出终端的放置、原理图连线、器件统一编号、电气检测以及元器件属性设置等内容。4、 系统软件设计 主要介绍了在Keil集成开发环境中进行C51语言的编写过程、控制系统程序的编写以及程序流程图绘制。5、 系统仿真与调试 完成控制系统在Proteus ISIS环境中的仿真与调试,主要是根据仿真结果验证硬件原理图以及软件编写的是否正确。6、 系统硬件PCB设计 完成串行通信单片机最小系统原理图设计与PCB绘制。通过以上六个方面的阐述说明,将会对单片机串行通信控制系统基于Proteus的设计、开发与仿真过程以及电路板制作有一个清晰全面的认识。 2.系统方案设计本文的题目是“基于Proteus的51单片机应用单片机串行通信设计”,主要是通过单片机串行通信控制系统的设计,来阐述和实践51单片机的应用在Proteus虚拟实验平台的仿真和调试过程。由于题目没有给出具体的系统功能要求,因此有很大的设计空间。为了很好地在Proteus虚拟实验平台上展示51单片机串行通信的结果,需要自行设计方案。2.1通信概述及串行通信方式选择单片机串行通信在本系统设计中十分重要,是设计的核心部分,为此需要在此对通信部分做一些介绍。2.1.1通信的基本概念通信是计算机系统中主机与外设之间及主机系统与主机系统之间的数据交换。通信有并行通信和串行通信两种基本方式。两种基本通信方式如图2.1所示。图2.1 并行通信与串行通信 并行通信的特点就是将多个数据位同时进行传输。通信速度快,但传输的数据有多少位,就相应地有多少根传输线,传输信号线多,传输距离较远时线路复杂,成本高,较适合于短距离的数据通信。串行通信的特点就是只用一根数据线进行传输,多位数据必须在一根数据线上顺序地进行传送。传输线少,通信线路简单,通信速度慢,成本低,适合于多数位、长距离通信的场合。串行通信按照信息在设备间的传输方向,还可分为单工、半双工和全双工三种方式。分别如图2.2所示。在串行通信中,通信双方在任一时刻,只能单方向的传送数据,这样的传送方法称为单工方式。如图2.2(a)所示,通信方甲机只能作为发送方,而通信方乙机只能作为接收方,不能互换。通信双方可通过传输线交替地进行双向传输,每个通信方都可以作为发送方或接收方,但在任一时刻,不能同时作为发送方和接收方,这样的通信方图2.2 通信方式示意图式称为半双工方式。如图2.2(b)所示,通信方甲机和通信方乙机都可以作为发送方或接收方,但在任一时刻,不能同时作为发送方和接收方,通软件或硬件设定。通信双方通过两条传输线进行互连,两者之间的数据可以同时进行发送和接收,这样的通信方式称为全双工方式。如图2.2(c)所示,通信方甲机和通信方乙机同时可以作为发送方和接收方。AT89C51单片机在硬件上具有全双工的结构。在实际应用中,尽管多数串行通信接口电路具有全双工功能,单一般情况下,多工作于半双工方式下。因此,为了能够综合展示单片机串行通信的的应用,本系统采用半双工方式。串行通信中要解决好发送设备与接收设备之间的同步问题,否则会造成某些数据位的丢失而通信失败。根据采用的同步方式的不同, 将串行通信进一步分为同步串行通信和异步串行通信两种。异步串行通信方式是将传输的数据按照某种位数进行分组(通常以8位的字节为单位),在每组数据的前面和后面分别加上一位起始位和一位停止位,根据需要还可以在停止位前加一位校验位,并且停止位的长度还可以增加。这样组合而成的一组数据被称为一帧。异步串行通信的数据传送格式如图2.3所示。图2.3 串行异步通信数据格式异步串行通信方式的结构简单,但是数据的传送量增加很多,导致传输效率不高,一般用在对传输速率要求不高的应用中。同步串行通信方式不再以字节为单位,而是以数据块为单位,每个数据块可以有多个字节构成,只在每个数据块的前后加上起始位和停止位,这样减少了需要额外传输的控制数据的长度,自然也就提高了传输的效率。同步串行通信的数据传送格式如图2.4所示。同步字符1同步字符2数据块校验字符1校验字符1图2.4 串行同步通信数据格式同步通信方式的软硬件的复杂程度也随之上升,价格比较昂贵,一般只在传输速率要求较高系统使用。因此本系统采用异步串行通信。波特率是串行通信中的一个重要概念,它用于衡量串行通信速度的快慢。波特率是指在串行通信中,单位时间里传输的二进制代码的位数,单位是b/s或bps(位/秒)。例如:每秒钟传输120个字符,每个字符由10个二进制位(其中1个起始位、8个数据位和一个停止位),其波特率为120字符/秒10位/字符=1200位/秒。在异步串行通信中,波特率一般为50-9600bps。在串行传输中,二进制数据序列是以数字波形表示的,发送时,在发送时钟的作用下将移位寄存器的数据串行移位输出;接收时,在接收时钟的作用下将通信线上传来的数据串行移入移位寄存器。所以,发送时钟和接收时钟也可称为移位时钟,能产生该时钟的电路称为波特率发送器。为了提高采样的分辨率,准确地测定数据位的上升沿或下降沿,时钟频率总是高于波特率若干倍,这个倍数称为波特率因子。在单片机中,发送/接收时钟可以由系统时钟产生,其波特率因子可为12、32和64,根据方式而不同。此时波特率由决定,称为固定方式频率方式;也可由单片机内部定时器T1产生,T1工作于自动再装入8位定时方式(方式2)。由于定时器的计数初值可以人为改变,T1产生的时钟频率也可以改变,因此称为可变波特率方式。当然,也可以用用T2作为波特率发生器7。2.1.2 51系列单片机串行口的功能51单片机的串口是一个可编程的全双工串行通信接口,通过软件编程,它可以作为通用异步接收和发送UART使用,可以同时发送、接收数据。发送、接收数据可以通过查询或中断方式处理,使用十分灵活,能方便的与其他计算机或串行传送信息的外部设备(如串行打印机、CRT终端)实现双机、多机通信。其帧格式为:1个起始位,8或9个数据位和1个停止位。51单片机的串口也可以作为同步移位寄存器。51单片机的串口有4种工作方式,分别是方式0、方式1、方式2、方式3。其中:方式0,为同步移位寄存器方式,一般用于外接移位寄存器芯片扩展I/O接口;方式1,是8位的异步通信方式,通常用于双机通信。方式2和方式3,是9位的异步通信方式,通常用于多机通信。不同的工作方式,其波特率不一样,方式0和方式2的波特率直接由系统时钟产生,方式1和方式3的波特率由定时器/计数器T1或T2的溢出频率决定7。2.1.3 51系列单片机的串行结构51系列的单片机串行口主要由发送数据寄存器、发送控制器、输出控制门、接收数据寄存器、接收控制器和输入移位寄存器等组成,它的结构如图2.5所示:图2.5 51单片机串行口结构图 串行通信数据寄存器SBUF,字节地址为99H,实际对应两个寄存器:发送数据寄存器、接收数据寄存器。当CPU向SBUF写数据时对应的是发送数据寄存器;当CPU读SBUF时,对应的是接收数据寄存器。特殊功能寄存器SCON用于存放串行口的控制信息和状态信息。根据对其写控制字决定工作方式,从而决定波特率发生器的时钟来自系统时钟还是来自定时器T1或T2。特殊功能寄存器PCON的最高位SMOD为串行口波特率的倍增控制位。51单片机的串行口正是通过对上述专用寄存器的设置、检测与读写来管理串行通信的。在进行通信时,外界的串行数据是通过引脚RXD(P3.0)输入的。输入数据先逐位进入输入移位寄存器,再送入接收SBUF,在此采用了双缓冲结构,这是为了避免在接收到第二帧数据之前,CPU未及时响应接收器的前一帧的中断请求而把前一帧数据读走,造成两帧数据重叠的错误。对于发送器,因为发送时CPU是主动的,不会产生写重叠的问题,一般不需要双缓冲器结构,为了保持最大的传送速率,仅用了SBUF一个缓冲器。TI和RI为发送和接收中断标志,无论哪个为1,只要中断允许,都会引起中断8。2.1.4 51系列单片机串口工作原理设有两个单片机串行通信,甲机发送,乙机接收,如图2.6所示。图2.6 51单片机串行传送示意图发送数据时,当执行一条向SBUF写入数据时把数据写入串口发送数据寄存器,就启动发送过程。串行通信中,甲机CPU向SBUF写入数据(MOV SBUF,A),就启动发送过程。在发送时钟控制下,先发送一个低电平的起始位,紧接着把A中的数据送入SBUF,在发送控制器的控制下,按设定的波特率,每来一个移位时钟,数据移出移一位,由低位到高位一位一位发送到电缆线上,移出的数据位通过电缆线直达乙机。最后发送一个高电平的停止位。一个字符发送完毕,串行口控制寄存器中的发送中断标志位T1置位。(对于方式2和方式3,当发送完数据位后,要把串行口控制寄存器SCON中的TB8位发送出去后才能发送停止位)。乙机按设定的波特率,每来一个移位时钟及移入一位,由低位到高位一位一位移入到SBUF。一个移出,一个移进,很显然,如果两边的移位速度一致,甲机移出的数据位正好被乙机移进,就能完成数据的正确传送;如果不一致,则必然会造成数据位的丢失。因此,两边的波特率必须一致。当甲机一帧数据发送完毕(或称发送缓冲器空),硬件置位发送中断标志位TI(SCON.1),该位可作为查询标志,如果设置为允许中断,则将引起中断,甲机的CPU可发送下一帧数据。作为接受方的乙机,需预先设置位REN(SCON.4),即允许接收。当REN置位1,接收控制器就开始工作,对接收数据线进行采样,当采样到从“1”到“0”的负跳变时,接收控制器开始接收数据。为了减少干扰的影响,接收控制器在接收数据时,将一位的传送时间分成16等分,用当中的7、8、9三个状态对接收数据线进行采样,三次采样当中,当两次采样为低电平时,就认为接收的是“0”,两次采样为高电平,就认为接收是“1”。如果接收是起始位的值不是“0”,则起始位无效,复位接收电路;如果起始位为“0”,则开始接受其它数据。甲方的数据按设定的波特率由地位到高位顺序进入乙机的移位寄存器。当一帧数据到齐(接收缓冲器满)后(接收的前8位数据依次移入输入移位寄存器,接收是第9位数据置入串口控制寄存器的RB8位中),硬件自动置位接收中断标志RI(SCON.0),通知CPU来取数据。该位可作为查询标志,如果设置为允许中断,将引起接收中断,乙机的CPU可通过读SBUF(MOV A,SBUF),将帧数据读入,从而完成了一帧数据的传送。无论是单片机之间,还是单片机和PC机之间,串行通信双方的波特率必须相同,才能完成数据的正确传送7。2.1.5 51系列单片机多机通信多机应用是指在一个系统中用到了多块单片机。它是单片机在高科技领域的主要应用,主要用于一些大型的自动化控制系统。这时整个系统分成了多个子系统,每个子系统是一个单片机系统,用于完成本系统的工作,即从上级主机接收信息,并发送信息给上级主机。上级主机则根据接收的下级子系统的信息,进行判断,产生相应的处理命令传送给下级子系统。通过51单片机串口能够实现一台主机与多台从机进行通信,主机和从机之间能够相互发送和接收信息。主机可以向各个从机或指定的从机发送信息,各个从机发送的信息只能被主机接收,但从机与从机之间不能相互通信。单片机串行多机通信必须使用串口模式2和模式3。在多机通信中,为了保证主机能够正确识别所选是从机并进行通信,主,从机需要正确地设置和判断多机通信控制位SM2和发送/接收的第9位信息,TB8,RB8。主机在发送信息时,依靠TB8标志位来区分发送的信息为地址信息还是数据信息。当设置TB8=1,时,发送的是地址信息;当设置TB8=0时,发送的是数据或者命令信息。从机主要依靠SM2标志位的设置来实现对主机的响应。当从机的SM2=1时,该从机只接受地址帧,对数据帧不进行处理,即只有接收的RB8位等于1数据时,接收才有效,RI才置1,对接收的RB8位等于0的数据不进行处理。当SM2=0时,无论接收的是地址帧TB8=1还是数据帧RB8=0,接收都有效,RI都置1。多级通信时,主机每一次都向从机传送至少两字节信息,先传送从机的地址信息,再传送数据信息。处理时,地址信息的TB8位设为1,数据信息的TB8位设为0。硬件线路如图2.7所示。图2.7 多机通信线路图单片机多机通信的过程如下:1. 所有从机复位,置SM2=1,使其处于准备接收一帧地址数据的状态;2. 主机设置第9位TB8=1,发送一帧地址信息,与所需要的从机进行联系;3. 各从机接收到地址信息后,分别于自己的地址进行比较,对于地址相符的从机,置SM2=0,以便于接收主机随后发送的所有信息;对于地址不相符的从机,仍保持SM2=1,对主机随后发送的数据不进行处理。4. 主机发送控制指令和数据给从机,此时一帧数据的第9位TB8=0。5. 当从机接收数据结束的时候,置SM2=1,返回接收地址帧状态。6. 主机继续发送其它地址帧,与其它从机进行通信。多机通信协议约定:主机为了正确地和指定的从机正确的通信,双方需要对各种数据、地址、指令和状态等进行明确的约定。本系统的通信协议作如下规定:主机的控制命令:01H表示主机请求从机接收数据;02H表示主机请求从机发送数据。其它保留,可定义其它用途。从机的地址定义在00H到FEH之间,即系统中最多允许连接255个从机。对于地址FFH定义为对所有从机都有效的控制命令,用于将各从机恢复到复位状态,即SM2=1。按照上面的协议规定:主机首先发送地址帧,被寻址的从机向主机回送本地地址。主机判断地址是否相符,然后给被寻址的从机发送控制命令,被寻址的从机根据其命令向主机发送本地机状态。若主机判断状态正常,即开始发送或接收数据,后面紧跟的便是数据,若主机判断不正常,需要重新联系。为了能够实现多单片机之间的数据传送,本系统采用多机通信模式8910。2.2 模块化方案比较与选择根据51单片机的串行通信的特点,进行了以下系统设计的方案比较与选择。2.2.1单片机芯片的方案选择方案一:采用MCS-51芯片,MCS-51是Intel公司单片机的典型代表,内部有4KB ROM空间。其结构典型、总线完善、SFR集中管理,并且具有丰富的位操作系统和面向控制功能的指令系统11。但是,MCS-51系列单片机在实际应用中使用较少。方案二: 采用AT89C51芯片作为硬件核心,AT89系列机是ATMEL公司将先进的Flash存储器技术和Intel 80C51单片机相结合的产物,是与MCS-51系列兼容的Flash单片机系列。它既继承了MCS-51原有的功能,又拥有自己是独特功能是目前应用广泛的主流单片机。AT89C51是AT89系列的标准型单片机,是低功耗高性能的8位单片机,使用的最高晶振频率为24MHz。采用Flash ROM,内部具有4KB ROM 存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,可反复进行系统实验12。因此,采用该单片机作为主控制系统的芯片。2.2.2显示模块方案选择方案一:采用LED数码管动态扫描,LED数码管价格适中,对于显示数字合适,采用动态扫描法与单片机连接时,虽然占用的单片机口线少,但连线还需要花费一点时间,所以也不用此种作为显示。方案二:采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示。方案三:采用LCD液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字、图形、符号显示多样,清晰可见。由于本系统主机显示4个数据,从机显示2个数据,选择的液晶显示器皆可,所以在此设计中采用LCD1602液晶显示屏。2.2.3 软件编程语言的选择方案一:采用汇编语言编写,汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是汇编语言可读性差,而且不同的CPU,其汇编语言可能有所差异,也不易移植。因此本系统软件不采用汇编语言编写。方案二:采用C语言编写,C语言是一种结构化的高级语言。其优点是可读性好,移植容易,是普遍使用的一种计算机语言。 用C语言来编写目标系统软件,会大大缩短开发周期,且明显地增加软件的可读性,便于改进和扩充,从而研制出规模更大、性能更完备的系统。缺点是占用资源较多,执行效率没有汇编高。但本系统只进行单片机之间的数据传送,不涉及复杂的数据处理,因此本系统软件采用C语言编写8。2.3总体方案设计本系统是由一个上位机系统和三个下位机系统构成,上位机系统是由AT89C51单片机串行通信最小系统、LCD1602显示器、中断发送信号按钮和接收/发送选择开关组成。三个下位机系统的构成完全相同主要有AT89C51单片机串行通信最小系统、LCD1602显示器和中断数据加1按钮组成。单片机最小系统是控制系统的核心,LCD1602液晶显示器作为串行通信接收/发送数据以及单片机状态的显示。上位机系统的发送/接收状态可以通过接收/发送选择开关进行控制,处于发送数据状态时,由中断发送信号按钮决定是否给从机发送数据。下位机系统始终处于串行中断状态,是接收还是发送数据由上位机发送的控制命令决定。系统框图如图2.8所示。图2.8 串行通信系统框图 本系统主要完成的功能是上位机和下位机的半双工通信,可以通过接收/发送选择开关来控制上位机是处于接收状态还是发送状态。当处于接收状态时,主机循环接收下位机00#、01#、02#三机的实时数据,并进行显示;当处于发送状态时,主机将接收到的三机数据按从大到小的数据排列,然后依次发送到00#、01#和02#机上,并进行显示。从机的数据通过外部中断输入,数据从0开始每来一次中断数据加1,加到9数据清0,再从0到9进行循环。2.4本章小结本章介绍了系统的方案选择,主要对单片机串行通信的相关知识进行了归纳整理和工作方式选择,以及模块化方案的比较与选择,最后确定了串行通信控制系统要实现的功能并绘制了系统框图。3.系统硬件设计根据总体设计方案框图,总系统由4个分系统组成,1个上位机系统,3个下位机系统。硬件主要由AT89C51微控制器、LCD1602液晶显示器、开关和按钮组成。3.1硬件电路核心器件介绍 本系统的两大核心器件位AT89C51单片机和LCD液晶显示器,AT89C51单片机完成系统的功能控制部分,液晶显示器完成通信过程中数据的实时显示。3.1.1 AT89C51的主要特点AT89C51是美国ATMEL公司生产的低电压,高性能CMOS的 8位单片机,采用单一+5V电源供电,片内含4KB的可反复擦写的只读程序存储器(PEROM)和128B的随机存取数据存储器(ROM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元。功能强大AT89C51单片机可提供许多高性价比的应用场合,可灵活应用于各种控制领域。AT89C51的主要部件:(1)一个以ALU为中心的8位中央处理器,完成运算和控制功能。(2)128B的内部数据存取存储器(内部RAM),其地址空范围00H-7FH。(3)21个特殊功能寄存器,离散分布于地址80H-FFH中。(4)程序计数器PC,是独立的16位专用寄存器,内容为将要执行的指令地址。(5)4KB Flash内部程序存储器(片内ROM),用来存储程序、原始数据、表格等。(6)4个8位可编程I/O口(P0、P1、P2和P3)。(7)一个UART串行通信口。(8)2个16位定时器/计数器。(9)5个中断源,两个中断优先级的中断控制系统。(10)一个片内振荡器和时钟电路。AT89C51的极限参数如表1所示:表1 AT89C51的极限参数:工作温度-55到+125储藏温度-65到+150任一引脚对地电压-1.0V到+7.0V最高工作电压6.6V直流输出电流15.0mA AT89C51单片机双列直插式引脚图如图3.1所示,其引脚说明如下:(1)电源引脚Vcc(40):接DC电源端,Vcc=+5V。GND(20):接地端。(2)P0-P3引脚P0口:是一组8位漏极开路型双向I/O,也即地址/数据总线复用口。作为输出口用时,每位能以吸收电流的方式驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。P1口:是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。图3.1 AT89C51双列直插式引脚图P2口:是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。P3口:是一组带有内部上拉电阻的8位双向I/O口,P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。作输入端时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如表2所示:表2 P3口的第二功能:端 口 引 脚 第 二 功 能P3.0 RXD (串行输入口)P3.1 TXD (串行输出口)P3.2 (外中断0)P33 (外中断1)P3.4 T0 (定时/计数器0)P3.5 T1 (定时/计数器1)P3.6 (外部数据存储器写选通)P3.7 (外部数据存储器读选通) (3) 时钟引脚XTAL1(19):振荡器反相放大器的及内部时钟发生器的输入端。XTAL2(18):振荡器放大器的输出端。(4)控制线引脚RST(9):复位输入端。此引脚出现至少两个机器周期的高电平,将单片机复位。ALE/(30):地址锁存/编程脉冲。对Flash存储器编程期间,该引脚用于输入编程脉冲。(29):外部ROM读选通信号。当AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两次有效,即输出两个脉冲,在此期间,当访问外部数据存储器,这两次有效的信号不出现。/VPP(31):内、外ROM选择/编程电源。为片内外ROM选择端。当保持高电平时,先访问片内ROM,当PC的值超过4KB时,自动转向执行片外ROM中的程序。当保持低电平时,只访问片内ROM。在Flash存储器编程期间,该引脚用于施加编程电压Vpp13。3.1.2 LCD1602液晶显示器模块1602是一款常用的字符型液晶,可显示2行16个字符。1602液晶模块带标准字库,内部的字符发生存储器(CGROM)已经存储了160个57点阵字符图形,32个510点阵字符图形。这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等。每一个字符都有一个固定的代码,这个代码就是对应字符的ASC码。比如大写的英文字母“A”的代码是01000001B(41H),显示时,只要将41H存入显示数据存储器DDRAM即可,液晶自动将地址41H中的中的点阵字符图形显示出来,我们就能看到字母“A”。1602采用标准的16引脚接口,引脚图如图3.2所示,其功能如表3所示。其中8位数据总线D0-D7和RS、R/W、EN三个控制端口,个分解时序操作速度支持到1MHz,并且带有字符对比度调节和背光。当RS和RW同时为低电平时,可以写入指令或显示地址;当RS为低电平,RW为高电平时,可以读忙信号;当RS为高电平,RW为低电平时,可以写入数据。1602LCD主要技术参数:显示容量:162个字符、芯片工作电压:4.55.5V、工作电流:2.0mA(5.0V)、模块最佳工作电压:5.0V、字符尺寸:2.954.35(WH)mm。图3.2 1602引脚图 表3 1602引脚使用说明编号符号引脚说明使用方法1VSS电源地-2VDD电源-3V0对比度信号调整端外接分压电阻,调节屏幕亮度4RS数据/命令选择端RS=1时选择数据寄存器,RS=0时选择指令寄存器5RW读/写选择端RW=1时执行读操作,RW=0时执行写操作6E使能信号端高电平使能7-14D0-D7数据I/O双向数据输入与输出15BLA背景光源正极接到或通过10左右电阻接到VDD16BLK背景光源负极接到VSS对1602显示字符控制,通过访问1602内部RAM地址实现,1602内部控制具有80 字节RAM,RAM地址与字符位置对应关系如图3.3所示。图3.3 1602的RAM地址与字符位置对应关系1602的读/写操作,即显示控制,是通过控制指令实现的,控制指令如表4所示714。表 4 控制指令表指令名称指令功能D7D6D5D4D3D2D1D0模式设置设置为162,57点阵,8位数据接口00111000开/关及光标设置D=1开显示;D=0关显示00001DCBC=1显示光标;C=0不显示光标00001DCBB=1光标闪烁;B=0光标不显示00001DCB输入模式设置N=1光标右移;N=0光标左移000001NSS=1文字移动有效;S=0文字移动无效000001NS3.2电路原理图设计 电路原理图设计是在实现系统功能基础之上,进行器件选型、器件值计算以及整合模块功能电路。但是在Proteus ISIS仿真环境中AT89C51微控制器和LCD1602的外围电路可以不加,通过属性设置对话框可以直接设置AT89C51的外部晶振频率,加载程序即可实现仿真。具体的电路模块设计说明将在本文第六部分AT89C51最小系统的外围电路中详细介绍,在此不再累述。本节主要介绍如何在Porteus ISIS环境中进行原理图绘制和原理图电气检测。3.2.1原理图硬件连接说明根据选择的设计方案,以及系统框图,可将硬件作如下连接:主、从机系统的液晶显示器的数据I/O口D0-D7依次接AT89C51的P1.0-P1.7端口,液晶显示器的RW读/写选择端、RS数据/命令选择端和E使能信号端依次接AT89C51的P2.0、P2.1和P2.2端口。上位机系统接收/发送选择开关上拉电阻接单片机的P0.0口,中断发送信号按钮上拉电阻接单片机P3.2外部中断0输入端。三个下位机系统的中断数据加1按钮上拉电阻接单片机P3.2外部中断0输入端。原理图中所有器件及其标称值、数量和代号如表5所示。表 5 元器件列表序号名称标称数量代号1电阻4707R1、R2、R3、R4、R5、R6、R72电阻10K4R8、R9、R10、R313电容22pF8C1、C2、C4、C5、C7、C8、C10、C114电容100uF4C3、C6、C9、C125单片机AT89C514U1、U2、U3、U46液晶显示器LM061L4LCD1、LCD2、LCD3、LCD478引脚排阻RESPACK-84RP1、RP2、RP3、RP48晶振12M4X1、X2、X3、X43.2.2 基于Proteus ISIS系统原理图设计Proteus ISIS 原理图设计是具智能性和人性化的设计,过程简明高效。ISIS原理图输出流程包括设置编辑环境、原理图连线、建立网络表、报表输出等过程。本系统的原理图绘制过程如下312:1.启动PROTEUS ISIS图标 ,进入ISIS窗口,如图3.4所示:图3.4 ISIS 窗口ISIS主要包括:菜单栏、工具栏、对象预览窗口、编辑区、器件选择按钮、对象选择器、仿真按钮、方位控制按钮、状态栏等。2.创建原理图文件单击菜单栏中的“FILE/NEW DESIGN”,弹出如图3.5所示的新建设计(Create New Design)对话框。单击“OK”按钮,则以默认的模板(DEFAULT)建立一个新的空白文件。图3.5 创建新设计文件单击工具按钮 ,取文件名“串行通信原理图”,后缀为DSN是系统自动加上去是,然后单击保存按钮,则完成新建文件操作。3.设置图纸大小根据设计串行通信原理图的大小,默认的A4的原理图纸不能满足设计的要求,需要对图纸的大小重新设置。单击“System/Set Sheet Size”,出现如图3.6所示的对话框,选择“User(自定义)”复选框,定义长为16in,宽位8in,点击“OK”。图3.6 图纸大小设置窗口4.从库中选择原理图中的元器件单击如图3.7所示中的“P”按钮,弹出如图3.8所示的元器件选择框。在“Keyword”栏中输入元器件“AT89C51”,则可元器件列表。从列表中选中AT89C51行后,再双击,便将AT89C51选入对象选择器中。同样的方法把原理图中的其他器件放入对象选择器中,以备画原理图时调用。图3.8 元器件选择框图3.7 选取元件按钮5.放置元器件在如图3.9所示的对象选择器中选择取AT89C51元器件,再在如图3.10所示的ISIS编辑区空白处单击,即可将元器件AT89C51放置在原理图编辑区中。同样的方法把对象选择器中的其他器件放入原理图编辑区中,以备原理图连线。图3.10 放置AT89C51图3.9 对象选择器6.放置电源、地、和输入输出终端单击绘图工具中的终端按钮 ,在对象选择器中单击终端符号POWER,放置电源,单击GROUND放置地,单击DEFAULT放置普通端子,如图3.11所示。7.连线单击自动布线图标 ,自动布线有效,根据原理图中器件的接线,单击要连线的起点和终点,系统便会自动以直角走线,成连线。连线结果如图3.12所示。图3.12 原理图连线结果图3.11 放置电源、地和端子8.统一编号单击Toos /Global Anntator,弹出如图3.13所示的整体编号对话框,在范围框中选择整体设计,在模式中选择Toal,单击“OK”即可将原理图中所有器件进行编号,其结果如图3.14所示。图3.14 整体编号结果图3.13 整体编号对话框8. 网络标号由于串行通信原理图中器件较多,都进行直接连线比较麻烦,而且容易造成连线错误,因此采用网络表号的方法,将部分要连接的端口,使其具有电气联系。双击原理图中的普通端 ,弹出如图3.15所示的对话框。在字符名称后中输入网络标号“L0”,单“OK”即可完成“L0网络编号”,结果如图3.16所示。两个或多个相对应端子的网络标号要相同。采用同样的方法完成原理图中的其他的网络标号。图3.16 网络标号结果图3.15 编辑网络标号9.电气检测单击菜单栏上的“Tools/Electrical Rule Check”,弹出检测结果窗口,如图3.17所示,结果显示本系统所设计的原理图符合电气规则,点击“另存为”保存结果。图3.17 电气检测结果10.元器件的属性设置对于串行通信原理图中的每一个元器件,都有对应的编号。电阻、电容等还有相应的量值。在原理图中双击电容C1弹出如下图3.18所示对话框。设置电容的值为22Pf,PCB封装信息为CAP10,不隐藏电容C1的编号和量值结果如图3.19所示。按照同样的方法设置串行通信原理图中其他器件的属性。至此完成了仿真原理图的绘制工作,完整的原理图见附件一。图3.18 元器件属性对话框图3.19 设置结果3.3本章小结本章介绍了系统的硬件设计,首先对串行通信控制系统的核心器件AT89C51单片机与LCD1602液晶显示器作了简单介绍。其次,给出了系统原理图的连线和器件清单。最后,着重介绍在具智能性、人性化和过程简明高效的Proteus ISIS编辑环境中进行本系统电路原理图的绘制过程。4.系统软件设计本系统的程序采用C51模块化程序编写,主要包括串行通信初始化、LCD液晶显示部分,硬件接口部分、主机程序和从机程序等几部分组成。4.1系统模块化子程序 为了使程序易于编写和移植以及具有可读行,结合本系统的功能特

温馨提示

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

评论

0/150

提交评论