基于磁伸缩的线性液位计设计(软件设计_第1页
基于磁伸缩的线性液位计设计(软件设计_第2页
基于磁伸缩的线性液位计设计(软件设计_第3页
基于磁伸缩的线性液位计设计(软件设计_第4页
基于磁伸缩的线性液位计设计(软件设计_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

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

文档简介

1、毕 业 设 计 (论 文)机械与电气工程 学院 07自动化 专业题目:基于磁伸缩的线性液位计设计(软件设计)学 生 姓 名: 班 级: 07自动化 学 号: 指 导 教 师: 完 成 日 期: 20011 年 5 月20日基于磁伸缩的线性液位计设计(软件设计)Based on magnetostrictive linear liquidometer design (software design)总计毕业设计(论文) 38 页表 格 4 幅插 图 14 幅摘 要本设计为基于磁致伸缩原理的线性液位计设计,共包括稳压电源、A/D转换显示电路、按键控制电路、RS485通讯电路和单片机控制电路五个部分

2、。首先通过磁致伸缩液位传感器对液位进行实时采集,但由于输出是标准的4-20mA电流信号,故不需进行信号的放大,直接送A/D转换电路进行转换,然后经AT89S51单片机并存放数据,同时将采集的液位送入液晶显示模块进行显示。本系统可通过六个按键“设置,加1,减1,左移,右移,确认”, 分别用于控制对单片机的时间和液位初值。另外,本系统还可通过RS485电路对数据进行远距离传输。关键词: 磁致伸缩液位计 实时采集 AT89S51 RS485通讯AbstractThis design based on magnetostrictive principle for the design of linea

3、r liquidometer real-time control, level position with LCD actual pressure and time, with buttons adjust clock and level cap height, system level minimum degree of distinction 0.1 mm. Including : manostat, signal processing and amplifying circuit, A/D conversion display circuit, button control circui

4、t, RS485 communication circuit and single-chip microcomputer control circuit. Design for the control chip AT89S51, the chip powerful function, and can satisfy the design.Keywords: level gauge Level measurement AT89S51 RS485uniform 目 录基于磁伸缩的线性液位计设计(软件设计)8摘 要9Abstract7第一章 绪 论8第二章 系统总体设计92.1 研究内容92.2 课

5、题分析92.3 单片机核心部分的总体设计102.4 研制过程112.5 其他说明11第三章 硬件设计123.1 MCS-51系列单片机内部结构及功能部件123.2 MAX197的概述163.2.1 MAX197的控制字173.2.2 数据的读取193.3 LCD12864简介203.3.1 概述203.3.2 LCD12864基本特性203.3.3 模块接口说明213.3.4 指令说明233.4芯片MAX485和RS485通信的概述263.4.1 芯片MAX485的概述263.4.2 总线驱动器芯片SN7517627第四章 系统的中断,定时与串行通信284.1单片机的中断系统284.1.1 中

6、断的概念284.1.3 中断控制314.2 单片机的定时与计数器324.2.1 定时/计数器方式控制寄存器324.2.2 定时/计数器控制寄存器TCON334.3 串行通信及其接口344.3.1 串行通信的基础知识344.3.2 串行口的工作方式37第五章 系统硬件设计395.1单片机处理模块的设计395.1.1 时钟电路395.1.2 复位电路405.2模拟信号转化数字信号(A/D)模块设计405.3液晶显示模块设计415.4 按键模块设计425.5 RS485通信电路模块设计42第六章 软件设计456.1 主程序软件设计456.2 时钟子程序设计466.3 A/D转换之程序设计476.4

7、按键处理子程序设计486.5 二进制转十进制子程序设计496.6 液晶显示子程序设计506.7程序的软件调试和烧录506.7.1 程序的软件调试507.7.2 烧录器原理及方法介绍51第七章 总结52参考文献53致 谢7附录一 程序清单8第一章 绪 论随着科学技术的迅猛发展,高新技术在各行业中得到了广泛的应用,高科技含量的磁致伸缩液位传感器,应用于各类储罐的液位测量。该种液位仪具有精度高、环境适应性强、安装方便等特点。因此,广泛应用于石油、化工等液位测量领域,并逐渐取代了其它传统的传感器,成为液位测量中的精品。采用磁致伸缩液位计,进行液位的测量,其优点表现在: 1.可靠性强:由于磁致伸缩液位计

8、采用波导原理,无机械可动部分,故无摩擦,无磨损。整个变换器封闭在不锈钢管内,和测量介质非接触,传感器工作可靠,寿命长。 2.精度高:由于磁致伸缩液位计用波导脉冲工作,工作中通过测量起始脉冲和终止脉冲的时间来确定被测位移量,因此测量精度高,分辨率优于0.01%FS,这是用其它传感器难以达到的精度。 3.安全性好:磁致伸缩液位计的防爆性能高,本安防爆,使用安全,特别适合对化工原料和易燃液体的测量。测量时无需开启罐盖,避免人工测量所存在的不安全性。 4.磁致伸缩液位计易于安装和维护简单:磁致伸缩液位仪一般通过罐顶已有管口进行安装,特别适用于地下储罐和已投运储罐的安装,并可在安装过程中不影响正常生产。

9、 5.便于系统自动化工作:磁致伸缩液位计的二次仪表采用标准输出信号,便于微机对信号进行处理,容易实现联网工作,提高整个测量系统的自动化程度。第二章 系统总体设计2.1 研究内容文章针对液位计的现状及发展趋势,在阅读了大量文献及资料的基础上,成功设计、调试了一套用于计量液位的智能低功耗液位计系统。它基于磁致伸缩原理,对液位进行实时控制,用液晶显示实际压力值和时间,用按键调整时钟和水位上限高度,系统的水位最小区分度为0.1mm。包括稳压电源、信号处理与放大电路、A/D转换显示电路、按键控制电路、RS485通讯电路和单片机控制电路。主要内容有以下几点:(1)12位的A/D转换器及带有显示的时钟转换电

10、路(2)高精度稳压电源:24V(3)点阵式液晶显示器显示:16位数显(4)时钟、水位高度设置控制键(6键:设置、+、-、左移、右移、确认)(5)RS485通讯电路系统可以同时测量总体液位和/或界面液位,以及温度输出,标定极其简单,无需实标,仅仅只需按按钮,可现场替换差压式,电容式,超声波式,雷达式,外浮筒式,核子式,钢带或钢带伺服式等液位变送器。2.2 课题分析课题任务:任务:设计一个基于磁伸缩的线性水位计。基本要求:1、设计一个高于12位的A/D转换和一个时钟电路并带有显示;2、设计一个24V的高精度稳压电源;3、数据由16位点阵式液晶显示器显示;4、由6键(设置、+、左移、右移、确认)控制

11、设置时钟、水位高度;5、设计一个RS485通讯电路。 课题任务分析:课题中的水位计要用磁致伸缩式的传感器,这种液位计不仅要能显示液位高度,还需用键盘加以控制,完成“设置、+、-、左移、右移和确认”六个功能,同时还要有通讯电路,以便与上位机相连接,可以完成远程控制。要设计出能加以控制并显示的液位计,需要硬件电路和系统软件的共同配合,硬件部分要完成液位计的电源动力部分、按键部分、单片机外围电路、显示电路等。软件部分要完成的任务有:主控程序、按键程序、显示程序、通讯程序等部分。2.3 单片机核心部分的总体设计 本电路的设计包括感器模块、信号处理与放大电路、A/D转换模块、按键控制模块、LCD显示模块

12、、RS485通讯模块、电源模块、MCU处理模块,由传感器采集数据,由仪表放大电路对采集的信号进行处理,然后 经A/D转换变为数字信号输送给单片机进行处理并在LCD上显示并还显示当前时间,而且可以远程通讯。系统总体结构框图如下图所示。本课题设计液位高度和时间显示可以完成如下功能: 使用点阵式LCD显示器来显示现在水位高度和现在的时刻,显示格式分别为“XX:XX:XX”和“XXX.X mm”。例如,“06:47:01”的时刻水位高度为“227.5 mm” 。 具有6个小按键操作来设置上限水位高度和现在的时刻。当水位高度超过设置的上限高度时, LCD显示器会出现“错误” 字样。通过“设置”键选择上限

13、水位高度还是时间的调整,然后通过“左移” 、“右移”键确定哪位的设定,最后通过“+” 、“-”可从数0开始一直调到9中的任意数字。 利用RS485可以远程通讯,其既作驱动器用,将信息传给计算机,又可作接收器用,从计算机获取控制命令。2.4 研制过程1.系统设计通过查阅资料和书籍,结合自身的电路知识来设计。2.画电路原理图利用protel99se和Proteus将设计的原理图画出,为制作PCB提供依据。3.单片机程序的编写了解AT89C51的内部资源,利用C语言进行编程。4.程序的调试和烧录取得印制电路板后,把器件按图正确的焊接在PCB板上,然后将程序烧录进AT89C51并进行系统电路的调试。5

14、.硬件焊接考虑PCB板刻录需仪器,我们自己手工焊接。2.5 其他说明系统分为硬件部分和软件部分。本论文给出了相关芯片的概略资料,主要介绍软件设计思路,及概略介绍了硬件设计流程。第三章 硬件设计3.1 MCS-51系列单片机内部结构及功能部件图3.1 AT89C51芯片引脚图(DIP封装)下面以DIP封装的AT89S51为例叙述各个引脚的功能。1)主电源线VCC(40引脚):接+5V电源正端,正常操作和对EPROM编程及验证时均接+5V电源。GND(20引脚):接电源地端。2)外接晶体线XTAL1(19引脚):接外部晶体振荡器的一端。在单片机的内部,它是一个反相放大器的输入端,这个放大器构成了片

15、内振荡器。当采用外部时钟时,对于HMOS单片机,该引脚接地;对于CHMOS单片机,该引脚作为外部振荡信号的输入端。XTAL2(18引脚):接外部晶体振荡器的一端。在单片机的内部,它是片内振荡器的输出端。当采用外部时钟时,对于HMOS单片机,该引脚接收振荡器的信号,即把该引脚接到内部时钟发生器的输入端;对于CHMOS单片机,该引脚悬空。3)I/O端口线MCS-51系列单片机共有四组并行I/O端口P0P3,每个端口有8条端口线,共有32条I/O端口线,每个接口的功能和用途有一定的差别。P0口(3239引脚):P0.0P0.7统称为P0口。P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电

16、流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。图3.2 p0口引脚图P1口(18引脚):P1.0P1.7统称为P1口。P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。图3.3 P1口引脚图P2口(2128引脚):P2.0P2

17、.7统称为P2口。P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。图3.4 p2口引脚图P3口(1017引脚):P3.0P3.7统称为P3口。P3口管脚是8个带内部

18、上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。图3.5 P3口引脚图P3口也可作为AT89C51的一些特殊功能口,如表3.1所示:表3.1 P3口第二功能端 口 功 能第 二 功 能P3.0RXD-串行输入(数据接收)口P3.1TXD-串行输出(数据发送)口P3.2-外部中断0输入线P3.3-外部中断1输入线P3.4T0 -定时器0外部输入P3.5T1 -定时器1外部输入P3.6-外部数据存储器写选通信号输出P3.7-外部数据存储器读选通信号输入4)控制

19、线RST/VPD(9引脚):单片机复位/备用电源引脚。该引脚为单片机的上电复位或掉电保护端,该引脚上出现持续两个机器周期的高电平,就可实现复位操作,使单片机恢复到初始状态。上电时,考虑到振荡器有一定的震荡时间,该引脚上的高电平必须持续10ms以上才能保证有效复位。当VCC发生故障,降低到低电平规定值或掉电时该引脚可接上备用电源(即VPD接+5V电源)为内部RAM供电,以保证RAM钟的内部数据信息不丢失,使复电后能持续正常运行。/PSEN(29引脚):外部程序存储器的选通信号,低电平有效。当从外部程序存储器读取指令或数据时,每个机器周期该信号两次有效,以通过数据总线P0口读回指令或常数。在访问外

20、部数据存储器时,该信号处于无效状态。ALE/PROG(30引脚):当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /EA/VPP(31引脚):当/EA保持低电平时,则在

21、此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。3.2 MAX197的概述MAX197是Maxim公司推出的具有12位测量精度的高速A/D转换芯片,只需单一电源供电,且转换时间很短(6ms),具有8路输入通道,还提供了标准的并行接口8位三态数据I/O口,可以和大部分单片机直接接口,使用十分方便。3.2.1 Max197芯片相应的功能 CLK:时钟输入,在外部时钟模式下,输入与TTL/MOS相匹配的始终脉冲,在内部时

22、钟模式下,从这个引脚接一个电容CCLK至地,设置内部时钟频率;当CCLK=10pF时,CLK典型值为1.56MHz。CS:片选脚,低电平有效。WR:当CS为低电平时,在内部采集模式,WR的上升沿讲锁住数据,并发出一个采集脉冲。当CS为低电平时,在外部采集模式下,WR的第一个上升沿启动一次采集,WR的第二个上升沿结束采集并开始一次转换。RD:如果CS为低电平,RD的下降沿讲实现数据总线上的一次读操作。HBEN:输入脚,控制数据总线复用,以得到12位转换结果,当HBEN为高电平时,数据总线上输出高4位数据;当SHDN为低电平时,器件进入掉电工作状态。D7D4:三态数据I/O口。D3/D11D0/D

23、8:三态数据I/O口。当HBEN=0时,输出为D3D0的数据,当HBEN=1时,输出为D11D8数据。AGND:模拟地。CH0CH7为八路模拟输入通道。INT:中断输出脚,当转换完毕,输出数据准备就绪,INT变为低电平。REFADJ:为带隙电压基准输出/外部调节引脚,可连接一个0.01uF电容旁路至地。当在REF脚上采用外部基准电压时,此管脚连到VDD上。REF:缓冲器基准电压输出/ADC基准电压输入。在内部基准电压模式下,基准缓冲器提供4.096V的标准输出电压。可在REFADJ脚微调,在外部基准电压模式下,通过把REFADJ接至VDD使内部缓冲器无效。VDD:+5V电源,通过0.1uF电容

24、旁路至地。DGND:数字地。3.2.1 MAX197的控制字MAX197的控制字格式如表3.2所示:表3.2 MAX197的控制字格式D7D6D5D4D3D2D1D0PD1PD0ACQMODRNGBIPA2A1A0表中的各个控制位如下:1) PD1、PD0:选择时钟和低功耗模式,其设置如表3.3所示:表3.3 PD1、PD0位设置PD1PD0说明00正常工作,外部时钟模式01正常工作,内部时钟模式10后备低功耗模式,不影响时钟模式11低功耗模式,不影响时钟模式MAX197可以以内部或外部时钟模式工作。控制字节的D6,D7位选择内部或外部时钟模式。一旦选择了所要求的时钟模式,改变这些位编程选择低

