智能仪表综合训练设计说明书.doc_第1页
智能仪表综合训练设计说明书.doc_第2页
智能仪表综合训练设计说明书.doc_第3页
智能仪表综合训练设计说明书.doc_第4页
智能仪表综合训练设计说明书.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

内蒙古科技大学本科生智能仪表课程设计说明书内蒙古科技大学智能仪表综合训练设计说明书题 目:串口通信学生姓名:XXX学 号:XXXX专 业:测控技术与仪器班 级:2007-3指导教师:XXX 老师摘要串行通信技术是一种重要的数据传输手段。全文介绍了STC89C52单片机与PC机之间进行串口通信的基本原理,并给出硬件连接图及其软件编程。本设计实现了单片机串口与PC机串口之间通过RS-232进行通信,设计了四个独立的按键作为数据发送端,以便方便往PC机上传送数据,同时借用串口调试助手查看所传送过来的数据以查看是否一致,其中四个按键一个是加一按键,减一按键,发送按键和换位按键,同时单片机还可以接收由PC机发送过来的数据。关键词:STC89C52单片机;RS-232;74HC573 目 录摘要1第1章概述31.1课题设计的目的31.2串口通信41.2.1串口的概念41.2.2串口通信的分类4第2章 总体方案设计72.1 STC89C52单片机的选用72.2 MAX232电平转换芯片82.3 LED显示的设计9第3章 硬件设计103.1 单片机主机系统电路103.1.1时钟电路103.1.2复位电路113.2 按键输入电路113.3 显示电路设计113.3.1 74HC573 概述123.3.2 74HC573 特性123.4 系统硬件原理图的绘制133.4.1 Protel99SE简介13第4章 软件设计144.1 C51语言144.2 主程序流程图154.3 子程序设计154.3.1 串口初始化154.3.2 接收子程序164.3.3 发送子程序174.3.4 显示子程序174.3.5 延时子程序18第5章 设计心得19参考文献20附录1:21附录2:22第1章概述1.1课题设计的目的近年来,由于PC机(个人计算机)优越的性价比和丰富的软件资源,己成为计算机应用的主流机种。而MCS- 51系列单片机在工业控制系统中也越来越得到广泛的应用,它以价格低、功能全、体积小、抗干扰能力强、开发应用方便等特点己渗透到了各个应用领域。特别是利用其能直接进行全双工通讯的特点,在数据采集、智能仪器仪表、家用电器和过程控制中作为智能前沿机。现代的实时监控系统和工业自动化领域中,串行通信技术是一种重要的数据传输首手段。在单片机应用系统中,作为下位机核心器件的单片机往往只负责数据的采集和通信。现阶段,这种应用的核心便是数据通讯,它包括单片机和上位机之间、客户端和服务器之间的通信,而单片机和上位机之间的数据通信则是整个系统的基础。单片机和PC机的通信是通过单片机的串口和PC机串口之间的硬件连接实现的。1.2串口通信1.2.1串口的概念 串口是计算机上一种非常通用设备通信的协议。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程采集设备的数据。串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。 1.2.2串口通信的分类计算机与外界的信息交换称为通信。通信的基本方式可分为并行通信和串行通信两种。所谓并行通信是指数据的各位同时在多根数据线上发送或接收。串行通信是数据的各位在同一根数据线上依次逐位发送或接收。串行通信按同步方式可分为异步通信和同步通信两种基本的通信方式。1、 同步通信,同步通信依靠同步字符保持通信同步。同步通信是由12个同步字符和多字节数据位组成,同步字符作为起始位以触发同步时钟开始发送或接收数据;多字节数据之间不允许有空隙,每位占用的时间相等;空闲位需发送同步字符。同步通信是一种连续传送数据的通信方式,一次通信传送多个字符数据,称为一帧信息。数据传输速率较高,通常可达56000bps或更高。其缺点是要求发送时钟和接收时钟保持严格同步。典型的同步通信数据帧格式如下所示:同步字符1同步字符2连续数据校验信息1校验信息22、 异步通信,在异步通信中,数据通常是以字符或字节为单位组成数据帧进行传送的。收、发端各有一套彼此独立,互不同步的通信机构,由于收发数据的帧格式相同,因此可以相互识别接收到的数据信息。异步通信依靠起始位、停止位保持通信同步。它的数据传送按帧传输,一帧数据包含起始位、数据位、校验位和停止位。异步通信对硬件要求较低,实现起来比较简单、灵活,适用于数据的随机发送/接收,但因每个字节都要建立一次同步,即每个字符都要额外附加两位,所以工作速度较低,在单片机中主要采用异步通信方式。串行通信波特率波特率bps(bit per second)是指每秒传输数据的位数,即:1波特 = 1位/秒(1bps)波特率的倒数即为每位传输所需的时间。相互通信的甲乙双方必须具有相同的波特率,否则无法成功地完成串行数据通信。串行通信的工作方式串行通信按照数据传送方向可分为三种制式:1、单工制式(Simplex)单工制式是指甲乙双方通信时只能单向传送数据,发送方和接收方固定。2、半双工制式(Half Duplex)半双工制式是指通信双方都具有发送器和接收器,既可发送也可接收,但不能同时接收和发送,发送时不能接收,接收时不能发送。3、全双工制式(Full Duplex)全双工制式是指通信双方均设有发送器和接收器,并且信道划分为发送信道和接收信道,因此全双工制式可实现甲乙双方同时发送和接收数据,发送时能接收,接收时也能发送。串行通信虽然有其自身优点:如适合长距离通信,有一定的纠错能力等,但并行通信在短距离(数米范围内)传输过程中的优点是显而易见的。首先串行通信时要设置串口数据,如:串口号(Com1、Com2或者其他串口)、波特率、数据位数、停止位、校验位等等。而且单片机与PC机的串口数据必须一一对等,否则不能传输。而并行传输时,无需上述过程。其次,PC机的串口电平值为+12V-12V,单片机是TTL电平(0+5V),两者必须要经过电平转换芯片进行电平间的转换。而进行并行传输时,由于双方都是TTL电平,所以PC的并口可以与单片机或其他芯片直接相连;另外,串行传输速度慢,每次只能传送一位,而并行每次可以传送8位,速度上的差异显而易见。而对于单片机,串口(UART)是最常用的端口,尤其对于存在两个或多个串口的单片机来说,充分利用串口进行通信是非常重要的。第2章 总体方案设计2.1 STC89C52单片机的选用MC S-52 单片机有一个全双工的串行通讯口UART,利用其RXD和TXD与外界进行通信,其内部有2个物理上完全独立的接收、发送缓冲器SBUF,可同时发送和接收数据。所以单片机和PC机之间可以方便地进行串口通讯。单片机串口有3条引线:TXD(发送数据),RXD(接收数据)和GND(信号地)。图2-1 89c51引脚图管脚图stc89c52引脚简介18:I/OP1口(P1.0P1.7);9:复位脚(RST/Vpd);1017:I/OP3口(P3.0=RXD,P3.1=TXD,P3.2=-INT0,P3.3=-INT1,P3.4=T0P3.5=T1,P3.6=-WR,P3.7=-RD)主要是此引脚;18、19:晶振(18=XTAL2,19=XTAL1);2128:I/OP2口(P2.0P2.7); 29:-PSEN;30:ALE/-PROG;31:-EA/Vpp3239:I/OP0口(P0.7P0.0);40:+5V电源。2.2 MAX232电平转换芯片该产品是由德州仪器公司(TI)推出的一款兼容RS232标准的芯片。由于电脑串口rs232电平是-10v +10v,而一般的单片机应用系统的信号电压是ttl电平0 +5v,max232就是用来进行电平转换的,该器件包含2驱动器、2接收器和一个电压发生器电路提供TIA/EIA-232-F电平。主要特点 1、单5V电源工作2、 两个驱动器及两个接3、 30V输入电平4、低电源电流:典型值是8mAIBM-PC机有两个标准的RS-232串行口,其电平采用的是EIA电平,而MCS-51单片机的串行通信是由TXD(发送数据)和RXD(接收数据)来进行全双工通信的,它们的电平是TTL电平;为了PC机与MCS-51机之间能可靠地进行串行通信,本设计利用MAX232进行电平的转换。图2-1 转换芯片电路2.3 LED显示的设计LED数码管显示分为静态显示方式和动态显示方式。静态显示方式是每一位字段码分别从控制口输出,保持不变直至CPU刷新。其特点是:编程较简单,但占用口线多,一般适用于显示位数较少的场合。动态显示方式是在某一瞬时显示一位,依次循环扫描,轮流显示,由于人的视觉滞留效应,人们看到的是多位同时稳定显示。其特点是占用端线少,电路较简单,编程较复杂,CPU要定时扫描刷新显示。一般适用于显示位数较多的场合。本次采用的是LED动态显示方式,用74HS573锁存器来驱动数码管,控制段码,单片机脚直接位选控制数码管 。第3章 硬件设计3.1 单片机主机系统电路单片机作为整个硬件系统的核心,它既是协调整机工作的控制器,又是数据处理器。它由单片机、时钟电路、复位电路等组成。为了简化电路、降低成本、提高可靠性,本系统采用AT89C52作为主控制器,它是一款与MCS51完全兼容且内部自带有4KB的Flash存储器及256KB RAM单元的芯片,因此可以不需另外扩展EEPROM及静态RAM就可以实现所需功能。图3-1 单片机主机系统图3.1.1时钟电路单片机的时钟信号用来提供单片机片内各种微操作的时间基准,时钟信号通常用两种电路形式得到:内部振荡和外部振荡。MCS-52单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTALl和XTAL2分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,实际使用中常采用这种方式,如图3-1所示在其外接晶体振荡器(简称晶振)或陶瓷谐振器就构成了内部振荡方式,片内高增益反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自激振荡器并产生振荡时钟脉冲。该设计的晶振为11.0592MHZ。3.1.2复位电路为了初始化单片机内部的某些特殊功能寄存器,必须采用复位的方式,复位后可使CPU及系统各部件处于确定的初始状态,并从初始状态开始正常工作。单片机的复位是靠外电路来实现的,在正常运行情况下,只要RST引脚上出现两个机器周期时间以上的高电平,即可引起系统复位,但如果RST引脚上持续为高电平,单片机就处于循环复位状态。复位后系统将输入/输出(1/0)端口寄存器置为FFH,堆栈指针SP置为07H, SBUF内置为不定值,其余的寄存器全部清0,内部RAM的状态不受复位的影响,在系统上电时RAM的内容是不定的。复位操作有两种情况,即上电复位和手动(开关)复位。本系统采用上电复位方式。图3-1中R1和Cl03组成上电复位电路,其值R取为100K, C取为10F。3.2 按键输入电路本次设计利用了四个独立的按键,采用中断方式完成系统的输入,其中一个加一按键,一个减一按键,一个发送按键,一个位选按键。当某一个键按下时显示为低电平,通过对该键进行相应的编程最终信号由LED显示出来。图按键原理图3.3 显示电路设计本设计采用的是LED动态显示,用74HS573锁存器作为数码管的驱动电路,对于数据有锁存功能,当锁存端11脚为低电平时,上一次输入的数据在输出端仍然保持,无论输入端输入什么数据都不变,当为高电平时相当于导线输入是什么,输出就是什么。3.3.1 74HC573 概述74HC573是一款高速CMOS器件,74HC573引脚兼容低功耗肖特基TTL(LSTTL)系列。74HC573包含八路D 型透明锁存器,每个锁存器具有独立的D 型输入,以及适用于面向总线的应用的三态输出。所有锁存器共用一个锁存使能(LE)端和一个输出使能(OE)端。当LE为高时,数据从Dn输入到锁存器,在此条件下,锁存器进入透明模式,也就是说,锁存器的输出状态将会随着对应的D输入每次的变化而改变。当LE为低时,锁存器将存储D输入上的信息一段就绪时间,直到LE的下降沿来临。当OE为低时,8个锁存器的内容可被正常输出;当OE为高时,输出进入高阻态。OE端的操作不会影响锁存器的状态。图2-2 74LS573引脚3.3.2 74HC573 特性输入输出分布在芯片封装的两侧,为微处理器提供简便的接口 用于微控制器和微型计算机的输入输出口 三态正相输出,用于面向总线的应用 共用三态输出使能端 逻辑功能与74HC563、74HC373相同 遵循JEDEC标准no.7A ESD保护 HBM EIA/JESD22-A114-C超过2000 V MM EIA/JESD22-A115-A超过200 V 温度范围 :-40+85 -40+125 3.4 系统硬件原理图的绘制3.4.1 Protel99SE简介Protel99 SE的功能共分5个模块,分别是原理图设计、PCB设计(包含信号完整性分析)、自动布线、原理图混合信号仿真、PLD设计。Protel99SE由两大部分组成:电路原理图设计(Advanced Schematic)和多层印刷电路板设 计(Advanced PCB)。其中Advanced Schematic由两部分组成:电路图编辑器(Schematic)和元件库编辑器(Schematic Library)。Protel99 SE采用了“*.DDB”数据库格式保存文件,所有与同一设计相关的原理图文件、印制电路板文件、各种报表文件都可以在同一个“*.DDB”数据库中并存,对于集体开发和文件的管理很方便。1、电路原理图编辑器(Schematic)的使用 进入Design Protel99se后在Documents中通过右键 “New” 建立 “Schematic Document”文件,打开后即可进行电路原理图的编辑。先按照已画好的电路草图将所有元件找到拖放到编辑框里。将编辑框缩小,将元件照电路的样子搭好,整体上排列匀称。接下来就可以进行局部的连线了。或者可以先将电路的各个模块先搭好,再通过框定各模块平移组合成完整的电路,取消框定要通过EditDeSelectInside Area再用鼠标框定以前选中的模块,就可以解除,表现为模块由黄色变成普通颜色。对某个工程的操作是对一个数据库的操作,因此不同的数据库会在不同的窗口中打开,通过最小化可看高各个数据库的窗口。2、原理图元件库编辑器(Schematic Library) 虽然Protel本身包含了庞大的元件库,但在实际应用中总会遇到找不到元件的情况,这时就需要根据元件资料自己动手在元件库中制作这个元件。还有一种情况是各种元件分散在各个公司的元件库中,不便与使用,所以要把常用元件集中到一个元件库中,这就要自己动手制作,将经常用到的元件复制到这个元件库中,方便以后的使用。第4章 软件设计4.1 C51语言单片机C51语言是由C语言继承而来的。和C语言不同的是,C51语言运行于单片机平台,而C语言则运行于普通的桌面平台。C51语言具有C语言结构清晰的优点,便于学习,同时具有汇编语言的硬件操作能力。对于具有C语言编程基础的读者,能够轻松地掌握单片机C51语言的程序设计。 C51语言的特点:单片机C51语言兼备高级语言与低级语言的优点。语法结构和标准C语言基本一致,语言简洁,便于学习。运行于单片机平台,支持的微处理器种类繁多,可移植性好。对于兼容的8051系列单片机,只要将一个硬件型号下的程序稍加修改,甚至不加改变,就可移植到另一个不同型号的单片机中运行。具有高级语言的特点,尽量减少底层硬件寄存器的操作。单片机C51语言提供了完备的数据类型、运算符及函数供使用。C51语言是一种结构化程序设计语言,可以使用一对花括号“”将一系列语句组合成一个复合语句,程序结构清晰明了。C51语言代码执行的效率方面十分接近汇编语言,且比汇编语言的程序易于理解,便于代码共享。 本次设计应用的是C51语言进行的编程。4.2 主程序流程图主程序在初始化串口,显示单元清零之后,便开始等待按键按下,当K2键按下时,位选码就加一,如果初始位置为个位,此时选中十位,以此类推,当位选码大于3时,将其重置为0。当按下K3键时,若此时的位选是个位则对个位加一,若为十位则对十位加一,以此类推,当显示的数值为9时,如果再加一,现实的数据将会从0开始重新计数。当K4键按下时,若此时位选为个位,则对个位减一,若为十位则对十位减一,以此类推,当显示的数值为0时,如果再减一,现实的数据将会从9开始重新计数。当K1键按下时,就将前面的个十百千位的数值传送出去。当有串行中断来临时,就执行中断程序,将接收的数据通过显示程序在LED数码管上显示出来。图4-2 主程序流程图4.3 子程序设计4.3.1 串口初始化如图4-2所示为本次课程设计的串口初始化流程图。PC机与单片机之间进行串口通信,首先要进行的就是串口的初始化。串口的工作方式通过写SCON控制寄存器0x50使串口工作在工作方式一,串行允许接收。TMOD=0x20使定时器工作在方式二,是一个自动重装初值的八位定时器。随后将用初值计算公式计算出初值为0xf3装载入定时器1,然后开放串口中断,允许定时器1工作,最后开总中断,就此完成了串口的初始化。图4-2 串口初始化流程图4.3.2 接收子程序当PC机有数据传来时,引起串行中断,随即执行中断程序,通过查询接收标志位RI,确定串行中断,手动清零RI标志位。然后将接收缓冲器里的数据转存入内存中,调用显示程序,动态显示在LED数码管上。其程序流程图如4-3所示。图4-3 接受子程序流程图4.3.3 发送子程序当发送按键按下后,就会将数据放入缓存器中,查询发送中断标志位TI,若TI为“1”,则发送完成;然后手动将TI清零。图4-4 发送子程序4.3.4 显示子程序本次设计的显示是采用的四个LED的动态显示方式,573锁存器控制段码,单片机引脚直接位选控制数码管。在显示开始的时候,会先给四个LED进行清零操作,以确保数据的正常显示。另外每送入一位数据,将会进行一毫秒的延时操作,然后再送下一位数据。如图4-5就是显示模块的流程图。图4-5 显示子程序流程图4.3.5 延时子程序实现延时通常有两种方法:一种是硬件延时,要用到定时器/计数器,这种方法可以提高CPU的工作效率,也能做到精确延时;另一种是软件延时,这种方法主要采用循环体进行。本设计采用的是软件延时,具体的程序参见附录2.第5章 设计心得经过了七周的智能仪表课程设计,我觉得我的收获挺多的。对于这次的课程设计,在我看来不仅仅是单纯的对单片机知识的应用,而是多学科多领域的综合设计。做完这次的课程设计,我深刻的体会到做这个设计不是光靠学好单片机这一门课就可以的。在这个课程项目的设计过程中,我们充分体会到了要全面发展,各个学科都要学好,知识的全面性很重要。比如在编写程序时,我们就明显感觉到了C语言的基础不够扎实,当初学C语言的时候并没有意识到它的重要性,而当我们真正开始做设计的时候才发现一个课程的项目设计是需要其他许多项目来给它做基础的。还有就是对待问题的态度上,遇到不懂的问题一定要虚心向别人请教,一定要有耐心。比如这次的设计中,在画原理图时,由于粗心,出现了很多错误,但在老师和同学的帮助下一一改正了。学习知识一定要扎扎实实的一步一步走,走捷径、一步登天的想法是万万不能的。编程时,出现了很多小错误,甚至有时从流程上就走不通,我们不断的进行修改和测试,逐步完善整个程序。只有耐心、细致的工作,才使得整个程序越来越完善。当然,我们的设计还有很多需要改进的地方,我们想在日后通过老师的指导、同学的帮助下,逐步使这个设计更加完美、成熟起来。参考文献1 胡汉才单片机原理及其接口技术清华大学出版社,20042 吴飞青等单片机原理与应用实践指导机械工业出版社 2009.23 李建忠.单片机原理与应用(第二版).西安电子科技大学出版社4 李朝青.单片机原理及接口技术(简明修订版).杭州:北京航天航空大学出版社,19985 李广弟.单片机基础M.北京:北京航天航空大学出版社,19946 阎石.数字电子技术基础(第三版).北京:高等教育出版社,19897 廖常初.现场总线概述J.电工技术,19998 周良权,傅恩锡,李世馨.模拟电子技术基础(第二版).北京:北京高等教育出版社,2001.129 李干林.STAR ES598PCI试验仪 微机原理实验指导书M.南京工程学院,200810 龚建伟编著.Visual C+/Turbo C串口通信编程实践.北京:电子工业出版社,200411 胡汉才.单片机原理及其接口技术Ml.北京:清华大学出版社,199612 李朝青.PC机及单片机数据通信技术.北京:北京航空航天大学出版社,1999附录1:硬件原理图附录2:#include #include #define uint unsigned int#define uchar unsigned char sbit K1=P27;sbit K2=P26;sbit K3=P25;sbit K4=P24;char a4,m;/此表为 LED 的字模, 共阴数码管 0-9 - Unsigned char code Disp_Tab=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /段码控制/此表为8个数码管位选控制, 共阴数码管 1-8个 - unsigned char code dispbit8=0xfe,0xfd,0xfb,0xf7,0xef,0xdF,0xbF,0x7F; /位选控制 查表的方法控制void delay_50ms(unsigned int t)unsigned int j; for(;t0;t-) for(j=6245;j0;j-);void play(uchar post,uchar date) P0 = Disp_Tabdate ; P1 = dispbitpost; /使用查表法进行位选 delay(1) ;/扫描间隔时? v

温馨提示

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

评论

0/150

提交评论