数字式兆欧表设计_第1页
数字式兆欧表设计_第2页
数字式兆欧表设计_第3页
数字式兆欧表设计_第4页
数字式兆欧表设计_第5页
已阅读5页,还剩92页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

基于CAN总线的10KV变电站上位监控系统的研究兰州理工大学技术工程学院毕业设计说明书INET;当v2处于负半周(a端为负,b端为正)时,D1截止,D2导通,v2+(电容器C1两端电压)向电容器C2充电,电压极性为右正左负,峰值电压为,即VO=,故称二倍压整流。此电路电容器C2的放电时间常数(=RLC2,RL为外接负载电阻)>>T,C1的耐压大于,C2的耐压应大于。倍压整流电路一般用于高电压、小电流(几毫安以下)的直流电源中。

在二倍压整流电路的基础上,再加一个整流二极管D3和-个滤波电容器C3,就可以组成三倍压整流电路,如图2所示。三倍压整流电路的工作原理是:在e2的第一个半周和第二个半周与二倍压整流电路相同,即C1上的电压被充电到接,C2上的电压被充电到接近。当第三个半周时,D1、D3导通,D2截止,电流除经D1给C1充电外,又经D3给C3充电,C3上的充电电压Uc3=e2峰值+Uc2一Uc1≈这样,在RFZ,,上就可以输出直流电压Usc=Uc1i+Uc3≈+=。实现三倍压整流。

在实际电路中,负载上的电压Ufz≈3x1.2E2整流二极管D3所承妥的最高反向电压也是电容器上的直流电压为。

照这样办法,增加多个二极管和相同数量的电容器,既可以组成多倍压整流电路,见下图:当n为奇数时,输出电压从下端取出:当n为偶数时,输出电压从上端取出。

必须说明,倍压整流电路只能在负载较轻(即Rfz较大。输出电流较小)的情况下工作,否则输出电压会降低。倍压越高的整疏电路,这种因负载电流增大影响输出电压下降的情况越明显。