25、功耗模式时,不会影响时钟模式。刚上电时,选择外部时钟模式。内部时钟模式设置控制字节的D7位为0,D6位为1可以选择这种模式。在CLK脚和地之间接一个100pf的电容,可产生156mhz频率。外部时钟模式设置控制字节的D7位为0,D6位=0选择外部时钟模式。一般情况,要求100khz2mhz的外部时钟具有45%55%的占空比。当工作时钟频率低于100khz时,在保持电容上将产生一个电压降导致性能降低。2)ACQMOD:0为内部控制采集,1为外部控制采集。通过写控制字节的ACQMOD位为0,选择内部采集方式。此方式产生一个脉冲初始化采集间隔,这个时间是内部定时的。当六个时钟周期采集间隔结束时,转换

26、开始。通过写控制字节的ACQMOD位为1.选择外部采集方式。外部采集方式可以更精确的控制采样间隔和转换。在这种方式下,用户通过2个写脉冲控制采集和启动转换。在第一个写脉冲中,要使ACQMOD位=1,它将启动一次采集开始。在第二次写脉冲中要使ACQMOD位=0,在WR的上升沿开始转换并结束采集。在发第一个第二个写脉冲时,多路输入通道的地址位值必须一样。在第二个写脉冲中低功耗模式位(PD0,PD1)可以设一个新值。3)RNG,BIP:RNG位是选择输入端的满量程电压范围,BIP位选择单极性式和双极性转换模式,这两位设置如表3.4所示:表3.4 BIP设置BIPRNG输入范围(v)000501010

