




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、延陵学院毕业设计说明书 PAGE II 基于51单片机的远程(yunchng)温度显示系统的设计与实现 基于51单片机的温度(wnd)远程显示系统的设计与实现摘 要随着现代工业的逐步发展,在工业生产中,温度、压强、湿度和液体是四种最常见的过程变量。其中,温度是一个非常重要的过程变量。比如:在冶金产业、化工产业、电力产业、机械加工以及食品加工等诸多领域(ln y),基本都离不开对各种加热炉、热处理炉、反应炉和锅炉的温度进行控制。但是,用常规的操作方法,满足不了对较高的性能要求。利用单片机对它们来进行操作控制不但具有控制方便、灵活性大和简单的优点,而且可以大幅度提高被测温度的技术指标,从而能够大大
2、提高产品的质量和数量。因此,单片机对温度的控制问题是一个工业生产中经常会遇到的控制问题。本系统实现一个温度远程(yunchng)显示系统,基于STC89C52单片机为设计开发平台,用DS18B20温度传感芯片完成对温度的采集,配合MAX3232通信接口芯片实现温度的远程传输(还可以用232转485接口来增大传输距离),用简单的通信协议来增加传输可靠性,用蜂鸣器实现高低温报警,报警温度可用按键调节。最后用12864液晶显示屏完成显示功能。关键词:单片机; DS18B20;MAX3232;12864液晶显示屏 DESIGN AND IMPLEMENTATION OF THE SYSTEM 51 S
3、INGLE REMOTE TEMPERATURE DISPLAYABSTRACTWith the gradual development of modern industry, in industrial production, temperature, pressure, humidity, and fluid is four of the most common process variables. Among them, the temperature is a very important process variables. For example: in metallurgical
4、 industry, chemical industry, power industry, machinery processing, and food processing, and many other areas, basically cannot leave for various heating furnace, heat treatment furnace, reactor and boiler temperature control. However, with the regular operation method, it cant satisfy the requireme
5、nts for high performance. Using single chip microcomputer to control the operation of them is not only possesses the advantages of convenient control, flexibility and simple, but also can greatly improve the technical index of the measured temperature, thus can greatly improve the quality and quanti
6、ty of the product. Therefore, the single-chip computer control of the temperature problem is an industrial production control problems often encountered.The system implements a remote display system temperature,based on STC89C52 microcontroller design and development platform,using DS18B20 temperatu
7、re sensor chip to complete the collection of temperature, coordinate the MAX3232 chip communication interface to finishing remote transmission of temperature (you can also use 232 to 485 to increase the transmission distance), employing a simple communication agreement to increase transmission relia
8、bility and to achieve alarm buzzer high-low temperature, alarm buttons adjust the temperature available. Finally, complete the 12864 LCD display. Key words:MCU;DS18B20;MAX3232;12864LCD display TOC o 1-3 h z u HYPERLINK l _Toc263430751 第1章 绪论(xln) PAGEREF _Toc263430751 h 1 HYPERLINK l _Toc263430752 1
9、.1 温度(wnd)采集部分 PAGEREF _Toc263430752 h 1 HYPERLINK l _Toc263430753 1.2 远程(yunchng)传输部分 PAGEREF _Toc263430753 h 1 HYPERLINK l _Toc263430754 1.3 显示部分 PAGEREF _Toc263430754 h 1 HYPERLINK l _Toc263430755 第2章 系统方案设计 PAGEREF _Toc263430755 h 3 HYPERLINK l _Toc263430756 2.1 方案设计 PAGEREF _Toc263430756 h 3 HY
10、PERLINK l _Toc263430757 2.2 方案论证 PAGEREF _Toc263430757 h 4 HYPERLINK l _Toc263430758 2.3 方案具体实现流程 PAGEREF _Toc263430758 h 4 HYPERLINK l _Toc263430759 第3章 系统详细设计 PAGEREF _Toc263430759 h 7 HYPERLINK l _Toc263430760 3.1 电源 PAGEREF _Toc263430760 h 7 HYPERLINK l _Toc263430761 3.2 复位电路 PAGEREF _Toc2634307
11、61 h 8 HYPERLINK l _Toc263430762 3.3 时钟电路 PAGEREF _Toc263430762 h 8 HYPERLINK l _Toc263430763 3.4 ISP下载电路 PAGEREF _Toc263430763 h 9 HYPERLINK l _Toc263430764 3.5 报警部分 PAGEREF _Toc263430764 h 10 HYPERLINK l _Toc263430765 3.5.1 硬件电路设计 PAGEREF _Toc263430765 h 10 HYPERLINK l _Toc263430766 3.5.2 软件设计 PAG
12、EREF _Toc263430766 h 11 HYPERLINK l _Toc263430767 3.6 温度采集部分 PAGEREF _Toc263430767 h 12 HYPERLINK l _Toc263430768 3.6.1 DS18B20温度传感器 PAGEREF _Toc263430768 h 12 HYPERLINK l _Toc263430769 3.6.2 电路原理图 PAGEREF _Toc263430769 h 14 HYPERLINK l _Toc263430770 3.6.3 软件设计 PAGEREF _Toc263430770 h 14 HYPERLINK l
13、 _Toc263430771 3.7 串行通信模块 PAGEREF _Toc263430771 h 19 HYPERLINK l _Toc263430772 3.7.1简述 PAGEREF _Toc263430772 h 19 HYPERLINK l _Toc263430773 3.7.2 硬件电路设计 PAGEREF _Toc263430773 h 22 HYPERLINK l _Toc263430774 3.7.3 软件设计 PAGEREF _Toc263430774 h 23 HYPERLINK l _Toc263430775 3.8 显示模块 PAGEREF _Toc263430775
14、 h 26 HYPERLINK l _Toc263430776 3.8.1 LCD1602的基础知识 PAGEREF _Toc263430776 h 26 HYPERLINK l _Toc263430777 3.8.2 硬件电路设计 PAGEREF _Toc263430777 h 26 HYPERLINK l _Toc263430778 第4章 仿真与实现 PAGEREF _Toc263430778 h 31 HYPERLINK l _Toc263430779 4.1 软件编程环境 PAGEREF _Toc263430779 h 31 HYPERLINK l _Toc263430780 4.1
15、.1 Keil C51开发系统基本知识 PAGEREF _Toc263430780 h 31 HYPERLINK l _Toc263430781 4.2 仿真(fn zhn)环境 PAGEREF _Toc263430781 h 32 HYPERLINK l _Toc263430782 4.2.1 Protues软件(run jin)介绍 PAGEREF _Toc263430782 h 32 HYPERLINK l _Toc263430783 4.2.2 仿真(fn zhn)结果 PAGEREF _Toc263430783 h 32 HYPERLINK l _Toc263430784 4.3 实
16、物展示 PAGEREF _Toc263430784 h 33 HYPERLINK l _Toc263430785 总 结 PAGEREF _Toc263430785 h 36 HYPERLINK l _Toc263430786 致 谢 PAGEREF _Toc263430786 h 37 HYPERLINK l _Toc263430787 参考文献 PAGEREF _Toc263430787 h 38常州工学院计算机信息工程学院毕业设计说明书 第1章 绪论(xln)单片机已经在测控领域中获得了广泛的应用,它除了可以测量电信号以外,还可以用于温度(wnd)、湿度等非电信号的测量,能独立工作的单片
17、机温度检测、温度控制系统已经广泛应用于很多领域。本次设计,核心可以归结为三个部分,即温度采集部分、远程(yunchng)传输部分和显示部分。1.1 温度采集部分单片机的接口信号时数字信号,要想用单片机获取温度这类非电信号的信息,毫无疑问,必须使用温度传感器。温度传感器的作用是将温度信息转换为电流或电压输出,如果转换后的电流或电压输出时模拟信号,那么还必须进行A/D转换,以满足单片机的需要。该模块采用美国达拉斯半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。与传统的热敏电阻相比,它能够直接读出被测温度并可根据实际要求通过简单的编程实现9-12位的数字值读数方式。可以分别在93.7
18、5ms和750ms内完成9位和12位的数字量,并且从采用I2C总线读数方式,接线方便。并且从DS18B20读出的信息或写入DS18B20的信息数据只要有一根接口线(单线接口)读写,而温度转变的功率起源于数据总线的发送端,其数据总线自身也能够向与其所连接的DS18B20供电,而不须要外部提供电源。因此采用DS18B20可使系统的整体应用结构更加趋于简单化。它在测量温度精度、时间转换、距离传输、显示屏分辨率等方面相比较于DS1820有了巨大的改善,让用户使用起来更加方便,也收到了令人意想不到的效果。1.2 远程传输部分串行通信与并行通信相比,虽然速度较慢,但传输距离长,而且使用的数据线少,节约通信
19、成本,因此常应用于需要长距离通信而又对速度要求不高的场合,非常适合使用在本设计中。如果连个51单片机系统之间的距离很短,可以通过将它们自带串口直接相连的方法实现双机通信,连接时注意要将一方的TxD和另一方的RxD引脚连接。RS-485标准是由两个行业协会于1983年共同制订合开发的,即EIA电子工业协会和TIA通讯工业协会。EIA开始时在它所有的标准前加上“RS”前缀。如今EIA-TIA已经开始正式启用“EIA/TIA”替代“RS”以此用来明确其根本来源。修改后为其命名TIA/EIA-485-A。但是人们仍然习惯的称它为RS-485。RS-485是由RS-422发展衍变而来的。这两者在工业应用
20、领域中是取得最成功的案例。但是RS-422是一个差分标准模式,为了弥补RS232的诸多不足而发展衍变来的,它改善了RS-232通讯传输距离极短和工作效率低的缺点,RS-422设置了一个平衡双向通信接口,将数据传输速度提高到10Mbps,将传输速率低于1Mbps时传输距离加长到3566英尺,而且可以在单条平衡线上联接多个数据接收器。 RS-485是在RS-422的基础之上提出来的,为了拓展其应用范围与提高其通信能力,RS-485增加了多模块、双向通讯能力,换句话说就是可以让多个发送器联接到同一根数据总线上,与此同时,RS-485还提高了发送器的驱动(q dn)系统应用能力与改善了通讯间断冲突的保
21、护性能,利用差分传输的特点拓展数据总线的应用范围。RS-485基本上算是符合大多数的RS-422要求规格。但是,与此相反就难以实现。能够实现RS-485电平转换(zhunhun)的芯片有很多,本设计选用常用的Maxim公司的MAX3232集成芯片。MAX3232是一款可以实现EIA-232接口的低功耗电平转换芯片,它包含两路收发器,数据传输速率可保证为250kbps,具有强静电保护能力。1.3 显示(xinsh)部分在单片机系统中应用LCD液晶显示器作为输出器件特点如下所示:显示质量好:因为LCD液晶显示在某一点收到信号后就会始终保持当前色彩与亮度,固定发光,且不同阴极射线管显示器(CRT)这
22、样需要持续刷新新的亮点。所以,LCD液晶显示器显示质量高并且不会出现闪烁情况。字接口:LCD液晶显示器基本上都是数字模式的,与单片机系统相连的接口不仅简单可靠,而且可操作性强。 体积较小、重量较轻:LCD液晶显示器是通过显示屏上的正负电极来控制液晶分子的状态以达到显示的目的,它在重量上较相同面积的传统型显示器而言要轻的多。功耗低:具体来说,LCD液晶显示器的功率消耗主要损耗在其内部的正负电极与驱动IC上,所以耗电量较其它显示器而言要少得多。本次设计使用的LCD1 602液晶显示模块,它可以显示两行,每行16个字符,采用单+5V电源供电,外围电路配置简单,价格便宜,具有很高的性价比。常州工学院计
23、算机信息工程学院毕业设计说明书 第2章 系统(xtng)方案设计2.1 方案设计方案(fng n)一:该方案由单片机、模拟温度传感器AD590、运算放大器、AD转换器、LCD显示电路、电平转换模块、报警器模块组成。本方案使用(shyng)模拟温度传感器AD590当作测量温度元器件。传感器把测量到的温度变换转变成电流变化,然后通过模拟电路将其转变成电压变化,接着采用运算放大器将变化的信号来进行适度的放大,最后通过数模转换器把模拟信号转变为数字信号,传给温度采集部分的单片机,然后通过串口发送给显示部分的单片机。单片机将温度值进行处理之后用LCD显示 ,当温度值超过设置值时,系统开始报警。方案一温度
24、测量系统方案框图如图2-1所示。图2-1 方案一温度测量系统方案框图方案二:该方案使用了AT89S52单片机作为控制核心,以智能温度传感器DS18B20为温度测量元件,温度采集部分通过访问DS18B20得到温度值,将温度值由串口经MAX3232传入显示部分,为提高传输质量,这里使用了简单的握手校验协议,显示部分通过按键模块来对常温进行设置,显示电路使用 LCD1602模块,使用有源蜂鸣器当作报警模块。测温系统框图如图2-2所示。 图 2-2 测温系统(xtng)框图2.2 方案(fng n)论证方案论证(lnzhng)如下所示:方案一:通过模拟温度传感器而转换得到的结果,须要由运算放大器与AD
25、转换器来传送给中央处理器。虽然它的控制十分简单,但是其电路较为复杂。因为采用了许多分立元件与模数转换器件,所以,出错率比较高,测量得到的结果不那么准确。于是本方案便无可取性。方案二:利用智能温度传感器DS18B20精度极高,电路简单易懂的特点,仅仅须要模拟DS18B20的读写顺序,根据DS18B20的协议来读取转变的温度。因此本方案的可取性较高。 由此可见,方案二的硬件电路设计更加简单,程序设计较为复杂一些,使用开发工具KEIL用C语言对此系统进行程序设计,可以达到了预期的效果。显而易见,此方案完成要有可行性,体现了技术的先进性,经济上也没有问题。综上所述,本课题采用方案二对系统进行设计。2.
26、3 方案具体实现流程在确立了方案二为具体实行方案后,接下来将是主程序的处理流程。本设计中,分为温度采集部分与显示部分,这两部分通过串口通信又彼此独立运行。温度采集部分以一片AT89S52单片机为核心,依靠DS18B20为温度传感器,测出温度采集部分所在位置的温度,然后通过单片机串口发送数据,通信部分用一块MAX3232芯片为电平转换芯片,连接DB-9接线器,有效提高了发送距离,通过串口连接线通向显示部分。温度采集部分处理流程如图2-3所示。显示部分的核心部件同样是一片AT89S52单片机,同样用一块MAX3232电平转换芯片和DB-9连接器接收数据,为提高通信的准确率,通信时满足简单的握手协议
27、,并在收到数据后进行数据校验。如增加传输距离,用232转485转换器。用LCD1602液晶屏作为现实设备,将接收到的温度显示,显示部分还具有报警温度,当温度低于低温报警温度或高于高温报警温度时,蜂鸣器会发出报警声音,并且提供了低温报警和高温报警温度的设置,可以通过按键实现,显示部分处理流程如图2-4所示。图 2-3 温度采集部分(b fen)处理流程图图 2-3 温度采集部分(b fen)处理流程图 图2-4 显示部分(b fen)处理流程图常州工学院计算机信息工程学院毕业设计说明书 第3章 系统(xtng)详细设计3.1 电源(dinyun)电压方面:AT89S52的工作电压范围为3.5v5
28、.5v,usb可以提供5v的稳压直流电,从电压上可以满足供电(n din)要求。功率方面:主板上单个USB口的最大供电电流是400-500毫安, 由400ma计算:5v*0.4a=2W,故外加实验板的满载功率应不超过2W。本设计中,温度采集部分的主要组件为AT89S52一片,MAX3232一片,DS18B20一片。显示部分主要组件为AT89S52一片,MAX3232一片,LCD1602液晶显示器一个。各组件功耗如表3-1 表 3-1 各组件功耗表组件名称功耗AT89S52单片机约0.025WLCD1602约0.01WMAX3232约0.0015WDS18B20约0.0075W由此可知,不管是温
29、度采集部分还是温度显示部分,其功率都远远小于2W。因此,本设计采用USB供电的方式是可行的。另外为了提供更加稳定的直流电,需要电容来滤波。大电容滤低频,小电容滤高频具体电路如图3-1所示。 图3-1 电源部分原理图3.2 复位(f wi)电路许多(xdu)单片机系统,在运行过程中,会出现“死机(s j)”、“程序走飞”等现象,这时候,复位电路的作用就显得尤其重要。单片机的复位方法有:手动按钮复位与上电复位。本设计采用手动按钮复位。手动按钮复位须要人为的在复位输入端RST上添加高电平。通常采用的方法是在RST端与正电源Vcc之间接入一个按钮。当人为的按下按钮开关时,则Vcc的+5V电平便会直接添
30、加到RST端。手动按钮复位电路图如图3-2所示。在按钮保持接通之前有着数十毫秒的时间空隙,因此,能够完全满足复位的时间要求。单片机复位电路要求有一个持续时间,加上电容可以利用其两端电压不能突变的特性,使复位电路电平维持一定时间,使单片机复位。单片机复位电平在其手册里可以看到,另外这个电容还可以去除一些杂波的干扰,防止单片机被错误复位。电容通常取 10UF 或 22UF ,铝电解电容即可。下拉电阻的作用实际上是吸收电流,有时候接口会有多个状态,比如高电平、低电平和高阻,甚至还有不确定的状态,这时候就需要使用下拉电阻,使得我们能快速达到我们需要的状态。图3-2 复位电路电路图3.3 时钟电路51单
31、片机的时钟信号通常用两种电路形式得到:内部时钟和外部时钟。外部时钟是把外部已有的时钟信号引入单片机内。这种方式适宜用来使单片机的时钟与外部信号保持同步。在引脚XTAL1与XTAL2外接晶体振荡器和陶瓷谐振器,由此就形成了内部时钟。因为单片机的内部具有一个(y )高增益反相放大器,所以当外接晶体振荡器后,就形成了自激振荡器而且产生振荡时钟脉冲。本设计采用内部振荡方式,电路如图3-3所示。图3-3中,电容器Cl,C2起稳定(wndng)振荡频率、快速起振的作用,其电容值一般在5-30pF。晶振频率的值为12MHz。通过内部振荡方式所得到的时钟信号较为稳定,实际电路中使用较多。 图 3-3 时钟(s
32、hzhng)电路电路图3.4 ISP下载电路ISP(in-system programming)其实就是在线编程,以往单片机下载程序都需要烧写器之类的东东,并且需要把单片机从电路板上拔下来烧写,烧好再插上,很麻烦。ISP功能可以通过非常简单廉价的下载线直接在电路板上给单片机下载程序或者擦除程序,可以在线调试,免去插来插去的麻烦。51的S系列,就有ISP功能。ISP接口连线如图3-4所示。 图 3-4 ISP连线图这次我们购买郑州金聚宝电子科技有限公司的USBASP/USBISP下载器,这款下载器支持(zhch)ATMEL MEGA系列 AT89S51/52系列 ISP下载。使用(shyng)这
33、款下载器,首先需要在PC端安装驱动。然后用所提供的下载线将USBASP下载器与开发板ISP口相连,注意:计算机的USB口提供5V电源到您的开发板上,但最大输出电流不得超过0.5A。启动下载程序,将出现如图3-5程序运行界面。电路板成功(chnggng)连接上PC后,只需调入烧写程序,然后点击“自动”即可。软件提示烧写成功则烧写已经完成。图3-5 ISP下载软件运行界面3.5 报警部分3.5.1 硬件电路设计本系统采用的蜂鸣器是有源式的,通过VCC提供电压。其输入的端口连接P3.4口,通过I/O口来控制蜂鸣器的鸣叫与否。满足报警条件时,给P3.4口输出一定频率的脉冲,则蜂鸣器鸣叫。否则P3.4口
34、保持低电平,蜂鸣器不鸣叫。电路图如图3-6所示。图 3-6 蜂鸣器电路(dinl)3.5.2 软件设计要控制蜂鸣器的频率,这里(zhl)需要用到延时程序,延时程序在往后的设计中也会出现,在这里,先附上本系统中用到的两个延时程序,本系统采用的晶振为12M。void delay(unsigned int z) / 延时约为z*10 us while(z-) ;void delayms(unsigned int t) /延时约为t ms unsigned int i; while(t-) for(i=0;i0;i-) DQ=0; /拉低总线 DQ=dat&0 x01; delay(5); /整个写时
35、隙不低于60us DQ=1; dat=1; 表3-4 RAM的操作命令命令类型命令字节功能说明Write Scratchpad(写暂存器)4EH此命令写暂存器中的地址2-地址4的3个字节(TH、TL和配置寄存器)在发起复位脉冲之前,3个字节都必须要写Read Scratchpad(写暂存器)BEH此命令读取暂存器内容,从字节0一直读取到字节8(第9个字节)。主机可以随时发起复位脉冲已停止此操作Copy Scratchpad(复制暂存器)48H这个命令把暂存器中的内容复制到E2RAM,借此把温度告警的触发字节存到非易失性内存中。一旦在这个命令后,主机发生读时隙,那么只要期间再次进行复制便会输出0
36、,当复制完成之后,再输出1Convert T(温度转换)44H这个命令开始执行温度转变操作,如果执行完此命令后,主机仍然发生读时隙,那么只要期间再次进行转换温度就能够输出0,转换完成后,再输出1Recall E2(重调E2存储器)B8H将存储在E2RAM中的告警温度警告触发值和配置寄存器值重新拷贝到暂存器中。此重掉操作在DS18B20家电时自动产生Read Power Supply(读取供电方式)B4H主机发起此命令后的每个读数据实习内,DS18B20会发信号通知它的供电方式:0为寄生电源,1为外部电源。 DS18B20读时隙。当主机从DS18B20读数据时,把数据线从高电平拉至低电平,保持至
37、少1us,产生读时隙。DS18B20在输出下降沿产生15us后,数据有效,在读时隙结束(jish)时,DQ将通过外部上拉电阻拉回至高电平,所有读时隙必须保持最短60ms,各读时隙间鼻息保持最短1us的恢复时间。具体(jt)代码如下:unsigned char ReadOneChar(void) /读一个(y )字节 unsigned char i=0; unsigned char dat=0; for(i=8;i0;i-) DQ=0; /给脉冲信号 保持低至少1us dat=1; DQ=1; /给脉冲信号 if(DQ) dat|=0 x80; delay(5); /读时隙不低于60us ret
38、urn(dat);读取温度读取后温度值存在readdata0和readdata1中,通过串口可把两个字节发送出去具体代码如下:void ReadTemperature(void) /读取温度 Init_DS18B20(); delayms(1); WriteOneChar(0 xCC); /跳过读序列号的操作(cozu) WriteOneChar(0 x44); /启动温度(wnd)转换 Init_DS18B20(); delayms(1); WriteOneChar(0 xCC); /跳过读序列号的操作(cozu) WriteOneChar(0 xBE);/读取温度寄存器等(共可读9个 寄存
39、器),前两个就是温度 readdata0=ReadOneChar(); /读取温度值低8位 readdata1=ReadOneChar(); /读取温度值的高8位读取后可以利用前面的内容推算出温度计算的方法,计算出的温度转换成字符便于显示,这部分内容放在从机中。具体代码如下:float Tempprocess() unsigned int t; float tt,tem; unsigned char temp; if(readdata1&0 x80)!=0) word13=-; t=readdata1; t=4; word14=t/100+48; word15=(t/10)%10)+48; w
40、ord16=t%10+48; temp=readdata0; temp=temp-1; temp=temp; temp=temp&0 x0f; tt=temp*0.0625; tem=t+tt; word17=.; word18=(unsigned char)(tt*10); word19=(unsigned char)(tt*100-word18*10); word110=(unsigned char)(tt*1000-word18*100-word19*10); word111=(unsigned char)(tt*10000-word18*1000-word19*100-word110*
41、10); word18+=48; word19+=48; word110+=48; word111+=48; word112=C; return(-tem);else word13=+; t=readdata1; t=4; word14=t/100+48; word15=(t/10)%10)+48; word16=t%10+48; temp=readdata0; temp=temp&0 x0f; tt=temp*0.0625; tem=t+tt; word17=.; word18=(unsigned char)(tt*10); word19=(unsigned char)(tt*100-wor
42、d18*10); word110=(unsigned char)(tt*1000-word18*100-word19*10); word111=(unsigned char)(tt*10000-word18*1000-word19*100-word110*10); word18+=48; word19+=48; word110+=48; word111+=48; word112=C; return(tem); 3.7 串行通信(tng xn)模块3.7.1简述(jin sh)51的单片机在控制本地(很近,甚至在同一块电路板)的外围器件时,信息的交互式通过8位并行数据线进行的,但是在较大规模的现
43、代控制系统(kn zh x tn)中,单片机还需要控制远端的设备,需要实现单片机的通信。使用51单片机自带的串行通信模块,可以方便地实现单片机的串行通信。串行通信是指通信双方的信息(二进制编码)一位接一位传送的通信方式,与并行通行相比,这种通信方式虽然速度较慢,但传送距离长,而且使用的数据线少(最简单的串行通信只需要两根信号线和地线即可),节约通信成本,因此常用于需要长距离通信而且对速度要求不高的场合。串行通信的方式共有单工,半双工,全双工3种。如果在通信过程中的任意时刻,信息只能由一方A传送到另一方B,则称为单工。曾经风靡一时而现在淡出人们的视线寻呼机便是传统的单工通讯设备。假如在通讯过程中
44、的某一时间,信息即能从A传到B,又能从B传到A,但因为两个通讯方式采用同一条通讯信道。所以,同一时间点只能有一方上的传输存在。这种传输通讯方式叫做半双工。处于该方式情形下,主要是通过软件控制收发方向,接受或者发送仅仅只能交替工作。假如在某一时刻,线路上可以存在从A、B间的双向讯号传输,这时双向的信号采用不一样的信号,二者不会互相干扰,这类传输方式被称之为全双工。全双工采用了信道划分技术,通信的端点都包括发送器以及接收器,能够同时接收或者发送数据。比如,电话线便是一个双线全双工通讯信道,因为使用了回波消除技术,通讯双向的信号传输不至于混淆。串行通信里,传输数据的方式就有两种:其一为异步通信;其二
45、为同步通讯。异步通信通过帧的格式来发送数据,所有帧信息由起始位,数据位,奇偶检验位以及停止位组成。在异步通信中,当使用起始位和停止位,就会传送一个字节。所以传输速度极其有限,通常用在低速场地,同步通行不同于异步通行,他使用数据块传输方式,而不是字节,因此省去了每个字节的起始位和停止位等数据,提高了通信速率,同步通信在每个数据块的开始使用同步字符,使接收和发送的同步。与异步通信相比,同步通信发送的数据最大,速度最快,常用于传输速率要求较高的场合。51单片机的串口是RS-232C标准的串口,RS-232C标准时在RS-232标准上经过改进形成的。RS-232C标准时美国EIA(电子工业联合会)与B
46、ELL等公司一起开发的通信协议,他使用语数据(shj)速率在020kbps范围内的通信。与RS-232C向匹配的连接器有DB-25,DB-15和DB-9三种,其引脚也各不相同,RS-232C中定义(dngy)了20根信号线,使用DB-25连接器实现,其中除了用于全双工串行通信的两个信号线外,标准还定义了若干我首先,如DSR、DTR、RTS、CTS等。实际应用中,这些握手线不是必须使用的。后来为了简化串口的线路连接,出现了简化的9芯DB-9连接器,其引脚分布如图 3-9所示。图3-9 DB-9连接器引脚分布图DB-9连接器的引脚定义与功能(gngnng)说明如表3-5。表3-5 DB-9连接器引
47、脚定义与功能说明表引脚功能1(CD)检查载波2(RxD)接收数据3(TxD)发送数据4(DTR)数据终端准备完成5(SG)信号底线6(DSR)数据装置准备完成7(RTS)请求发送8(CTS)允许发送9(RI)振铃指示 在串行数据传输过程中,由于传输距离(jl)、现场状况等诸多可能出现的因素影响,传输数据常会发生无法预测的错误。发现传输中的错误称为“检错”,发现错误(cuw)后消除错误称为“纠错(ji cu)”。为了使系统能够可靠、稳定地通信,有效地保证数据的传输,防止错误带来的影响,一般在通信时,采取数据校验的方法。常见的数据校验的方法有奇偶校验,校验和以及CRC校验等几种。如果两个51单片机
48、系统之间的距离很短,可以通过将它们自带串口直接相连的方法实现双机通信,连接时注意要将一方的TxD和另一方的RxD引脚连接。如果通信距离较远,可以利用RS-232C接口延长通信距离。由于RS-232C标准规定的逻辑电平与TTL等数字电路的逻辑电平不兼容,因此两者之间进行相互连接时必须先进行那个接口电平的转换,即必须将单片机的TTL电平和RS-232C标准进行转换。这就需要在双方在单片机接口部分增加RS-232C电气转换接口。能够实现RS-232C电平转换的专用芯片有很多,本例选用常用的Maxim公司的MAX3232集成芯片。MAX3232是一款可以实现EIA-232接口的低功耗电平转变芯片,它包
49、括两端收发器,传输数据速率可保证为256kbps,具有强静电保护能力。其引脚图分布(SO/DP)封装如图3-10所示。引脚描述:C1+、C1-(1、3脚):电压充电容的正端或负端V+、V-(2、6脚):充电泵具有+5.5V和-5.5V电压C2+、C2-(4、5脚):转化为充电泵的电容正端或负端T2OUT、T1OUT(7、14脚):RS-232由发送器发送信号R2IN、R1IN(8、13脚):RS-232接收器接受信号R2OUT、R1OUT(9、12脚):TTL/CMOS接收器输出信号T2IN、T1IN(10、11脚):TTL/CMOS发送器输入信号GND(15脚):接地端VCC(16脚):电源
50、端。供电范围:3.05.5V 图3-10 MAX3232芯片(xn pin)引脚图3.7.2 硬件(yn jin)电路设计电路(dinl)原理图如图3-11所示,省去了DB-9的连接器,P3.0和P3.1分别为单片机的串口接收端和发送端。图3-11 MAX3232连接图3.7.3 软件设计通信协议的设计是软件设计的重点。在实际应用中,很多时候单片机之间的通信环境都是比较好的,协议往往不是很复杂。协议规定如下:数据传输的双方均使用4800kbps的速率传送数据,使用主从(zhcng)式通信,主机发送数据,从机接收数据,双方在发送数剧和接收数据时使用查询方式。双机开始数据传输时,从机发出呼叫信号2
51、4H启动握手过程,询问(xnwn)主机是否能够发送数据。主机接收到握手信号之后(zhhu),如果同意发送数据,则回发回应信号00H,表示可以发送,要不然就会发送回应信号15H说明目前无法接收信号数据。从机发送完呼叫讯号之后等待,直至接收到主机的回应讯号00H时,才能够确认实现握手过程,开始发送数据,否则,主机将持续向从机发起呼叫。从机在接受完数据后,将根据最后的检验结果判断数据接受是否正确,假如校验正确,就会给主机发送2AH信号,表示接受成功;如果校验错误,则发送F0H信号,表示错误,并请求重发。主机接收到2AH字节后,通信结束,否则主机将重新发送这组数据。以上协议使用到的一些握手信号器定义如
52、表3-6。表3-6 握手协议信号定义表握手信号说明0 x24呼叫信号0 x15主机忙应答,表示暂时无法发送0 x00主机准备好,可以发送0 x2A数据发送成功0XF0数据传输错误数据传输的帧结构如表3-7: 表 3-7 数据帧结构数据长度字节数据字节奇偶校验字节1字节N字节1字节数据长度字节的值为由主机发送的数据字节的个数N,数据帧最后一个字节为奇偶校验字节。这次采用最简单的奇偶校验的方法来进行数据帧的校验。主机将待发送数据的长度字节和N个数据字节共N+1个字节相异或,将异或后的结果与受到的数据帧的最后一个字节(奇偶校验字节)比较来进行无码判断。首先定义握手信号#define CALL 0 x
53、24 /从机呼叫#define BUSY 0 x15 /主机忙#define OK 0 x00 /主机准备好#define SUCC 0 x0A /接受成功#define ERR 0 xf0 /接受(jishu)错误首先(shuxin)是串口初始化void init_serial() TMOD=0 x20; /定时器T1工作(gngzu)方式2 TH1=0 xf3; TL1=0 xf3; TR1=1; /T1允许 PCON=0 x80; /波特率加倍 SCON=0 x50; /串口工作方式1,允许接受 波特率4800 EA=0; 接收端的接受子程序unsigned char recvdata(
54、unsigned char *buf) unsigned char i,tmp,len,ecc; RI=0; while(!RI); len=SBUF; RI=0; ecc=len; for(i=0;ilen;i+) while(!RI); *buf=SBUF; ecc=ecc(*buf); /进行字节校验 RI=0; buf+; *buf=0; while(!RI); tmp=SBUF; RI=0; ecc=tmpecc; if(ecc!=0) /如果校验错误 *(buf-len)=0; /清空(qn kn)数据缓冲区 /*发送(f sn)校验错误信号ERR*/ TI=0; SBUF=ERR
55、; while(!TI); TI=0; return 0 xff; /返回0 xff表示校验(xio yn)错误 TI=0; /如果正确,发送SUCC SBUF=SUCC; while(!TI); TI=0; return 0;发送端的发送子程序void senddata(unsigned char *buf) unsigned char i,len,ecc; len=strlen(buf); /计算要发送的数据长度 ecc=len; /开始进行校验字节计算 TI=0; /发送数据长度 SBUF=len; while(!TI); TI=0; for(i=0;ilen;i+) ecc=ecc(*
56、buf); /异或运算 SBUF=*buf;/发送数据 buf+; while(!TI); TI=0; SBUF=ecc; /发送校验字节 while(!TI); TI=0; 3.8 显示(xinsh)模块3.8.1 LCD1602的基础知识1602是指显示的内容为16*2,即可以(ky)显示两行,每行16个字符。目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。字符型LCD1602通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚)
57、,其控制原理与14脚的LCD完全一样(yyng)。引脚定义如表3-8:表 3-8 LCD1602引脚表引脚号引脚名电平输入/输出作用1Vss电源地2Vcc电源(+5V)3Vee对比调整电压4RS0/1输入0=输入指令;1=输入数据5R/W0/1输入0=写指令或数据;1=读信息6E1,10输入使能信号7DB00/1输入/输出数据总线line08DB10/1输入/输出数据总线line19DB20/1输入/输出数据总线line210DB30/1输入/输出数据总线line311DB40/1输入/输出数据总线line412DB50/1输入/输出数据总线line513DB60/1输入/输出数据总线line
58、614DB70/1输入/输出数据总线line715A+VccLCD电源正极16K接地LCD电源负极3.8.2 硬件电路设计电路设计中,使用单片机的P0口与液晶显示器的DB口相连作为数据、指令的输入输出口,为了提高P0口的负载能力,这里加上了10K的上拉电阻。用P2.0P2.2连接液晶屏的RS、RW、E三个引脚,用于控制液晶显示器,具体电路设计原理图如图3-12所示。图3-12 LCD1602连线(lin xin)图3.8.3 软件设计HD44780内置了DDRAM、CGROM和CGRAM。DDRAM就是显示数据RAM,用来寄存待显示的字符代码。共80个字节,其地址和屏幕的对应(duyng)关系
59、如表3-9。因为在1602,每行只有16个字符,因此(ync)第一行中的地址只用前16个就行了。第二行也一样用前16个地址。 表 3-9 HD44780地址屏幕对应表显示位置123456740DDRAM地址第一行00H01H02H03H04H05H06H27H第二行40H41H42H43H44H45H46H67H事实上往DDRAM里的00H地址处送一个数据,譬如0 x31(数字1的代码)并不能显示1出来。这是一个令初学者很容易出错的地方,原因就是如果你要想在DDRAM的00H地址处显示数据,则必须将00H加上80H,即80H,若要在DDRAM的01H处显示数据,则必须将01H加上80H即81H
60、。依次类推。大家看一下控制指令的的8条:DDRAM地址的设定,即可以明白是怎么样的一回事了。LCD1602液晶显示模块内部字符发生存储器(CGROM)已经储存了160个不一样的点阵图形,如表3-10所示,这类字符有:英文字母的大小写、常用的符号和日文假名等。每个字符具有一个特定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,就能看到字母“A”。上表中的字符代码与PC中的字符代码是基本一致的。因此在向DDRAM写C51字符代码程序时甚至可以直接用P1A这样的方法。PC在编译时就把“A”先转为41H代码了。 表 3-10 CGR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 邮储银行2025遵义市秋招英文面试题库及高分回答
- 中国银行2025广安市秋招笔试综合模拟题库及答案
- 交通银行2025商洛市秋招结构化面试经典题及参考答案
- 2025年3D打印的智能制造技术
- 2025社会救助行业发展趋势报告
- 建设银行2025荆州市秋招无领导模拟题角色攻略
- 邮储银行2025七台河市笔试行测高频题及答案
- 工商银行2025黄南藏族自治州秋招笔试性格测试题专练及答案
- 项目工程安装主机合同2篇
- 中国银行2025广安市秋招笔试专业知识题专练及答案
- 滑板项目选材指标与标准
- 额窦手术课件
- 智慧养猪解决方案演示课件
- 最新中医骨伤科学考试题库及答案
- 产品形态设计课件完整
- 德国巴斯夫抗氧剂和紫外线吸收剂
- SG-A088接地装置安装工程工检验批质量验收记录
- 《芯片原理与技术》课件微流控芯片
- 混凝土外观质量缺陷及治理措施PPT课件
- 十四条经络养生课件
- 麻醉医师资格分级授权管理能力评价与再授权制及程序培训考核试题及答案
评论
0/150
提交评论