用于倍压整流电路的二极管,其最高反向电压应大于2U2。可用高压硅整流堆,其系列型号为2DL。如2DL2/0.2,表示最高反向电压为2千伏,整流电流平均值为200毫安。倍压整流电路使用的电容器容量比较小,不用电解电容器。电容器的耐压值要大于1.5x2U2,在使用上才安全可靠。多倍压整流电路只是在负载电流很小的情况下使用,例如,为示波管、显像管及灭虫高压电网等装置供电用,因此一般对二极管只要求其耐压值,而不要求其电流值。在一些需用高电压、小电流的地方,常常使用倍压整流电路。倍压整流,可以把较低的交流电压,用耐压较低的整流二极管和电容器,“整”出一个较高的直流电压。倍压整流电路一般按输出电压是输入电压的多少倍,分为二倍压、三倍压与多倍压整流电路。4.4键盘电路设计采用中断方式时,每当键盘上有键闭和时,向CPU请求中断,CPU响应键盘输入中断,对键盘扫描,以识别哪一个键处于闭和状态,并对键输入信息作出例如的键盘结构如图1所示,图中列线通过电阻接+5V.当键盘上没有键闭和时,所有的行线和列线断开,列线都呈高电平.当键盘上某一个键闭和时,则该键所对应的列线与行线短路.例如4号键盘按下闭和时,行线和列线短路,此时的电平由行线的电位所决定。如果把列线接到微型计算机的输入口,行线接到微型计算机的输出口,则在微机的控制下,使行线为低电平,其余都为高电平,读列线状态。如果都为高电平,则这一行上没有闭和键,如果读出的列线状态不全为高电平,则为低电平的列线与相交处的键处于闭和状态;如果这一行上没有闭和键,以此类推,最后使列线与为低电平,其余的行线为高电平,检查这一行是否有键闭和。这种逐行,逐列的检查键盘状态的过程称为对键盘的一次扫描。图4-4(1)键盘原理图Intel8155H芯片内包含有256个字节的RAM存储器(静态),RAM的存取时间为400ns。两个可编程的8位并口PA和PB,一个可编程的6位并口PC,以及一个14位减法定时器/计数器。PA口和PB口可工作与基本输入输出方式(同8255的方式0)或选通输入输出方式(同8255A的方式1)。8155H可直接和MCS-51单片机接口,不需要增加任何硬件逻辑。由于8155H既有RAM又具有I/O口,因而是MCS-51单片机系统最常用的外围接口芯片之一。8155H的引脚功能说明:8155H的引脚如图所示:图4-4(2)8155H引脚图RESET:8155H内部复位信号输入端。在此端出现5s左右的正脉冲,8155H被初始复位,复位后I/O变为输入方式。AD0~7:三态的地址/数据线。地址可以是8155H的RAM单元地址或I/O接口地址。AD0~7上的地址由ALE下降沿锁存到8155H内部地址锁存器。引脚的极性决定地址是RAM还是I/O的。8位数据是写入8155H芯片或从8155H芯片读出,取决于有效还是有效。:片选信号线,低电平有效。也由ALE下降沿锁存到8155H内部锁存器。:8155H的RAM存储器和I/O口选择线,=0,AD0~7的地址为8155HRAM单元的地址,选择RAM。=1,AD0~7的地址为8155HI/O的地址,选择I/O口。:读选通信号,低电平有效。为低电平,=0时,8155H内的RAM单元或I/O口内容传送到AD0~7。:写选通信号,低电平有效。当=0,端出现负脉冲,CPU输出到AD0~7的数据写入8155H的RAM单元或I/O口。ALE:地址锁寸允许端。控制信号ALE的后沿可锁存AD0~7线上的地址和锁存的状态并把的状态寄存到8155H内部寄存器中。PA0~7:这8根线是口A的通用的I/O线,由程序控制的命令寄存器选择输入/输出方向。PB0~7:这8根线是口B的通用的I/O线,由程序控制的命令寄存器选择输入/输出方向。PB0~5:这6根线是PC口线。有两个作用,一是作为口C的I/O或作为PA口和PB口的控制信号。通过命令寄存器实现程序控制。当PC0~5用作控制信号时,作用如下:PC0—AINTR(口A的中断请求)。PC1—ABF(口A缓冲器端)。PC2--(口A选通脉冲)。PC3—BINTR(口B的中断请求)。PC4—BBF(口B的缓冲器满)。PC5--(口B选通脉冲)。TIMERIN:定时器/计数器时钟输入。TIMEROUT:定时器/计数器输出,输出信号是矩形还是脉冲波形取决于定时器/计数器的工作方式。Vcc:+5V。Vss:地。键盘电路图如4-4(3)所示:图4-4(3)键盘电路4.5显示电路设计数字兆欧表可采用数码管显示和液晶显示。考虑到兆欧表为现场测试仪表,环境光线较强,液晶显示更为清晰。同时,液晶显示耗电省,这对于依靠电池供电的数字式兆欧表尤为重要。使用7106或7129,可以直接配接相应的液晶显示屏,而对于14433和7132则需要加配译码部件。1、LCD结构与原理LCD是一种被动式显示器,由于它的功耗低,抗干扰能力强,因而在低功耗的单片机系统中大量使用。LCD本身不发光只是调节光的亮度,目前市售的LCD显示器都是利用液晶的扭曲——向列效应,夹在两片导电玻璃电极间的液晶经过一定处理,它内部的分子呈90度的扭曲,当线性偏振光透过其偏振面便会旋转90度,当在玻璃电极上加上电压后,在电场作用下,液晶的扭曲结构消失,其旋光作用也消失,偏振光便可以直接通过。当去掉电场后液晶分子又恢复其扭曲结构。把这样的液晶置于两个偏振片之间,改变偏振片相对位置,(正交或平行)就可得到白底黑字或黑底白字的显示形式。例如:如果要显示字符:“”则应使a,b,c,d,g笔画段电极上的方波与COM电极上方波的相位相反,而笔画电极上的方波与COM电极上方波的相位相同。一般控制方波的频率为25~100HZ,并保证其为对称方波,从而使加在液晶极板上的交流电压平均值为0,否则有较大的直接分量,将使液晶材料迅速分解,这会大大缩短显示器的工作寿命。LCD的主要参数有:响应时间(毫秒级)。余辉(毫秒级)。阀值电压(3-20V)。功耗(5MW/CM2-100MW/CM2)。串行显示管理芯片PS7219广泛地应用于智能仪表当中,在具体应用过程中,它接收所要显示的数据并将其显示在LED显示器上,动态地扫描管理着显示,该芯片本身只需3根线就可与单片机实现接口,硬件连接简便,软件编程容易。尤其用在单片机担负繁忙数据处理任务的系统中,节省单片机用于显示扫描的时间,更显出其优越性,分述如下:PS7219是一种高性价比的多位LED显示管理芯片,其接口采用流行的同步串行外设接口(SPI),可与任何一种单片机方便接口,并可同时驱动8位LED。其内部具有15×8RAM功能控制寄存器,可方便寻址、对每位数字可单独控制、刷新。显示亮度可数字控制,每位都具有闪烁使能控制。内部自带时钟电路,无需任何外部元件便可多路复用自动扫描。N个PS7219级联,可实现N×8位LED的显示。适于各种智能仪表的显示。4.5.1PS7219具有以下主要特点(1)与单片微处理器的接口只需3条线。(2)可以按位选择BCD码译码或者不译码。每位数字可被单独寻址和更新,无需重写整个显示器。(3)可以设定扫描显示位数(从1位到8位)。(4)可设定掉电模式禁止所有显示,以降低功耗;也可强迫所有LED接通,进入测试方式。(5)具有较高的驱动能力,段驱动处接不同的上拉电阻,可改变LED的段电流。4.5.2PS7219的引脚及操作下表为PS7219引脚及操作引脚名称功能1RST复位引脚2LOAD装载数据输入,当LOAD为高电平,串行输入数据的最后16位被锁定3DIN串行输入,在CLK的下降沿,数据被加载到内部16位移位寄存器中4CLK时钟输入,最高频率为500,在CLK的下降沿,数据被移入到内部移位寄存器中。5-11,14DIG1-DIG88位数字驱动线,它从显示器吸入电流12GND地13CON显示控制端,低电平选通,高电平显示无效23-17,16A-G,DP七段驱动器和小数点线,它供给显示器源电流15DOUT串行数据输出,输入到DIN的数据在16.5个时钟周期后在DOUT端有效24V+电源电压,工作电压为5V4.5.3PS7219内部的6个控制寄存器(1)译码方式寄存器(地址X9H)译码方式寄存器可以对每个数字设置BCD译码(置“1”),或者是非代码操作(置“0”)。当选择不译码方式时,数据位D0-D7对应于LED段的关系如下:寄存器数据D7D6D5D4D3D2D1D0对应LED段DPABCDEFG(2)亮度寄存器(地址XAH)亮度即可以通过该寄存器由程序进行控制,最大的亮度出现在占空比1/32,其关系如表4.5.3占空比寄存器数据D7D6D5D4D3D2D1D01/32XXXX00003/32XXXX00015/32XXXX00107/32XXXX00119/32XXXX010011/32XXXX010113/32XXXX011015/32XXXX011117/32XXXX010019/32XXXX010121/32XXXX010023/32XXXX010125/32XXXX011027/32XXXX011129/32XXXX011031/32XXXX0111(3)扫描界线寄存器(地址XBH)用来设定所要显示数据的个数,可以从1-8。(4)掉电控制寄存器(地址XCH)该寄存器置“0”,PS7219工作于掉电模式,扫描振荡器停止工作,CON引脚变高,显示器不显示,功耗降到最低,在数据和控制寄存器中的数据保持不变。该寄存器置“1”,PS7219正常工作。(5)闪烁控制寄存器(地址XDH)闪烁控制寄存器中的每位与数字的对应关系如下,闪烁使能位为“1”,对应位闪烁。寄存器数据D7D6D5D4D3D2D1D0对应LED位DIG8DIG7DIG6DIG5DIG4DIG3DIG2GIG1(6)显示测试寄存器(地址XFH)该寄存器控制两种工作方式:正常显示和测试显示,其D0位为“0”时选择正常显示方式。D0位为“1”时选择测试显示方式,这时8位显示数字被扫描显示,亮度最大,占空比为31/32。4.5.4串行数据传送 由16位数据包发送到DIN端的串行数据在每个CLK的下降沿被移到内部16位寄存器中,然后在LOAD的上升沿数据被锁存到数字或控制寄存器中。LOAD必须在第15个时钟下降沿同时或之后,但在下一个时钟下降沿之前变高,否则数据将会丢失。DIN端的数据通过移位寄存器传送,并在16.5个时钟周期后出现在DOUT端。数据在CLK的下降沿输出。数据传送格式如下:D15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0××××地址高数据低4.5.5PS7219与单片机的硬件连接由于PS7219是串行控制的,所以与单片微处理器的连接非常简洁,将单片微处理器I/O口的三条控制线分别接至PS7219的DIN、LOAD、CLK,对PS7219进行控制。如图4.5.5所示:图4.5.5(1)PS7219与单片微处理器的硬件连接框图以下为接线原理图:4.5.5(2)液晶显示电路原理图4.6核心控制器PIC16F877此设计是为一数字控制系统,就要有一个作为核心的MCU来控制协调整个系统的工作。较流行的主控型芯片主要有采用Intel总线形式的51系列单片机,Microchip公司的PIC系列单片机,ARM公司的ARM系列单片机,Motorola公司的单片机系列等等。各个公司的的单片机又有很多的型号,包括功能,频率,位数上的区别。本设计中由于控制系统较为简单,所以可以选用工作频率较低,位数较低,但又能满足要求的型号。Intel公司的8051芯片,在工业上的应用最早,而且在现在其系列的MCU在控制领域中仍占有近一半的份额。由于其控制总线形式应用相当广泛,外围的配套芯片种类也是相当的多。由于得到了Intel公司的授权,Atmel公司也生产了很多完全兼容的性能更好的8051系列的单片机。本设计中采用了Microchip公司的PIC系列单片机。目前在生产领域使用的智能检测装置多采用早期生产的单片机为技术平台,在性能、存储容量、功耗、速度慢、电磁噪声、抗干扰能力等方面较弱,并且设计电路比较复杂,开发时间较长,不具备保密功能等缺点。