27、10+-511+-104)A2,A1,A0:用于选择多路输入、输出的地址,如表3.5所示:表3.5 多输入多输出设置A2A1A0CH0CH1CH2CH3CH4CH5CH6CH7000-001-010-011-100-101-110-111-3.2.2 数据的读取在单极性方式下,输出数据格式为二进制数;在双极性方式下,其格式为补码形式的二进制数,在读输出数据时,CS和RD必须为低电平。器件输出的数据一共是12位,当HBEN为低电平时,读低8位;当HBEN为高电平时,读取较高的4个MSB位,输出数据的D4D7位。数据的读取格式如表3.6所示:表3.6 数据读取格式数据位HBEN=0HBEN=1D0

28、B0(LSB)B8D1B1B9D2B2B10D3B3B11(MSB)D4B4B11D5B5B11D6B6B11D7B7B113.3 LCD12864简介 LCD12864是-3.3.1 概述带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为12864, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示84行1616点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的

29、液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。3.3.2 LCD12864基本特性(1)、低电源电压(VDD:+3.0-+5.5V)(2)、显示分辨率:12864点 (3)、内置汉字字库,提供8192个1616点阵汉字(简繁体可选)(4)、内置 128个168点阵字符(5)、2MHZ时钟频率(6)、显示方式:STN、半透、正显(7)、驱动方式:1/32DUTY,1/5BIAS(8)、视角方向:6点(9)、背光方式:侧部高亮白色LED,功耗仅为普通LED的1/51/10(10)、通讯方式:串行、并口可选(11

30、)、内置DC-DC转换电路,无需外加负压(12)、无需片选信号,简化软件设计(13)、工作温度: 0 - +55 ,存储温度: -20 - +603.3.3 模块接口说明*注释1:如在实际应用中仅使用串口通讯模式,可将PSB接固定低电平,也可以将模块上的J8和“GND”用焊锡短接。*注释2:模块内部接有上电复位电路,因此在不需要经常复位的场合可将该端悬空。*注释3:如背光和模块共用一个电源,可以将模块上的JA、JK用焊锡短接。LCD12864各引脚功能说明如表3.7所示:表3.7 LCD12864各引脚功能说明管脚号管脚名称电平管脚功能描述1VSS0V电源地2VCC3.0+5V电源正3V0-对

