资源描述
邕 江 大 学毕业设计(论文)设计题目基于AT89C51单片机的数字电压表设计专题部分 姓名 李焕禄 学号 20080103007 院 工学院 专业与学制 应用电子技术 班别 2008级 指导教师 朱浩亮 日期2010年10月11日目 录摘 要1绪 论2一、硬件电路设计3(一)数字电压表工作原理3(二)主控模块4(三)模拟转化模块6(四)显示模块9(五)电源模块13二、软件设计14三、调试和分析15(一)系统软硬件调试15(二)数据结果分析16结束语16致 谢17参考文献18附录 整体设计电路图20附录 程序源代码21II摘 要数字电压表是诸多数字化仪表的核心与基础。以数字电压表为核心扩展成的各种数字化仪表几乎覆盖了电子电工测量、工业测量、自动化系统等各个领域。本文介绍一种基于AT89C51单片机的一种电压测量电路,该电路采用ADC0809高精度A/D转换电路,测量范围直流0-5V,使用LCD液晶模块显示,可以与PC机进行串行通信。正文着重给出了软硬件的各部分电路,介绍了模数转换器原理,AT89C51特点,及LCD1602的功能和应用。该电路设计新颖、功能强大、可扩展性强。关键词:电压测量,ADC0809,AT89C51,LCD1602AbstractDigital voltmeter is a lot of digital instrument the core and foundation. With digital voltmeter as the core of various expanded into digital instrument that covered nearly electronic electrician measurement, industrial measurement and automation system, etc. This paper introduces A based on AT89C51 A voltage measurement circuit, this circuit adopts ADC0809 high-precision A/D circuit, measurement range 0 - 5V dc, use LCD module that can be with the PC for serial communication. The text mainly gives each part of a circuit hardware and software, this paper introduces the principle of adc, AT89C51 features and LCD1602 function and application. The circuit design novel, powerful, flexible expandability.Keywords: voltage measurement, ADC0809, AT89C51, LCD1602绪 论电压、电流和功率是表征电信号能量大小的三个基本参数,其中又以电压最为常用。通过电压测量,利用基本公式可以导出其他的参数;此外,电路中电流的状态,如饱和、截止、谐振等均可用电压形式来描述;许多电参数,如频率特性、增益、调制度、失真度等也可视为电压的派生量;许多电子测量仪器,如信号发生器、阻抗电桥、失真度仪等都用电压量作为指示。因此,电压测量是其他许多电参数量,也包括非电参数量测量的基础,是相当重要、相当普及的一种参数测量。传统的电压测量,采用指针式模拟电压表。由于电子技术、计算机技术和大规模集成电路的应用,数字式电压测量仪逐渐代替了模拟式电压测量仪,并且向高精度、多功能和智能化发展。数字电压表(Digital Voltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。传统的指针式电压表功能单一精度低,不能满足数字化时代的需求,采用单片机控制的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC进行实时通信。当今,数字电压表正进入一个蓬勃发展的新时期,一方面它开拓了电子测量领域的先河,另一方面它本身正朝着高准确度、智能化、低成本的方向发展。此外,数字电压表在安装工艺、外观设计、安全性、可靠性等方面也在不断改进,日臻完善。 本设计采用8位CMOS ADC0809来进行A/D转换,属于逐次逼近性直流数字电压表。该数字电压表采用LCD显示,除具有一般数字电压表读数直观准确、测量速度快、输入阻抗大、测量范围宽之外,还具有读数保持的功能。电路特点是成本低,简单,体积小,安全性好,可扩展性强(只需加上各种转换器就可构成万用表)。一、硬件电路设计数字电压表的实现分为四大部分。第一部分是主控模块,第二部分是模拟转化模块,第三部分是显示模块,第四部分是电源供电模块。主控模块采用AT89C51单片机为控制核心,模拟转化模块由芯片ADC0809完成模拟到数字量的转化,显示模块使用液晶显示LCD1602。系统整体设计框图如图1-1所示:图1-1 系统整体设计框图(一)数字电压表工作原理本设计采用AT89S51单片机芯片配合ADC0809模/数转换芯片构成一个简易的数字电压表1-2。该电路通过ADC0809芯片采样输入口IN0输入的05 V的模拟量电压,经过模/数转换后,产生相应的数字量经过其输出通道D0D7传送给AT8CS51芯片的P2口。A/D转换主要由芯片ADC0809来完成,它负责把采集到的模拟量转换为相应的数字量再传送到数据处理模块。数据处理则由芯片AT89C51来完成,其负责把接收到的数字量经过数据处理,产生正确的ASCII码,并通过其P0口传送给LCD1602显示出来;同时由P3.5、P3.6、P3.7控制液晶显示的指令及数据的读入写出和控制信号。另外,AT89C51还通过信号位控制着ADC0809的工作。(二)主控模块该模块采用ATMEL推出的AT89C51实现。AT89C51是一种带4K字节闪烁可编程可擦出(FPEROMFalshProgrammableandErasableReadOnlyMemory)低电压,高性能CMOS8位微处理器3-4。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案5。其管脚图如图1-2所示。图1-2 AT89C51管脚图1、功能特性主要特性:与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环 数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路 管脚功能VCC:供电电压。GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。2、单片机最小系统单片机要正常工作必须构成最小系统,也就说形成最小系统才能发挥内部各个器件的功能。最简单的最小系统有两部分组成,一部分是单片机;另一部分是外围电路,外围电路主要器件是晶振。 最小系统时钟震荡采用内部震荡,如图2-3(a)所示;单片机最小系统如图2-3(b)所示。 (a)内部时钟振荡 (b)最小系统图1-3 AT89C51最小系统(三)模拟转化模块A/D转换器是模拟量输入通道中的一个环节,单片机通过A/D转换器把输入模拟量变成数字量再处理。随着大规模集成电路的发展,目前不同厂家已经生产出了多种型号的A/D转换器,以满足不同应用场合的需要。如果按照工作原理划分,ADC主要有4种类型,即双积分式A/D转换器、逐次逼近式A/D转换器和并行式A/D转换器和计数比较式A/D转换器。目前最常用的是双积分和逐次逼近式。双积分式A/D转换器具有抗干扰能力强、转换精度高、价格便宜等优点,比如ICL71XX系列等,它们通常带有自动较零、七段码输出等功能。与双积分相比,逐次逼近式A/D转换的转换速度更快,而且精度更高,比如ADC0808、ADC0809等,它们通常具有8路模拟选通开关及地址译码、锁存电路等,它们可以与单片机系统连接,将数字量送单片机进行分析和显示。本设计中采用具有逐次逼近式A/D转换器的ADC0809芯片。ADC0809是典型的8位8通道逐次逼近式A/D转换器。它可以和微型计算机直接接口。ADC0809转换器的系列芯片是ADC0808,可以相互替换。ADC0809的结构图如图2-4所示。 (a) 引脚结构 (b) 内部结构图1-4 ADC0809的结构图ADC0809的内部结构包括8路模拟选通开关、通道地址锁存器与译码器、8位A/D转换器和三态输出锁存器。多路开关接8路模拟量输入,可对8路05V的输入模拟电压信号分时进行转换,输出具有TTL三态锁存器,可直接连到单片机数据总线上。多路模拟开关可选通8路模拟通道,允许8路模拟量分时输入,并共用一个A/D转换器进行转换。地址锁存与译码电路完成对A、B、C三个地址位进行锁存与译码,如表1-1所示。表1-1 ADC0809通道选择表 C(ADDC)B(ADDB)A(ADDA)选择的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN71、ADC0809各引脚功能如下:1)IN7IN0模拟量输入通道。ADC0809对输入模拟量的要求主要有:信号单极性,电压范围05V,若信号过小,还需进行放大。另外,模拟量输入在A/D转换的过程中,其值应保持不变,因此,对变化速度快的模拟输入量,在输入前应增加采样保持电路。2)A、B、C地址线。A为低位地址,C为高位地址,用于对8路模拟通道进行选择。3)ALE地址锁存允许信号。由低至高电平正跳变将通道地址锁存至地址锁存器中。 4)START启动转换信号。START上跳沿时所有内部寄存器清0;START下跳沿时,开始进行A/D转换。在A/D转换期间,START应保持低电平。5)D7D0数据输出线。为三态缓冲输出形式,可以和单片机的数据线直接相连。6)OE输出允许信号。用于控制三态输出锁存器向单片机上输出转换得到的数据。OE=0,输出数据线呈高电阻态;OE=1,输出转换得到的数据。7)CLOCK时钟信号。ADC0809内部没有时钟电路,所需时钟信号由外界提供,要求频率范围10kHz1.2MHz。通常使用频率为500 kHz的时钟信号。8)EOC转换结束状态信号。EOC0,正在进行转换;EOC=1,转换结束。该状态信号既可作为查询的状态标志,又可以作为中断请求信号使用。9)VCC+5V电源。10)REF(+)、REF(-)参考电压。参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。其典型值为REF(+)=+5V,REF(-)=0V。2、ADC0809的工作原理:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。(注意:ALE信号常与START信号连在一起,这样连接可以在信号的前沿写入地址信号,在其后沿启动A/D转换)。3、ADC0809应用说明: 1)ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连。 2)初始化时,使ST和OE信号全为低电平。 3)送要转换的哪一通道的地址到A,B,C端口上。 4)在ST端给出一个至少有100ns宽的正脉冲信号。 5)是否转换完毕,我们根据EOC信号来判断。 6)当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。(四)显示模块显示接口用来显示系统的状态,命令或采集的电压数据。本系统显示部分采用LCD液晶模块。液晶显示具有工作电压低、低功耗、显示信息量大和借口方便等优点,已被广泛应用于计算机和数字仪表等领域,成为测量结果显示和人机对话的主要工具。常见的液晶显示器可分为字符型和绘图型两种。1602是常用的字符型显示模块,可用显示两行共16个字符。1602有8位数据总线D0D7和RS、R/W、E3个控制端口,其工作电压为+5V,并且带有字符对比度调节和背光功能。1602D的引脚图如图2-5所示。图1-5 1602引脚图1、 1602的引脚功能1602各个引脚功能如表1-2所示。符号引脚说明VSS电源地VDD电源正极,接+4.5V+5.5V电源,通常使用+5V电源。VEE驱动LCD,一般将此脚串接一个电阻到地。RS向1602写入数据或指令的选择段。向1602写入指令时,需使RS保持低电平;向1602写入数据时,需使RS保持高电平。R/W读写控制端。R/W为高电平时,可从1602读取数据;R/W为低电平时,可向1602写入数据或者指令。ELCD模块使能信号控制端。当E为高电平时,1602的数据猜能被读出;当E为低电平时,1602才能执行外部写入的指令或显示外部写入的数据。D0D7数据输入/输出口表1-2引脚功能2、1602的操作指令1602液晶模块内部的控制器共有11条控制指令,可用于控制显示和传送数据。需要注意的是,每次访问1602,都需要先确认其是否处于“忙”状态,只有1602空闲时,才可对其进行操作。(1)清屏操作指令指令码:RSR/WD7D6D5D4D3D2D1D00000000001功能:清空屏幕,并使光标复位到地址00H位置,即屏幕上第1个可显示字符的位置。(2)光标复位指令指令码:RSR/WD7D6D5D4D3D2D1D0000000001*功能:使光标复位,光标返回到地址00H。(3)设置输入模式指令指令码:RSR/WD7D6D5D4D3D2D1D000000001I/DS功能:I/D是光标移动方向控制位。 I/D=1,完成一个字符码传送后,光标右移; I/D=0,完场一个字符码传送后,光标左移; S是显示移位标志。 S=1,完成一个字符码传送后,全部显示字符向右(I/D=0)或者左移(I/D=1)移位,使光标不移动。 S=0,完成一个字符码传送后,显示字符不发生移位,而光标移动。(4) 显示开/关控制指令指令码:RSR/WD7D6D5D4D3D2D1D00000001DCB功能:D用于控制整体显示的开与关。 D=1,开显示;D=0,关显示。C用于控制光标显示的开与关。C=1,且D=1,显示光标;C=0,不显示光标。B用于控制光标是否闪烁。B=1,且D=1,光标闪烁;B=0,光标不闪烁。(5) 光标或字符移位指令指令码:RSR/WD7D6D5D4D3D2D1D0000001S/CR/L*功能:使光标或显示字符在没有读写数据的情况下,向左或向右移动。 S/C=1,光标和显示字符一起移动;S/C=0,只移动光标。R/L=1,光标或显示字符向右移动;R/L=0,光标或显示字符向左移动。(6) 功能设置指令指令码:RSR/WD7D6D5D4D3D2D1D000001DLNF*功能:DL=1,使用8伟总线;DL=0,只使用4位总线(D7D4)。 N=1,双行显示;N=0,单行显示。 F=1,显示510的点阵字符;F=0,显示57的点阵字符。(7) CGRAM地址设置指令指令码:RSR/WD7D6D5D4D3D2D1D00001ACG5ACG4ACG3ACG2ACG1ACG0功能:设置CGRAM地址指针。CGRAM供用户存储自定义字符。(8) DDRAM地址设置指令指令码:RSR/WD7D6D5D4D3D2D1D0001ADD6ADD5ADD4ADD3ADD2ADD1ADD0功能:该指令设置数据缓冲区(DDRAM)的地址指针,即设置下次向DDRAM中写入或读取字符的位置,该位置由ADD6ADD0决定。显示数据缓冲区用于缓存屏幕显示的字符,DDRAM地址与LCD显示屏上的显示位置的关系如表1-3所示。表1-3 DDRAM地址与LCD显示屏的显示位置关系显示位序号1234540第1行地址00H01H02H03H04H27H第2行地址40H41H42H43H44H67H(9) 读忙信号和光标地址指令指令码:RSR/WD7D6D5D4D3D2D1D001BFAC6AC5AC4AC3AC2AC1AC0功能:当RS=0、R/W=1,且E=1时,和BF和AC6AC0的信息被放置到数据总线D7D0的相应位,供外部读取。若BF=1,表示内部操作忙,此时1602不接受任何外部指令和数据。若BF=0,表示1602空闲,可以接受外部指令和数据。AC6AC0:地址计数器AC内的当前内容。地址计数器AC是CGROM、CGRAM和DDRAM的公用指针,因此当前AC所指的区域由前面的地址设置指令决定。同时,只有BF=0时,AC6AC0才有效。(10).写入数据指令:指令码:RSR/WD7D6D5D4D3D2D1D010D7D6D5D4D3D2D1D0功能:向CGRAM或DDRAM写入数据,该数据由D0D7构成。(11)读出数据指令指令码:RSR/WD7D6D5D4D3D2D1D011D7D6D5D4D3D2D1D0功能:将CGRAM或DDRAM某个单元中的数据读出,该单元的地址由地址计数器AC指定。读数据之前,应先通过其他指令使AC指向需要读取数据的地址单元。3、液晶显示部分与单片机的接口图1-6 LCD与单片机接口如图1-6所示:用AT89C51的P0口作为数据总线,用P3.5、P3.6、P3.7分别作为LCD的RS、R/W、E,其中E是下降沿出发的片选信号,R/W是读写信号,RS是寄存器选择信号。本模块设计要点如下:显示模块初始化:首先清屏,再设置接口数据为8位,显示行数为2行,字型为57点阵,然后设置为整体显示,取消光标和字体闪烁,最后设置为正向增量方式且不移位。向LCD的显示缓冲区中送字符,程序中采用2个字符数组,一个显示字符,另一个显示电压数据,要显示的字符或数据被送到相应的数组中,完成后再统一显示。首先取一个要显示的字符或数据送到LCD的显示缓冲区,程序延时2.5ms,判断是否够显示的个数,不够则地址加一取下一个要显示的字符或数据。(五)电源模块电源部分电路主要是要求能提供稳定可靠的电压,使整个系统能正常的工作。采用220V的工频交流电压,而单片机的工作电压是直流+5V,为此,先通过一个普通的变压器降低电压,再通过桥式整流,然后再通过7805芯片的进一步稳压,确保+5V电源的稳定、可靠。而且7805集成稳压器是常用的固定输出+5V电压的集成稳压器。它的内部含有限流保护、过热保护和过压保护电路,采用了噪声低、温度漂移小的基准电压源,工作稳定可靠。发光二极管D2点亮表示电源电路正常工作。电源部分电路如图1-7所示。图1-7 直流稳压电源特性指标如下:(1)输出电压范围符合直流稳压电源工作条件情况下,能够正常工作的输出电压范围。该指标的上限是由最大输入电压和最小输入输出电压差所规定,而其下限由直流稳压电源内部的基准电压值决定。(2)最大输入输出电压差该指标表征在保证直流稳压电源正常工作条件下,所允许的最大输入输出之间的电压差值,其值主要取决于直流稳压电源内部调整晶体管的耐压指标。(3)最小输入输出电压差该指标表征在保证直流稳压电源正常工作条件下,所需的最小输入输出之间的电压差值。(4)输出负载电流范围输出负载电流范围又称为输出电流范围,在这一电流范围内,直流稳压电源应能保证符合指标规范所给出的指标。二、软件设计主程序主要是对AT89C51进行初始化设置。首先设置定时器的工作模式及初值。然后设置电压在LCD上显示的控制方式,最后是调用A/D转换和LCD子程序。ADC0809的转换子程序中,首先给START一个上升沿信号启动转换,然后采用查询方式查看是否转换结束,即EOC是否为1,如果EOC为1,可确定转换结束,即可读取转换结果,最后编写算法将0255十进制数字量转换成0.05.0V的数据。LCD显示子程序中,先设置LCD的显示模式,再设置数据显示地址,然后写入指令,执行指令,最后输出要显示数据。程序流程图如图2-1所示: (a) 主程序 (b) A/D转换图 2-1 程序流程图三、调试和分析(一)系统软硬件调试在系统上电开始测量前,要用万用表的电压档对被测电压进行估测,然后以此选择适当的量程,防止电压过大烧坏A/D转换器。首先用万用表按照原理图逐步检查印刷板中各器件的电源及各引脚的连接是否正确,有无断路、短路或虚焊,尤其是电源部分要重点检查,用数字万用表测量7805输出端的电压是否为+5V,是否稳定,能够输出+5V,且稳定即可说明电源电路的设计基本达到要求。如果电压没有达到要求,要及时排查给予解决,以免烧坏芯片和其他元器件。软件调试时,首先要进行模块化调试,分别对各个模块进行编程,在Keilc上编译链接,成功后再结合Protues作图仿真,最后再把整个模块结合进行仿真、运行结果。软件调试时,在A/D处理转换结果的时候遇到问题,开始我将A/D读取的值直接转换成十进制值进行输出,结果和万用表测的的数据相差甚远,后来考虑倒了A/D分辨率的问题,进行算法的优化,终于调试出想要的结果。(二)数据结果分析1测量结果比较如表3-1所示。表3-1测量结果实际数据0.000.051.351.902.292.493.394.004.455.00显示数据0.000.051.351.902.302.503.404.004.455.002 测量结果曲线图如图3-1所示:图3-1 测量结果曲线图 由以上图表数据显示结果分析,符合要求。结束语本文运用AT89C51和ADC0809进行A/D转换,根据数据采集的工作原理,设计实现数字电压表,最后完成单片机与PC的数据通信,传送所测量的电压值最后完成单片机与PC的数据通信。由于使用的是高效单片机作为核心的测量系统,以及灵敏度和精度较高的A/D转换器,使本直流电压表具有高精度、灵敏度强、性能可靠、电路简单、成本低的特点、加上经过优化的程序,使其具有很高的智能化水平。此外,它有很大的发展空间,例如可以结合温度传感器组成测温系统,从而作为数字万用表使用。数字电压表的设计和开发,已经有多种类型和款式。传统的数字电压表各有特点,它们适合在现场做手工测量,要完成远程测量并要对测量数据做进一步处理,传统数字电压表是无法完成的。然而基于PC通信的数字电压表,既可以完成测量数据的传递,又可借助PC,做测量数据的处理。所以这种类型的数字电压表无论在功能和实际上,都具有传统数字电压表无法比拟的特点,这使得它的开发和应用具有良好的前景。单片机的应用如今已经在工业、电子等方方面面转世出了它的优越性,利用单片机在设计电路逐渐成了趋势,它与外围的简单电路再加上优化程序就可以构建任意的产品,使得本设计成为现实。随着单片机的日益发展,它必将在未来显示出更大的活力,为电子设计增加更多的精彩。致 谢在论文完成之际,我要特别感谢我的指导老师朱浩亮老师的热切关怀和悉心指导。在我撰写论文的过程中,朱老师倾注了大量的心血和汗水,无论是在论文的选题、构思和资料的收集方面,还是在论文的研究方法以及成文定稿方面,我都得到了朱老师悉心细致的教诲和无私的帮助,特别是他广博的学识、深厚的学术素养、严谨的治学精神和一丝不苟的工作作风使我终生受益,在此表示真诚地感谢和深深的谢意。我还要感谢三年来精心教导我的各科任课老师,是他们教授我学识和做人的道理。我还要感谢在一起愉快的度过大学三年的兄弟姐妹们,正是由于你们的帮助和支持,我才能克服一个一个的困难和疑惑,直至本文的顺利完成。论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!最后我还要感谢培养我长大含辛茹苦的父母,谢谢你们!在论文的写作过程中,也得到了许多同学的宝贵建议,同时还得到许多在工作过程中支持和帮助我的同学,在此一并致以诚挚的谢意。参考文献1李全利编.单片机原理及应用技术. 北京:M高等教育出版社,20022何立民编.单片机应用技术篇M.北京:北京航空天文大学出版社,20013刘守义编.单片机应用技术M. 西安: 西安电子科技大学出版社,20044李中发等编著.数字电子技术M. 北京:中国水利水电出版社,20035徐瑞华编.单片机原理与接口技术.北京:人民邮电出版社,2008附录 整体设计电路图附录 程序源代码#include includes.h#define TIME0H 0x3C#define TIME0L 0xB0 /头文件及宏定义unsigned char uc_Clock=0;/定时器0中断计数bit b_DATransform=0;/把电压显示在LCD上void vShowVoltage(unsigned int uiNumber)unsigned char ucaNumber3,ucCount;if(uiNumber999)uiNumber=999;ucaNumber0=uiNumber/100;/把计算数字的每个位存入数组。ucaNumber1=(uiNumber-100*(int)ucaNumber0)/10;ucaNumber2=uiNumber-100*(int)ucaNumber0-10*ucaNumber1;for(ucCount=0;ucCount3;ucCount+)vShowOneChar(ucaNumberucCount+48)/从首位到末位逐一输出。if(ucCount=0)vShowOneChar(.); /主函数void main()/设置定时器0TMOD=0x01;/定时器0,模式1。TH0=TIME0H;TL0=TIME0L;TR0=1;/启动定时器。ET0=1;/开定时器中断。EA=1;/开总中断vdInitialize();vWriteCMD(0x80); /写入显示起始地址(第二行第一个位置)vShowChar(Voltage:);vWriteCMD(0xC9);vShowChar(V);while(1)if(b_DATransform=1)b_DATransform=0;vWriteCMD(0xC4);vShowVoltage(uiADTransform(); /定时器0中断函数void Time0() interrupt 1if(uc_Clock=0)uc_Clock=5;b_DATransform=1;elseuc_Clock-;TH0=TIME0H; /恢复定时器0。TL0=TIME0L; /SMC1602驱动程序#include SMC1602.h /头文件宏定义 /写命令子程序void vWriteCMD(unsigned char ucCommand) vDelay();/先延时。LCDE=1;/然后把改为写入命令状态。LCDRS=0;LCDRW=0;LCDPORT=ucCommand;/再输出命令。LCDE=0;/最后执行命令。 /写数据子程序void vWriteData(unsigned char ucData) vDelay(); /先延时。LCDE=1; /然后把改为写入数据状态。LCDRS=1;LCDRW=0;LCDPORT=ucData; /再输出数据。LCDE=0; /最后显示数据。void vShowOneChar(unsigned char ucChar)switch(ucChar)case (: vWriteData(0x28);break;case ): vWriteData(0x29);break; case .: vWriteData(0x2E);break;case : vWriteData(0x3A);break;case 0: vWriteData(0x30);break;case 1: vWriteData(0x31);break;case 2: vWriteData(0x32);break;case 3: vWriteData(0x33);break;case 4: vWriteData(0x34);break;case 5: vWriteData(0x35);break;case 6: vWriteData(0x36);break;case 7: vWriteData(0x37);break;case 8: vWriteData(0x38);break;case 9: vWriteData(0x39);break; case V: vWriteData(0x56);break; case a: vWriteData(0x61);break; case e: vWriteData(0x65);break; case g: vWriteData(0x67);break; case l: vWriteData(0x6C);break; case o: vWriteData(0x6F);break;default: break;void vShowChar(unsigned char ucaChar) /显示unsigned char ucCount;for(ucCount=0;ucCount+)vShowOneChar(ucaCharucCount);if(ucaCharucCount+1=0)break; /延时子函数void vDelay()unsigned int uiCount;for(uiCount=0;uiCount250;uiCount+); /A/D转换子函数#include #define START P3_4 /START,ALE接口。0-1-0:启动AD转换。#define EOC P3_3 /转换完毕由0变1.#define OUTPORT P2 /AD转换函数,返回转换结果。/转换结果是3位数,小数点在百位与十位之间。unsigned int uiADTransform()unsigned int uiResult;START=1; /启动AD转换。START=0;while(EOC=0); /等待转换结束。uiResult=OUTPORT; /输出转换结果。uiResult=(100*uiResult)/51; /处理运算结果。return uiResult;g an employment tribunal claiEmployment tribunals sort out disagreements between employers and employees.You may need to make a claim to an employment tribunal if: you dont agree with the disciplinary action your employer has taken against you your employer dismisses you and you think that you have been dismissed unfairly.For more information about dismissal and unfair dismissal, seeDismissal.You can make a claim to an employment tribunal, even if you haventappealedagainst the disciplinary action your employer has taken against you. However, if you win your case, the tribunal may reduce any compensation awarded to you as a result of your failure to appeal.Remember that in most cases you must make an application to an employment tribunal within three months of the date when the event you are complaining about happened. If your application is received after this time limit, the tribunal will not usually accept i.If you are worried about how the time limits apply to you, take advice from one of the organisations listed underFurther help.Employment tribunals are less formal than some other courts, but it is still a legal process and you will need to give evidence under an oath or affirmation.Most people find making a claim to an employment tribunal challenging. If you are thinking about making a claim to an employment tribunal, you should get help straight away from one of the organisations listed underFurther help.If you are being represented by a solicitor at the tribunal, they may ask you to sign an agreement where you pay their fee out of your compensation if you win the case. This is known as adamages-based agreement. In England and Wales, your solicitor cant charge you more than 35% of your compensation if you win the case.If you are thinking about signing up for a damages-based agreement, you should make sure youre clear about the terms of the agreement. It might be best to get advice from an experienced adviser, for example, at a Citizens Advice Bureau. To find your nearest CAB, including those that give advice by e-mail, click onnearest CAB.For more information about making a claim to an employment tribunal, seeEmployment tribunals.The (lack of) air up there Watch mCayman Islands-based Webb, the head of Fifas anti-racism taskforce, is in London for the Football Associations 150th anniversary celebrations and will attend Citys Premier League match at Chelsea on Sunday.I am going to be at the match tomorrow and I have asked to meet Yaya Toure, he told BBC Sport.For me its about how he felt and I would like to speak to him first to find out what his experience was.Uefa hasopened disciplinary proceedings against CSKAfor the racist behaviour of their fans duringCitys 2-1 win.Michel Platini, president of European footballs governing body, has also ordered an immediate investigation into the referees actions.CSKA said they were surprised and disappointed by Toures complaint. In a statement the Russian side added: We found no racist insults from fans of CSKA.Age has reached the end of the beginning of a word. May be guilty in his seems to passing a lot of different life became the appearance of the same day; May be back in the past, to oneself the paranoid weird belief disillusionment, these days, my mind has been very messy, in my mind constantly. Always feel oneself should go to do something, or write something. Twenty years of life trajectory deeply sha
展开阅读全文