PIC16F877单片机是美国微芯(Microchip)公司生产的8位COMS单片机,它内部采用哈佛总线结构,全部指令单字节、单周期化,提高了CPU执行指令的速度,从而提高单片机的运行速度。其指令系统采用精简指令集(R1SC)技术,寻址方式非常简单,便于程序的编写与调试。引脚排列如图1所示。图1

16F8777引脚图PIC16F877最小系统图如下图所示:图2

核心电路部分

单片机PIC16F877是整个检测装置的核心,它具有最大25mA的拉/灌电流;256字节E2PROM数据存储器;8KFLASH程序存储器;3个定时器/计数器;2个捕捉/比较/脉冲调制(CCP)模块;通用同步/异步收发器(USART)。该检测装置工作时,输入的模拟信号通过PIC16F877自带的10位精度的带有采样保持的A/D转化功能模块接收,采集的数据通过串口经MAX3232转换成RS-232电平向上位机传输。图中串行LCD显示电路仅用于调试,对采集/传输的数据进行监测。主要功能特点:1、高性能RISC结构CPU·精简指令集,仅35条单字指令。·除地址分支指令外,其余全为单周期指令。·执行速度:DC-200ns。·14位FLASE型程序存储器,电可重擦写。·最大有8K×14的FLASH程序存储器。·带8位FLASH型数据寄存器。擦写次数达100万次,数据保存时间大于40年。·八级硬件堆栈。·多种硬件中断。·直接/间接/相对三种寻址方式。2、功能部件特性:·带10位A/D转换输入。·高驱动电流I/O脚,可直接驱动LED显示。每根I/O口线最大拉电流25mA;每根I/O口线最大灌电流25mA。·双向可独立编程设置I/O引脚。·8位定时器/计数器TMR0,可带8位预分频器。·16位定时器/计数器TMR1,睡眠中仍可计数。·8位定时器/计数器TMR2,带有8位的周期寄存器及预分频器和后分频器。·1路或2路CCP模块(捕捉输入,比较输出,PWM输出)。·同步、串行口I2C/SPI总线操作。·同步、异步通讯接口USART/SCI总线操作(F872有MI2C)。·8位并行口操作。第5章系统软件设计5.1软件系统分析在本设计中,系统主要是进行数字式绝缘电阻的测量,显示的过程。它共有四个按键,分别是开始键对所用数据初始化的控制;停止键如遇到紧急情况需要将测量过程马上停止的时候,可由停止键来对其进行控制;切换显示键:对测量的数据如电压,吸化指数,吸收比等测量结果进行液晶显示的控制;复位键;对系统进行复位。基于兆欧表测量工作过程、兆欧表硬件设计及按键功能要求,系统软件可以分为三个主要组成部分:(1)主程序:其功能是启动操作和停止操作。(2)定时器中断服务程序:其功能是在一定时间后中断服务程序的操作。(3)按键中断服务程序:其功能是通过按键对服务程序进行中断停止的操作。(4)故障保护程序:其功能是对故障进行保护的操作。以下为控制流程图:启动系统启动系统得电待机状态得电待机状态压下停止压下停止按钮压下启动按钮压下启动按钮压下停止按钮压下停止按钮启动启动开始输出状态系统故障系统故障故障停机故障停机本设计是基于此操作方式来设计程序流程图的。同时,软件的设计应与硬件件的结合起来,如果在设计硬件时,能够考虑软件设计的需要,那么,将给软件的设计带来方便。5.2软件结构1、主程序以下是主流程图:否否是否是开始开始端口初始化端口初始化变量,参数初始化变量,参数初始化定时器初始化定时器初始化开始键是否按下开始键是否按下开始计时开始计时停止键按下?停止键按下?停止停止2、定时器中断服务程序测绝缘电阻中断返回15分钟到否?Fg=1测绝缘电阻Fg=0?1分钟到否?开始以下是定时器中断服务程序的流程图:测绝缘电阻中断返回15分钟到否?Fg=1测绝缘电阻Fg=0?1分钟到否?开始NYYNY3、按键中断服务程序以下为按键中断服务流程图:开始开始切断高压电源切断高压电源显示错误显示错误中断返回中断返回第6章设计总结6.1系统功能实现方式本设计为数字式绝缘电阻的测量系统,通过以单片机为核心的控制系统,由高压产生电路来输出高压,再通过低压整流电路和放大电路输出高低压,作为桥式测量电路的输入控制测量值的大小的机构,最后输出电压被采样,通过A/D转换电路被测量出来,最后通过LED显示电路显示和出来。单片机选用Microchip公司的PIC系列单片机,其数据宽度为8位,最大寻址空间为64K。在本系统中,单片机起核心的控制作用,读入输入数据并进行处理后,输出相应当数据,以对系统进行控制。输入的数据包括电压给定,启停控制,错误信号等;输出数据有对SPMW信号发生器的控制信号,显示信号,报警信号等。根据系统处于的三种状态,编制相应的程序,在各种的状态下作出相应的处理方式。高压产生是脉冲震荡电路采用开关集成电路TL494,以电压驱动型脉宽调制控制集成电路TL494为核心元件并加上简单滤波电路及RC放电回路所构成的回路控制器。测量电路采用桥式测量方式,可以忽略输入电压的波动。使结果更为精确。显示器显示电压的大小,侧面得出被测电阻的大小,利用公式来完成数字式绝缘电阻的测量。6.2系统的优缺点对本次设计进行一个功能性的判断,有优点,也有缺点。其中系统的优点:操作简单方便,系统易于实现,实现成本低。系统缺点:显示系统不是很直观,保护措施不是很完善。6.3可行的改进方案由于本次设计时间比较紧,而设计题目又是每个人单独一个,所以在设计上还有很多的不完善,如果有机会还可以进行进一步的完善。以下提出了一些设想,可以作为以后改进的方向:1、电压放大电路整合到高压产生电路中去,可以简化电路。2、显示吸化比和吸收指数,可以采用传统的方式,也可以利用数字方式,采用液晶电子显示方式。3、绝缘电阻的检测。通过监测电路的电压,来判断被测电阻的大小,并作一显示,在低于一定程序后有警告措施。对绝缘电阻的不同进行不同的测量方式。本次设计没有对绝缘电阻的不同进行分开测量,在相同的高压给定下,电阻小则通过电流会很大,而电阻大则通过的电流会很小。可以增加对电流的检测,以判断绝缘电阻的级别,然后用不同的输出方式,使测量更为精确。参考文献[1]李广第.单片机基础[M].北京:北京航空航天大学出版社,2001.5[2]单片机中级教程[M].张迎新.北京:北京航天航空大学出版社,2002[3]胡汉才.单片机原理及接口[M].北京:清华大学出版社,1996[4]潘新民.微型计算机控制技术[M].北京:人民邮电出版社,2002[5]李学海.PIC单片机使用教程[M].北京:北京航天航空大学出版社,2003[6]刘和平.PIC16F87X数据手册[M].北京:北京航天航空大学出版社,2003[7]高压电器设备试验方法[M].北京:水利电力出版社,2001[8]区建吕.电子设备的电磁兼容性设计[M].北京:电子工业出版社,2002[9]王俊峰.理工学生怎样做好毕业设计[M].北京:电子工业出版社,2004.8[10]马忠梅.单片机的C语言应用程序设计[M].北京:北京航空航天大学出版社,1999[11]蔡纯洁.PIC系列单片机开发应用实战[M].中国科学技术大学出版社,1998[12]武锋.PIC系列单片机的开发应用技术[M].北京:北京航空航天大学出版社,1998[13]石朝林.PIC单片机宏汇编与集成开发环境[M].北京:电子工业出版社,2001[14]刘和平.PIC16F87X单片机使用软件与接口技术[M].北京:北京航空航天大学出版社[15]AnalogDevicesIncCMOS125MHZCompleteDDSSynthesizerAD9850[S]1997[16]AD9850dtatasheetAnalogDevicesInc[17]http://www.211C.com[18]英文资料翻译英文资料原文RamtronintroducestheVersaMix8051familyofhighlyintegratedmixed-signalmicrocontrollersfortheembeddeddataacquisitionmarket。RamtronalsointroducesVersa8051familyoflow-cost,drop-inreplacement8051microcontrollers.ColoradoSprings,USA–14thDecember2005.RamtronInternationalCorporation(Nasdaq:RMTR),theleadingsupplierofnon-volatileferroelectricsemiconductorproducts,haslaunchedtheVersaMix8051family(VMXRamtronisalsointroducingitsVersa8051Family(VRS51x1xxx/5xx)oflow-cost,industrystandard,8051-baseddrop-inMCUswithupto128KBISP/IAPFlash,designedtosimplifydevicemigration.AbouttheVersaMix8051family:TheVersaMix(VMX51C1020/1016)isahighlyintegrated,high-performancefamilyofmixed-signal8051microcontrollerswithDSPcapabilities,featuringacomprehensivesetofon-chipperipheralsforacompletedataacquisitionSoC.TheVMX51C1xxxfeaturesasingle-cycle8051processorthatprovidesanaverageofeighttimesmoreprocessingpowerthanstandard8051sforincreasedMIPSandefficiency.ThedeviceintegratesanenhancedMULT/ACCUunitwith32-bitbarrelshifter,56KBofFlashand1280bytesofRAM.Peripheralsincludeupto28generalpurposeI/Os,3timers/counters,anSPI,2UARTs,anI²CandanRS-485/RS-422/J1708compatibletransceiver,whichenablesdatatransmissionoverlongdistancesviaatwistedpaircable.TheVMX51C1xxxoperatesat5voltsandisavailableinQFP-64(VMX51C1020)andQFP-44(VMX51C1016)packages.Aimedatcontrolapplicationsthatrequiresignalconditioning,theVMX51C1020alsoincorporatesanarrayofanalogperipheralssuchasaprogrammablecurrentsource,twodigitalpotentiometers,ananalogswitchandanuncommittedoperationalamplifier.ThefeaturesoftheVersaMix8051include:A/DConverter–This5/7-channel,12-bitA/Dconvertercanoperateatupto10KHzinvariousmodes:automatic,singlechannel,orsequentialconversion.ThefeaturesoftheVersaMix8051include:A/DConverter–This5/7-channel,12-bitA/Dconvertercanoperateatupto10KHzinvariousmodes:automatic,singlechannel,orsequentialconversion.ComplexDSPoperations-Theenhancedhardwarearithmeticunitperforms16-bitx16-bitmultiplicationand32-bitadditioninonecycle.Thisenablesmajorperformancegainovertypical8051deviceswhenexecutingmathematicalandDSPoperations-anidealfeatureforapplicationsthatrequiredigitalfilteringorotherrecursivecalculations.SerialUARTwithBaudRateGenerator–UARTsoperateatover460kbpsandeachincorporatea10-bitbaudrategeneratorfreeingupthetimers/countersforotheruses.UARTscanbeconnectedtotheintegrateddifferentialtransceiver.Timers/CCUunits–TheVMX51C1xxxincludesthree16-bittimersand4compareandcaptureunits(CCUs).TheCCUscanbeconfiguredasPWMoutputswith8-bitor16-bitresolution.ThePWMs,whenfiltered,canbeusedasD/Aconverters.ThreeoftheCCUsprovideacaptureinputthatcanbeusedtotriggertheTimer2Capture.Additionally,thedeviceincludesinputpinsandaninterruptonthePort1Change.Power-savingfeatures-Powersavingfeaturesincludeaclockcontrolunit,individualpowercontrolsforeachperipheralandprocessorIDLEandSTOPmodesAbouttheVersa8051family:RamtronhasalsointroducedtheVersa8051family(VRS51x1xxx/5xxx)oflow-cost,drop-inreplacement8051sthatareidealforadiversityofapplicationsthatrequiresmalltolargeamountsofprogram/datamemorywithnonvolatiledatastorageand/orcode/fieldbasedfirmwareupgradecapability,coupledwithstreamlined/comprehensiveperipheralsupport.Versa8051sincludeupto128KBFlashmemoryand1KBRAM.Devicesoperateateither3.3or5voltsandareavailablein44-pinPLCC/QFPandalso40-pinDIPpackages.Development&programmingtools:EvaluationandprototypedevelopmentofVersaMix8051andVersa8051MCUsisfacilitatedthroughRamtron’sUVK(UniVersaKit)developmentkit,whichshipscompletewiththeVersaWareprogramminginterfacesoftware,Ccompilerandassembler.AboutRamtron:RamtronInternationalCorporation,headquarteredinColoradoSprings,Colorado,isafablesssemiconductorcompanythatdesigns,developsandmarketsspecialisedsemiconductormemory,microcontrollerandintegratedsemiconductorsolutionsusedinawiderangeofproductapplicationsandmarketsworldwide.ANINTRODUCTIONOF8051An8051microcontroller,generallyspeaking,isanymicrocontrollerthathasaninstructionsetcompatiblewiththeMCS-51standard.Intelmadetheoriginal8051microcontrollerbackin1980.Sincethen,dozensofsemiconductorfirmshavechosentheMCS-51standardfortheirlinesofmicrocontrollers.Whenwespeakof"8051"wearenotjustspeakingoftheIntel8051,butalsoanyothermicrocontrollerthatiscompatiblewiththe8051(it'sfasterthenwriting8052-compatibleeverytimewemakereferencetoit).Aderivativemicrocontroller(orderivativechip)isatermusedtorefertoanyofthehundredsof8051-compatiblemicrocontrollersproducedbydozensofsemiconductorfirmssuchasDallasSemiconductor,Philips,Atmel,etc.Theselinesofmicrocontrollersallusethe"8051core"licensedfromIntel.The"core"referstotheinstructionsetandSpecialFunctionRegisterstructure/map.Ifyouhaveadevelopmenttoolsetthatis8052-compatible,youshouldbeabletousethatsametoolsetwithanyderivativechip.Most8051developersuseaPCwithsomeversionofWindows(althoughsomeuseUnix).YouwillrunyourdevelopmenttoolsonthePCtoeditandcompileyour8051software.Once8051softwarehasbeencompiled,willneedtotransmityourcompiledprogramtothemicrocontroller.Howyoudothisandwhathardwareyouneeddependsonthederivativechipyou'reusingandyouractualcircuitdesign.Traditionally,programshavebeen"burned"intoanEPROMusinganEPROMprogrammer.TheEPROMissubsequentlyinsertedintoyourcircuitandtheprogramisaccessedbythemicrocontroller.EPROMsmaybeerasedandre-usedbyclearingthemwithanEPROMEraser(theEPROMiserasedbyexposingtheEPROMtoultra-violetlightfor5-10minutes).AnEPROMemulatorisoftenusedduringthetestingordevelopmentstagestoallowthedevelopertoquicklytestcodewithouthavingtoconstantlyburnanderaseEPROMs.However,manynewerderivativechipsincludeinternalEEPROMorFlashmemory.Thesederivativesoftenincludeaprocessofdownloadingyourcompiled8051programdirectlyintothemicrocontrollerviaaserialport.Inthesecases,theEPROMprogrammerisunnecessary.Inadditiontothehardware,you'llneedanASCIIeditorthatallowsyoutocreate8052sourcecode.YoumayuseprogramsassimpleasEDITinDOSorNOTEPADinWindowstoadvancedsoftwaredevelopmenteditors.What'simportantisthattheprogramsaveyourcodeasPUREASCII--thismeansnowordprocessorssuchasWordorWorks.Onceyou'vecreatedyoursourcecode,youneedaprogramtocompileorassemblethisintoan"IntelHEX"file.Thissoftwareiscalledanassembler(ifithandlesassemblylanguage)oracompilerifithandlesanythingelse(C,Basic,Pascal,etc.).Theseassemblersandcompilerswillgenerallycreateanoutputfileknownasa"HEXfile."Thisisessentiallythe8051equivalentofan"EXE"file.Thisfileistheneitherdownloadeddirectlytothemicrocontroller(ifyourderivativehasIn-SystemProgramming/SerialPortloadingsupport)orispassedtoyetanotherprogramwhichtransfersthefiletoanEPROMusinganEPROMprogrammer.AlloftheseproductsweredesignedforPCdevelopment--thatistosay,yourfinalprogramisexecutedonyourPC.Inthecaseof8051development,yourfinalprogramwillbeexecutedbyan8051microcontroller.The8051isnotcompatiblewithanycommonPCdevelopmenttools.PleaserefertotheLinkspageforalistoflinkstocompaniesthatoffer8051-compatibletoolsincludingassemblers,C,BASIC,andPascalcompilersProbablynottoohard.'C'compilersexistforthe8051,soifyouarefamiliarwith'C'youshouldn'thavetoomuchtroubleadaptingtoan8051'C'compiler.Thedifferencesaremostlyinhandlingthespecialfeaturesofthe8051andthat'sjustamatterofreadingtolearntheidiosyncraciesofthe8051。IfallyouknowisVisualBasic,the8051maybeachallengeforyou.MostofwhatappliestoVB-programmingdoesnotapplyto8051programming.Youcan'tuseVBtoprogramthe8051.Youcan'tuseVBXorActiveXcontrolswiththe8051.Infact,therearenotextbox,label,listboxoranyotherkindof"control."WhileyoucanpurchaseaBASICcompilerthatiscompatiblewiththe8051,youwillfinditquiteprimitivecomparedtoVisualBasic.Infact,it'sevenlesspowerfulthanMicrosoft's80's-eraQuickBasic.NoC++compilerexistsforthe8051.Youmustuseplainold'C'.C++usesdynamicmemoryhandlingtocreateanddestroy"objects."ThisisgenerallyhandledbyDOSortheOperatingSystem.NosuchOSexistsonthe8051.C++isalsousuallymorememory-hungry,and8051'snormallyhavelessthan64kofprogrammemoryavailable.ThereisnowaC++precompileravailablefromCeibo.Thispre-compilertakesC++codeand"precompiles"itintoKeil'C'whereitisactuallycompiled.ThegeneralvisitorsisthatC++isnotanappropriatelanguageforthe8051architecture。Thesethreetermsrefertothreedifferentwaysofgettingyourprogramconcepttorunagivenprocessor,eachwithvaryinglevelsofeaseinprogrammingandefficiencyinexecution.Aninterpretedprogramisoneinwhichtheprogrammustbeanalyzedeachtimetheprogramisruntodeterminewhatactionstheprocessorshouldexecute.Sincetheprogramisessentially"compiledonthefly,"programexecutionisgenerallyslowincomparsiontootheroptions.Codesizeisoftenlarger,too,sincenotonlyisyourprogramheldincodememorybutalsothe"kernel"whichactuallyinterpretsandexecutesyourprogram.Interpretedlanguagesareusuallyonlyusefulforlearningpurposesandareseldomusedincommercialprojects.Anexampleofaninterpretedoptionwiththe8051is8051-BASIC.Anassemblerallowsyoutowriteyourprograminassemblylanguagewhichisonestepawayfrompuremachinelanguage.Theassembleractuallytranslatesyourassemblyprogramintomachinelanguage.Awell-writtenassemblylanguageprogramwillprovidethemostspeedandsmallestcodesize,butwritingaprograminassemblylanguageisgenerallyconsideredtobemoreadvancedandmoredifficultthanwritingasimilarprograminaninterpretedorcompiledlanguage.Most8051programmersworkinassemblylanguage(about52%accordingtoarecent8052.comsurvey).Usingassemblylanguagealsogivesyoucompletecontroloverwhattheprocessorisdoing.Acompilerisusedwhentheprogrammerwishestowritehiscodeinahigh-levellanguage,suchasC,Pascal,orsometimesBasic.Inthe8051community,Cisthemostpopularcompiledlanguage.Acompilertranslatesthesourcecodewritteninthehigh-levellanguagetomachinelanguage;thustheresultingoutputisthesameastheoutputofanassembler--pureexecutablemachinecode.Mostmoderncompilersarerelativelyefficientandproducerelativelytightcode.However,anequivalentCprogramwillalmostrequiremorecodesizethanthesameprograminassemblylanguage--unlesstheassemblylanguageprogramwasverypoorlywritten.Theadvantagetousingahigh-levellanguageisthatmoreprogrammersarefamiliarwithC,Pascal,andBasicthanarefamiliarwith8051assemblylanguage.High-levellanguageprogramsarealso,arguably,easiertoreadandunderstandthanthesameprograminassemblylanguageand,thus,areofteneasiertomaintain--especiallyiftheprogramwillhavetobemaintainedbysomeoneotherthantheoriginalprogrammer(s).Further,modern'C'compilersoftengeneratehighlyoptimizedcodethatisoftenmoreefficientthanatypicalprogrammer'sassemblycode,especiallyiftheprogrammerhaslittleexperiencein8051assemblylanguage.'C'compilersforthe8051areoftenmoreexpensivethanassemblers.Timersareuseful,buttheyarefast.Withastandard8052runningat12MHZ,the16-bittimer--whichtakesthemosttimeofanytimertooverflow--willstilloverflowabout15.26timespersecond;that'sabout.06secondsperoverflow.Touseatimertocountrelativelylongperiodsoftimes--anythingover.06seconds--willrequirealittleextracode.Thisisthepefectsituationforaninterrupt.Theideaistocausethetimertooverflowataknownrateandthencounthowmanytimesitoverflows.Forexample,.06isnotafunnumbertoworkwithsinceitisnotevenlydivisiblebyafullsecond.Rather,it'dbeusefultoconfiguretheprogramsuchthatthetimeroverflowsevery.05seconds.Then,ifithasoverflowed20timesyouknowonesecondhaspassed.Thiscanbedoneinvariousways。Technically,T0_INTERRUPTresetsTL0andTH0inanot-so-safeway.ItisgenerallyrecommendedthatwhenyouchangethevalueofTH0and/orTL0thatyoufirststopthetimerbyclearingTR0.Afteryou'vesetthetwoSFRs,youthenrestartthetimerbysettingTR0.Inthiscase,itisnotabsolutelynecessarybecausethevaluewe'resetting,issuchthattherewillbenonastysideeffects.However,ifyouwereresettingthetimertoitwouldbeabsolutelynecessarytostopthetimer.Otherwise,you'dfirstwriteTL0toFFh,itwouldimmedaitelyoverflowbackto00handyou'dwriteTH0。Itisdependingontheoscillatoryouareusingandthebaudratethatyoudesire,thattheformulawillgiveyouafractionalanswer.Forexample,ifyouwereusinga12.000MHZcrystal。Obviously,youcan'tuseafractionalvalue--you'deitherhavetouse3or4.Using3wouldproduceabaudrateof10416,and4wouldproduceabaudrateof7812--neitherofwhichisanythingcloseto9600.Inthiscase,youcouldtrytakingadvantageoftheSMODbit.Thatis,setSMODandlookforabaudrateofabout4800(whichwouldbedoubledto9600bysettingSMOD).Pluggingin4800intotheaboveformulawegetaTH1valueof6.5,sowe'deitherhavetouse6or7.Ifweuse6,wegetabaudrateof5208(which,whendoubled,isstill10416),butifweuseavalueof7wegetabaudrateof4464which,whendoubled,is8298--whichisalittlecloserto9600theneither10416or7812.Unfortunately,it'sprobablynotcloseenough.Abaudrateerrorof+/-3%isusuallyconsideredacceptable.However,our8928baudrateis7%slowerthan9600--notcloseenough.Thus,whenyougetafractionalanswerforTH1,trytoseeifyoucangetcloseenoughbyusingSMODtodoublethebaudrate.Ifyoucan't,it'sentirelypossiblethatyoucan'tobtainthebaudrateyouwantwiththeoscillatorcrystalyouhave.Considerusinganothercrystal,andchooseyourcrystaltakingintoaccountthebaudrateyouwanttoachieve.Interrupts,asthenameimplies,areprocessesthatinterruptnormalprogramexecution.Normally,aprogramwillstartexecutingataddress0000handexecuteconsecutively,unlessprogramflowisalteredbysomebranchingorjumpinstruction.Interruptsareusedtointerruptnormalprogramflowtohandlesomespecialtask,thenreturntocontinueexecutingtheprogramasifnothinghadhappened.Forexample,youmayhaveaninterruptprogrammedtointerrupteverymilisecond.Mostofthetimeyourprogramwillexecutenormally.Onceeverymilisecond,however,an"interrupt"willoccurthatwillcauseyourmainprogramtobetemporarily"suspended."Executionwilljumpautomaticallytoan"interruptserviceroutine"whichyouwritetohandletheinterruptcondition.Onceyou'vedoneeverythingyouneedtoduringtheinterrupt,youreturnfromtheinterruptAstandard8052letsyouassigna"level"toeachinterrupt.Bydefault,allinterruptsare"low"level.Whenyourprogramisexecuting,itmaybeinterruptedbyanyinterrupt--bothloworhighlevel.Ifalow-levelinterruptisexecuting,itmayONLYbeinterruptedbyahighlevelinterrupt;itmayNOTbeinterruptedbyanotherlow-levelinterrupt.Ifahigh-levelinterruptisexecuting,NOTHINGmayinterruptituntilitfinishes--notevenanotherhigh-levelinterrupt.Ifmultipleinterruptsofthesamelevelaretriggeredsimultaneously,theywillbeexecutedonebyoneasthepreviousinterruptfinishes.withaRETIinstruction.Yourprogramthencontinuesasifnothinghadeverhappenedandunawarethatithasbee

温馨提示

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

评论

0/150

提交评论