31、比度(亮度)调整4RS(CS)H/LRS=“H”,表示DB7DB0为显示数据RS=“L”,表示DB7DB0为显示指令数据5R/W(SID)H/LR/W=“H”,E=“H”,数据被读到DB7DB0R/W=“L”,E=“HL”, DB7DB0的数据被写到IR或DR6E(SCLK)H/L使能信号7DB0H/L三态数据线8DB1H/L三态数据线9DB2H/L三态数据线10DB3H/L三态数据线11DB4H/L三态数据线12DB5H/L三态数据线13DB6H/L三态数据线14DB7H/L三态数据线15PSBH/LH:8位或4位并口方式,L:串口方式(见注释1)16NC-空脚17/RESETH/L复位端,

32、低电平有效(见注释2)18VOUT-LCD驱动电压输出端19AVDD背光源正端(+5V)(见注释3)20KVSS背光源负端(见注释3)*注释1:如在实际应用中仅使用并口通讯模式,可将PSB接固定高电平,也可以将模块上的J8和“VCC”用焊锡短接。*注释2:模块内部接有上电复位电路,因此在不需要经常复位的场合可将该端悬空。*注释3:如背光和模块共用一个电源,可以将模块上的JA、JK用焊锡短接。控制器接口信号说明:1、 RS,R/W的配合选择决定控制界面的4种模式如表3.8所示:表3.8 控制界面的选择RSR/W功能说明LLMPU写指令到指令暂存器(IR)LH读出忙标志(BF)及地址记数器(AC)

33、的状态HLMPU写入数据到数据暂存器(DR)HHMPU从数据暂存器(DR)中读出数据2、 E信号结果如表3.9所示:表3.9 E信号结果E状态执行动作结果高低I/O缓冲DR配合/W进行写数据或指令高DRI/O缓冲配合R进行读数据或指令低/低高无动作 忙标志:BF BF标志提供内部工作情况.BF=1表示模块在进行内部操作,此时模块不接受外部指令和数据.BF=0时,模块为准备状态,随时可接受外部指令和数据.利用STATUS RD 指令,可以将BF读到DB7总线,从而检验模块之工作状态. 字型产生ROM(CGROM) 字型产生ROM(CGROM)提供8192个此触发器是用于模块屏幕显示开和关的控制。

34、DFF=1为开显示(DISPLAY ON),DDRAM 的内容就显示在屏幕上,DFF=0为关显示(DISPLAY OFF)。DFF 的状态是指令DISPLAY ON/OFF和RST信号控制的。 显示数据RAM(DDRAM) 模块内部显示数据RAM提供642个位元组的空间,最多可控制4行16字(64个字)的中文字型显示,当写入显示数据RAM时,可分别显示CGROM与CGRAM的字型;此模块可显示三种字型,分别是半角英数字型(16*8)、CGRAM字型及CGROM的中文字型,三种字型的选择,由在DDRAM中写入的编码选择,在0000H0006H的编码中(其代码分别是0000、0002、0004、0

35、006共4个)将选择CGRAM的自定义字型,02H7FH的编码中将选择半角英数字的字型,至于A1以上的编码将自动的结合下一个位元组,组成两个位元组的编码形成中文字型的编码BIG5(A140D75F),GB(A1A0-F7FFH)。 字型产生RAM(CGRAM) 字型产生RAM提供图象定义(造字)功能, 可以提供四组1616点的自定义图象空间,使用者可以将内部字型没有提供的图象字型自行定义到CGRAM中,便可和CGROM中的定义一样地通过DDRAM显示在屏幕中。 地址计数器AC 地址计数器是用来贮存DDRAM/CGRAM之一的地址,它可由设定指令暂存器来改变,之后只要读取或是写入DDRAM/CG

36、RAM的值时,地址计数器的值就会自动加一,当RS为“0”时而R/W为“1”时,地址计数器的值会被读取到DB6DB0中。光标/闪烁控制电路 此模块提供硬体光标及闪烁控制电路,由地址计数器的值来指定DDRAM中的光标或闪烁位置。3.3.4 指令说明模块控制芯片提供两套控制命令,基本指令和扩充指令如表3.10、表3.11所示:表3.10 基本指令(RE=0)指 指 令 码功 能令RSR/WD7D6D5D4D3D2D1D0清除显示0000000001将DDRAM填满20H,并且设定DDRAM的地址计数器(AC)到00H地址归位000000001X设定DDRAM的地址计数器(AC)到00H,并且将游标移

37、到开头原点位置;这个指令不改变DDRAM的内容显示状态开/关0000001DCBD=1: 整体显示 ONC=1: 游标ONB=1:游标位置反白允许进入点设定00000001I/DS指定在数据的读取与写入时,设定游标的移动方向及指定显示的移位游标或显示移位控制000001S/CR/LXX设定游标的移动与显示的移位控制位;这个指令不改变DDRAM 的内容功能设定00001DLXREXXDL=0/1:4/8位数据RE=1: 扩充指令操作RE=0: 基本指令操作设定CGRAM地址0001AC5AC4AC3AC2AC1AC0设定CGRAM 地址设定DDRAM地址0010AC5AC4AC3AC2AC1AC

38、0设定DDRAM 地址(显示位址)第一行:80H87H第二行:90H97H读取忙标志和地址01BFAC6AC5AC4AC3AC2AC1AC0读取忙标志(BF)可以确认内部动作是否完成,同时可以读出地址计数器(AC)的值写数据到RAM10数据将数据D7D0写入到内部的RAM(DDRAM/CGRAM/IRAM/GRAM)读出RAM的值11数据从内部RAM读取数据D7D0(DDRAM/CGRAM/IRAM/GRAM)表3.12 扩充指令(RE=1)指指 令 码功 能令RSR/WD7D6D5D4D3D2D1D0待命模式0000000001进入待命模式,执行其他指令都可终止待命模式卷动地址开关开启000

39、000001SRSR=1:允许输入垂直卷动地址SR=0:允许输入IRAM和CGRAM地址反白选择00000001R1R0选择2行中的任一行作反白显示,并可决定反白与否。初始值R1R000,第一次设定为反白显示,再次设定变回正常睡眠模式0000001SLXXSL=0:进入睡眠模式SL=1:脱离睡眠模式扩充功能设定00001CLXREG0CL=0/1:4/8位数据RE=1: 扩充指令操作RE=0: 基本指令操作G=1/0:绘图开关设定绘图RAM地址0010AC60AC50AC4AC3AC3AC2AC2AC1AC1AC0AC0设定绘图RAM 先设定垂直(列)地址AC6AC5AC0,再设定水平(行)地

40、AC3AC2AC1AC0将以上16位地址连续写入即可备注:当IC1在接受指令前,微处理器必须先确认其内部处于非忙碌状态,即读取BF标志时,BF需为零,方可接受新的指令;如果在送出一个指令前并不检查BF标志,那么在前一个指令和这个指令中间必须延长一段较长的时间,即是等待前一个指令确实执行完成。3.4芯片MAX485和RS485通信的概述MAX485是用于通信的低功耗收发器,每个器件中都具有一个驱动器和一个接收器。3.4.1 芯片MAX485的概述1)引脚排列、引脚说明和典型工作电路 MAX481/MAX483/MAX485的引脚排列和典型工作电路分别如图3.6所示: 图3.6 MAX485的引脚

41、排列和典型工作电路2)其具体引脚说明如下表3.13所示:表3.13 MAX481/MAX483/MAX485引脚说明MAX481/MAX483/MAX485引脚 名称 功能 1 RO接收器输出端。若A比B大200mV,RO为高,若A比B小200mV,RO为低 2/RE接收器输出使能端。当/RE为低时,RO有效;当/RE为高时,RO为高阻状态 3 DE驱动器输出使能端。若DE为高,驱动输出A和B有效;若DE为低,它们成高阻状态,若驱动器输出有效,器件作为线驱动器用;若为高阻状态时,/RE为低,器件作线接收器用。 4 DI驱动器输入端。DI为低,将迫使输出为低;若DI为高,将迫使输出为高。 5GN

42、D地 6 A 同向接收器输入和同向驱动器输出端 7 B反向接收器输入和反向驱动器输出端 8VCC正电源输入端:4.75V5.25V3.4.2 总线驱动器芯片SN75176常用的RS485总线驱动芯片有SN75174,SN75175,SN75176。SN75176芯片有一个发送器和一个接收器,非常适合作为RS485总线驱动芯片。其逻辑关系如图3.7所示。图3.7 SN75176芯片及其逻辑关系第四章 系统的中断,定时与串行通信4.1单片机的中断系统 4.1.1 中断的概念 中断系统又叫作中断管理系统,其功能是使处理机对外界异步事件具有处理能力。中断是一个过程,当中央处理器CPU在处理某件事情时,

43、外部又发生了另一紧急事件,请求CPU暂停当前的工作而去迅速处理该紧急事件。处理结束后,再回到原来被中断的地方,继续原来的工作。引起中断的原因或发出中断请求的来源,称为中断源。 单片机一般允许有多个中断源,当几个中断源同时向CPU请求中断时,就存在CPU优先响应哪一个中断请求源的问题(优先级问题),一般根据中断源的轻重缓急排队,优先处理最紧急事件的中断请求,于是便规定每一个中断源都有一个中断优先级别,并且CPU总是响应级别最高的中断请求。 当CPU正在处理一个中断源请求的时候,又发生了另一个优先级比它高的中断源请求,如果CPU能够暂时中止对原来中断处理程序的执行,转而去处理优先级更高的中断源请求

44、,待处理完以后,再继续执行原来的低级中断处理程序,这样的过程称为中断嵌套。具有这种功能的中断系统称为多级中断系统。没有中断嵌套功能的中断系统称为单级中断系统。主程序中断相应中断服务程序中断返回继续执行主程序MCS-51系列单片机中断系统可以提供5个中断源,具有2个中断优先级,可实现两级中断嵌套。用户可以用关中断指令(或复位)来屏蔽所有的中断请求,也可以用开中断指令使CPU接收中断请求;每一个中断源可以用软件独立地控制为开或关中断状态;每一个中断级别均可用软件设置。现从工作过程和编程方法来介绍MCS-51的中断系统。4.1.2 中断源和中断请求标志 在MCS-51系列单片机中,不同类型的单片机,

45、其中断源个数和中断标志位的定义也有所不同。1)定时/计数控制寄存器TCONTCON为定时/计数器T0、T1的控制器,同时也锁存了T0、T1的溢出中断请求信号标志和外部中断请求信号标志,其各位的定义如表4.1所示。 表4.1 TCON各位定义位编号TCON.7TCON.6TCON.5TCON.4TCON.3TCON.2TCON.1TCON.0位地址8FH8EH8DH8CH8BH8AH89H88H位定义TF1TR1TF0TR0IE1IT1IE0IT01) TF1:定时器T1溢出中断申请位。定时器T1被允许计数后,从初值开始加一计数,当产生溢时置TF1=1,向CPU请求中断,直到CPU响应该中断时才

46、由硬件清零。2) TR1:定时/计数器T1的启停控制位。TR1=1时,定时器T1开始计数工作,TR1=0时,T1停止计数。TR1状态由软件设置。3) TF0:定时器T0溢出中断申请位。T0被允许计数后,从初值开始加一计数,当产生溢时,硬件自动置TF0为1,向CPU请求中断,当CPU响应该中断后,该位由硬件清零。4) TR0::定时/计数器T0的启停控制位。TR0=1时,定时器T0开始计数工作;TR0=0时,T0停止计数。TR0状态由软件设置。5) IE1:外部中断/INT1(P3.3)请求标志位。当CPU 检测到在/INT1(P3.3)引脚上出现的外部中断信号时(低电平或脉冲下降沿)时,由硬件

47、自动将该位置位,请求中断。当CPU响应中断进入相应中断服务程序后,该位被硬件自动清0(指脉冲边沿触发方式,电平触发方式时不能由硬件清0)。6) IT1:外部中断/INT1(P3.3)触发方式控制位。由软件来置1或清0,以控制外部中断1的触发类型。当IT1=1时为边沿触发方式,CPU在每个机械周期采样/INT1(P3.3)引脚输入电平,若相继的两次采样中一个采样周期为高电平,接着下一个采样周期为低电平,则视为有中断请求信号产生,置位IE1。采用边沿触发方式时,外部中断源输入的高电平和低电平时间必须保持一个机械周期,才能保证CPU可靠的检测到由高到低的负跳变。当IT1=0时,设定为低电平触发中断方

48、式,当/INT1(P3.3)引脚输入低电平时,有中断请求信号产生,置位IE1,申请中断。采用电平触发方式时,外部中断引脚/INT1(P3.3)必须保持低电平有效,直到该中断被CPU响应为止。同时,在该终端服务程序执行完之前,外部中断输入引脚/INT1(P3.3)的有效电平必须被撤销,否则将产生另一次中断。7) IE0:外部中断/INT0(P3.2)请求标志位。外部中断0产生中断请求信号时,硬件自动将该位置1,请求中断,当中断响应之后,该位被清零,其功能与IE1类同。8) 外部中断/INT0(P3.2)触发方式控制位。IT0=0时,外部中断0为低电平触发方式;当IT0=1时为边沿触发方式,其功能

49、和IT1类似。(2) 串行口控制寄存器SCON。SCON为串行口控制寄存器,SCON的低两位锁存串行口接收中断和发送中断标志RI和TI,其格式如表4.2所示:表4.2 SCON各位定义位编号SCON.7SCON.6SCON.5SCON.4SCON.3SCON.2SCON.1SCON.0位地址9FH9EH9DH9CH9BH9AH99H98H位定义SM0SM1SM2RENTB8RB8T1R11)TI:串行口发送中断标志。在串行口发送完一组数据时,TI由硬件自动置为1,请求中断。当CPU响应中断进入终端服务子程序后,TI状态不能被硬件自动清除,必须在终端服务程序中由软件来清除。2) RI:串行口接收

50、中断标志位。在串行口接收完一组数据时,RI由硬件自动置为1,请求中断。当CPU响应中断进入终端服务子程序后,RI状态不能被硬件自动清除,必须在终端服务程序中由软件来清除。3) 其他各位是控制串行口的工作状态的,与中断没有关系。单片机系统复位后,TCON、SCON中各位均为0,应用时应注意各位的初始状态。MCS51单片机中,当中断源申请时首先要置位相应的中断标志位,CPU检测到中断标志位之后才决定是否响应。当CPU响应了中断请求,相应的标志位就要被清除,否则CPU在执行完本次中断服务程序之后还要再次响应该中断请求,会造成混乱。因此在应用中需要注意中断请求的撤销以及中断标志的清除。下图为中断源及其对应的矢量地址: 中断源 中断入口地址 外部中断0 0003H 定时器T0中断 000BH 外部中断1 0013H 定时器T1中断 001BH 串行口中断 0023H4.1.3 中断控制MCS-51单片机有两个特殊功能寄存器,用于中断系统的控制,分别为中断允许寄存器IE和中断优先级寄存器IP。(1)中断允许寄存器IEIE控制

温馨提示

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

评论

0/150

提交评论