数字式直流恒流源系统设计_第1页
数字式直流恒流源系统设计_第2页
数字式直流恒流源系统设计_第3页
数字式直流恒流源系统设计_第4页
数字式直流恒流源系统设计_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

1、攀枝花学院本科毕业设计(论文)数控式直流电流源学生姓名: 学生学号: 200710501020 院(系): 电信学院 年级专业: 电子信息工程 指导教师: 刘衍平 助理指导教师: 二一一年六月摘 要一般地,将输出恒定的电流源称为恒流源,“恒流源”这个术语,原则上是指这样一种稳定电源:它输出的电流与外部影响无关即和负载改变大小无关。实际上,大多数恒流源是用电子电路实现的,而且仅当外部条件在一定的范围内变化时才能保持输出电流基本不变。本系统以直流电流源为核心,AT89S52单片机为主控制器,通过键盘来设置直流电源的输出电流,设置步进等级可达1mA,并可由LCD1602显示电流设定值和实际输出电流值

2、。本系统由单片机程控设定数字信号,经过D/A转换器(TLC5615)输出模拟量,再经过运算放大器隔离放大,控制输出功率管的基极, 随着功率管基极电压的变化而输出不同的电流。单片机系统还兼顾对恒流源进行实时监控,输出电流经过电流/电压转换后,通过A/D转换芯片(TLC2543),实时把模拟量转化为数据量,再经单片机分析处理,通过数字量形式的反馈环节,使电流更加稳定,这样构成稳定的压控电流源。实际测试结果表明,本系统能有效应用于需要高稳定度的小功率恒流源的领域。关键字: 数控直流恒流源,单片机,D/A转换器,A/D转换,电压/电流转换器ABSTRACTIn this system the DC s

3、ource is center and 89S52 version single chip microcomputer (SCM) is main controller, output current of DC power can be set by a keyboard which step level reaches 1mA, while the real output current and the set value can be displayed by LCD. In the system, the digitally programmable signal from SCM i

4、s converted to analog value by DAC (TLV5638), then the analog value which is isolated and amplified by operational amplifiers, is sent to the base electrode of power transistor, so an adjustable output current can be available with the base electrode voltage of power transistor. Using the keyboard t

5、o set the needed output current value, The SCM based on some specific algorithm to deal the certain settings for processing. Corresponding voltage output by the ADC output voltage-controlled current source circuit.On the other hand, The constant current source can be monitored by the SCM system real

6、-timely, its work process is that output current is converted voltage, then its analog value is converted to digital value by ADC, finally the digital value as a feedback loop is processed by SCM so that output current is more stable, so a stable voltage-controlled constant current power is designed

7、. The test results have showed that this system, compared with the traditional regulated current source, has easy to operate and features high output current stability.Key words : Numerical control dc constant-current source,microcontroller,D/A converter,A/D conversion目 录摘要ABSTRACT目录第一章 绪论第二章 系统总体设计

8、及方案论证2.1 系统简介2.2 系统总体设计 .1 主控器方案论证 .2 供电电源方案论证 .3 恒流源方案论证 .4 DAC和ADC方案论证 .5键盘方案论证 .6 显示方案论证第三章 系统的硬件设计 3.1 主控电路设计3.2 供电电源设计 主电源 单片机电源(第二级电源) 电源参数计算 恒流源电路设计3.4 D/A和A/D转换电路设计 D/A和A/D转换器的介绍参数计算 3.5 电流检测电路设计 电流检测原理介绍 采样电阻的计算 3.6 键盘电路设计 3.7 显示电路设计 LCD1602的介绍第四章 系统的软件设计4.1 软件结构设计 系统软件的结构 总体流程4.2 标测试和测试结果4

9、.3 程序设计第五章 总结参考文献附录1 数控直流恒流源系统总体电路图附录2 数控直流恒流源系统程序设计 1 绪 论随着电子技术的发展,数字电路应用领域的扩展,现今社会,产品智能化、数字化已成为人们追求的一种趋势,设备的性能,价格,发展空间等备受人们的关注,尤其对电子设备的精密度和稳定度最为关注。性能好的电子设备,首先离不开稳定的电源,电源稳定度越高,设备和外围条件越优越,那么设备的寿命更长。基于此,人们对数控恒定电流器件的需求越来越迫切当今社会,数控恒压技术已经很成熟,但是恒流方面特别是数控恒流的技术才刚刚起步有待发展,高性能的数控恒流器件的开发和应用存在巨大的发展空间。目前恒流电流源是科研

10、、航天航空、半导体集成电路路生产领域以及计量领域中一种很重要的电子设备。随着技术的发展,对恒流电流源的稳定性、精度等要求越来越高,而传统的模拟恒流源由于模拟电路的复杂性,将越来越难满足高稳定性的应用场合。随着数字电子技术的发展,在计量领域、电量和非电量测量的仪表、工业控制系统中应用数控直流恒流源。数控直流恒流源与传统稳压电流源相比,具有操作方便、输出电流稳定度高的特点。本设计基于单片机的数控直流电流源设计方案,给出了硬件组成及软件系统。本系统以单片机AT89S51为核心部件,由键盘、显示、及D/A转换,V/I转换、功率放大等模块组成。虽然对于单片机的数控直流电流源的研究不再停留在理论研究的阶段

11、,已经进入研发阶段但是其进一步改进的空间是巨大的,因此希望此课题的研究能对这方面提供技术支撑和理论参考。2 数控直流恒流源系统描述 系统简介 本系统包括电源交换处理及分配模块、恒流源模板、单片机主控模板、键盘输入模块、LCD显示模块、模数转换(A/D)模块、数模转换(D/A)模块。在通过键盘设定好需要输出电流值后,单片机对设定值按照一定的算法进行处理。经D/A输出电压控制恒流源电路输出相应的电流值。单片机通过采样恒流源电路上串接的采样电阻的电压,计算出此时恒流源电路的输出电流值并与设定值进行比较,以控制D/A的输出从而实现对恒流源的输出电流进行调节,使输出电流能实时跟随设定值。数控直流恒流源可

12、以实现以下功能: 1.可手动设定输入电流值(范围为20mA2A) 2.有输出电流值数字显示,输出电流范围为20mA2A。 3.直接用220V市电供电。 4.输出电流恒定,改变负载电阻,输出电压在24V以内变化时,输出电流变化的绝对值输出电流值的0.1%=1mA。 5.纹波小,纹波电流。 6.步进电流值,步进的分辨率高,步进2mA。7.输出电压范围为024V。 系统总体设计 数控直流恒流源的总体原理框图如图2-1所示。 键盘电路 显示电路 AT89S51 单片机系统 D/A 转 换 A/D转 换V/A转换及功率放大 负 载采 样 电 路 图2-1 数控直流恒流源的总体原理框图 包括主控器、供电电

13、源、恒流源、键盘、显示、模数转换(A/D)模块、数模转换(D/A)模块7个部分,图2-1中的负载是指恒流源的负载,不属于恒流源的系统组成。下面将介绍各个部分的总体设计与选型。方案论证.1 主控器本题要求制作的直流电流源是数控式的,可以显示输出电流的给定值以及实际测量值,因此必然要结合微处理器,并且通过微处理器的控制作用对输出电流进行精确校正。常用的微处理器有8086、单片机、数字信号处理器(DSP)或复杂可编程逻辑器件(CPLD)等。DSP实现起来相当复杂,超过了自己的知识范围。复杂可编程逻辑器件(CPLD)具有速度快的特点,但其实现较复杂,且做到友好的人机界面也不太容易。单片机实现较容易,并

14、且具有一定的可编程能力,对于本题足以胜任。单片机含有多种系列,如51系列单片机及AVR、PIC系列单片机。51单片机是美国Intel公司推出的一种高性能的8位单片机。因此,该系统采用单片机为核心的 51 系列单片机。此单片机的运算能力强,软件编程灵活,自由度大,能够实现对外围电路的智能控制。.2 供电电源方案一:采用线性恒流电路,该方案具有噪声干扰小,电路简单,工作稳定的特点,但是由于功率器件工作于线性状态功率损耗大,发热较大,在满足设计要求时在极限条件下功率管的消耗功率接近20W。方案二:采用开关恒流方式进行电流控制,由于功率管只工作于打开或者关闭状态,功率管损耗较低。发热量很小,但是由于开

15、关管对强电流进行开关操作,干扰大大高于线性恒流源。结论:本课题主要在于软件的仿真,仿真中对电源的要求不高,所以采用方案二。如果要做成实物可以单独在来设计高稳定的电源。.3 恒流源 恒流源的实现方式有多种,有运算放大器组成的恒流源,三极管组成的镜像电流源、运算放大器加达林顿管组成的恒流源等。 (1)运算放大器组成的恒流源 运算放大器组成的恒流源是利用了运算放大器的两个基本特性:虚短路和虚断路,其典型原理图如图2-2所示。 图2-2 运算放大器组成的恒流源典型原理图 (2)三极管组成的镜像电流源 由三极管组成的镜像电流源的典型电路图如图2-3所示。图2-3 三极管组成的镜像电流源典型电路 (3)运

16、算放大器加达林顿管组成的恒流源 运算放大器加达林顿管组成的恒流源的典型电路如图2-4所示。 图2-4 运算放大器加达林顿管组成的恒流源的典型电路在本数控直流恒流源中,采用了运算放大器加达林顿管组成的恒流源电路,运算放大器采用TL084,加达林顿管采用TIP142,同时利用D/A转换器TLC5665作为电压输入控制。.4 DAC和ADC方案论证 数模转换和模数转换一般有串口和并口。但并口芯片所占的端口资源较多,对端口的利用率低,其优点是转换速度快。串口芯片由于接口简单,控制方便,系统稳定性好,得到广泛的应用。TLC2543和TLC5615都是采用串口的ADC和DAC芯片,在设计中利用上两种芯片不

17、仅节约单片机端口资源,而且分辨率较高,能满足设计要求。所以本系统采用TLC2543和TLC5615串口芯片。.5 键盘比较常用的键盘有两种,一种是矩阵式键盘,另一种是独立的键盘。下面将分别介绍矩阵式键盘和独立键盘。(1)矩阵式键盘矩阵式键盘的结构与工作原理: 在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图1所示。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则

18、只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,上图中,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。这样,当按键没有按下时,所有的输出端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。(2)独立键盘在按键较多时,占用的端口较多。 所以在本数控直流恒流源中,矩阵式。.6 显示 一般情况下,显示单元可以采用一般的数码管显示,因为数码管具有接线简单,成本低廉,配置简单灵活,编程容

19、易,对外界环境要求较低,易于维护等特点。但是,考虑到普通数码管能够显示的信息量有限,并且一般情况下要显示较多的信息所占用的系统I/O资源较多。 在本系统中,考虑到显示的内容以及系统的实用性,采用液晶显示(LCD)。液晶显示具有功耗低、体积小、质量轻、无辐射危害、平面直角显示以及影响稳定不闪烁、画面效果好、分辨率高、抗干扰能力强等优点。点阵式LCD可以显示字符、数字等功能。 本系统采用的点阵式LCD型号为1602。 综合上述,数控直流恒流源的设备选型如表2-1所示。 表2-1 数控直流恒流源的设备选型器 件 编 号器 件 名 称型 号1单片机AT89S522稳压器LM7805,LM78153运算

20、放大器LM3584达林顿管TIP1425D/A转换器TLC5615器 件 编 号器 件 名 称型 号6康铜丝0.257A/D转换器TLC25438点阵LCDLCD16023 系统硬件设计 系统的总体硬件框图如图3-1所示,主要有AT89S52单片机系统、LM358与TIP142组成的恒流源电路、D/A转换器、采样电阻与A/D转换器组成的电流检测电路、矩阵键盘、LCD组成的显示电路等。 图3-1 系统的总体硬件框图3.1 主控电路设计 单片机各功能部件的运行都是以时钟频率为基准的,有条不紊地进行工作。因而时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。常用的时钟电路方式

21、有两种:一种是内部时钟方式,一种是外部时钟方式,这里采用的是内部时钟方式,外接晶振。时钟电路由片外晶体、微调电容和单片机的内部电路组成。选取频率为11.0592MHz的晶振,微调电容是瓷片电容。主控电路即为一个51系列单片机的最小系统,单片机选择了Atmel公司的AT89S52,主控电路如图3-2所示。 图3-2 主控电路 供电电源设计 主电源在本设计中,运放需12V供电,单片机和A/D、D/A需5V供电,采用三端稳压器7808构成一稳压电源,由于78及79系列稳压器最大输出电流只有,而题目要求输出电流范围是20mA2000mA。为了给系统提供更大的电流,需外加功率管进行扩流或者加电阻进行扩流

22、,电路如图3-3所示。输入电压由环形变压器和全波整流滤波电路产生。 图3-3上是运放供电电路 单片机电源(第二级电源)图3-4上是单片机和D/A、D/A系统供电电源电路 电源参数计算1对稳压器的参数计算:输出V0=+12v,I0=3A的稳压电路。选择VD1、VD2、C1、C2和稳压器稳压器选mc7808bt因为V0=8v,,有mc7808bt可以查得其输入和输出的关系为:,所以应有,所以mc7808bt的输入引脚为13v,输出8v 静态电流。C1、C2查稳压管使用手册得d1n5231a为二极管稳压器稳压值为5v。选择VD、R、VT管VD选有图得为VD的稳压值,结合整流后的电路选VD为bzx79

23、a10 。R的选择: ,所以得到结合整流后的电路。VT的选择::正常工作时集电极电流,VT承受的所以选VT为a5t5059的NPN其。2整流滤波参数计算工频输入为220v、50hz的交流电压,经过整流滤波后得到Ui1=24v采用全波整流所以次级电压应为30v,由变压器性质U1/U2=310/30,取=12/1取滤波电容C3=0.33u、C4=0.1u,为了让整流后的电压纹波小选择大电容C5=2000u,C3、C4、C5的耐压值为70v和4个整流二极管为选择理想二极管。3.3 恒流源电路设计 恒流源由运算放大器TL084以及达林顿管TIP142构成,如图3-5所示。其中,TIP142中的几个关键

24、指示如下。 最大集电极发射极电压:VCEOM = 100V。 最大集电极基极电压:VCBM = 100V。 最大发射极基极电压:VEBM = 5.0V. 最大集电极电流:稳态值,ICM = 10A;瞬时峰值,ICMP = 15A。 最大基极电流:IBM = 0.5V。 最大承受功率:PD = 125W。从上述指标可以看出,TIP142可以满足整个系统的输出电流要求。图3-5 恒流源电路说明,图35中的2.5电阻R10同时也为采样电阻,采用康铜丝绕制而成,在接下来的电流检测电路设计中将详细介绍。 D/A转换电路设计 D/A和A/D转换器介绍TLC5615是一个串行1O位DACDAC要好。只需要通

25、过3根串行总线就可以完成1O位数据的串行输入,易于和工业标准的微处理器或微控制器(单片机)接口,适用于电池供电的测试仪表、移动 ,也适用于数字失调与增益调整以及工业控制场合。其主要特点如下:1)单5v电源工作;2)3线串行接口;3)高阻抗基准输入端;4)DAC输出的最大电压为2倍基准输入电压;5)上电时内部自动复位;6)微功耗,最大功耗为175rrr ;7)转换速率快,更新率为121MHz;TLC2543是12 b it串行A /D转换器, 使用开关电容逐次逼近技术完成A /D转换过程. 由于是串行输入结构, 能够节省51系列单片机的I/O资源. 其特点有:1) 12 b it分辨率A /D转

26、换器;2) 在工作温度范围内10 L s转换时间;3) 11个模拟输入通道;4) 3路内置自测试方式;5) 采样率为66 kb /s;6) 线性误差+ 1LSB(max);7) 有转换结束(EOC)输出;8) 具有单、双极性输出;9) 可编程的MSB或LSB前导;10) 可编程的输出数据长度;TLC5615组成的D/A转换器电路如图3-6所示。图3-6 TLC5615组成的D/A转换电路TLC2543组成的A/D转换器电路如图3-7所示。TLC2543组成的A/D转换器电路如图3-8所示。 理论分析与参数计算1.D/A芯片的选择计算本题要求输出电流范围为202000mA(综合基本要求和发挥要求

27、),步进1mA,也即分辨率为1mA,根据式(3-5)得 (3-5) 所以n取10就可以了。 最小位数为10位,而为了给精度指标留有余地,A/D芯片我们选择12位的TLC2543,D/A芯片选择10位的TLC5615。当TLC5615工作在单极05 V输出模式时,输出电压分辨率为V。由于本系统输出电流为02 A,所以只使用0000H03DDH与输出的对应关系。TLC2543的分辨率为 mV。 PID算法的介绍本系统采用了离散增量PID算法,具体控制过程为:单片机经A/D芯片读出实际输出电流Ik,然后和设定电流Is相比较,得出差值Ek=Is-Ik,单片机根据Ek的正负大小调用PID方式计算出本次电

28、流调用的增量IK,然后根据前次D/A芯片输出电流Iq-1,计算出本次电流输出Iq。检测电路设计 电流检测原理介绍 为了提高电流输出地精度,需要引入一个反馈回路,用来指示当前输出地电流大小,完成该功能的电路即为电流检测电路。利用A/D转换器采集采集采样电阻两端的电压值,从而测量输出电流,因此,对采样电阻的要求比较高,同时采样电阻上需要交流过的最大电流比较大(0A-2A),这样在采样电阻上的功耗比较高,就需要用受温度等外部因素影响比较小的电阻,在本系统中,采用了康铜丝作为采样电阻,即为图中的电阻R7。电流检测电路图所示,其中A/D转换器采用TLC2543,其是12位A/D转换器,低功耗,只需要单个

29、+5V供电。 采样电阻的计算稳流电源的电流取样,实质上是稳流电源输出的负载电流在其上产生的电压降,它的数值大小直接影响电流效率,越高,稳流电源的效率就越低,采样电阻上耗散的功率就越大,因此温升高,取样电阻的稳定性会变差,会使电源稳定性降低。有以下求取采样电阻的经验公式: (3-6) 为负载电流。取样电阻上的电压降不宜选值太高,我们取为0.5V,根据题目要求取2A,代入式(36),可得采样电阻取0.25。 键盘电路设计 键盘电路采用按键扫描的矩阵电路,在本系统中需要用到“0-9”、“确认”“取消”、“+”、“-”等14个按键,设计16个按键即可满足要求,键盘电路如图3-10所示。+789456确

30、认3清除120+:实现步进电流为1MS的增加-:实现步进电流为1MS的减少09: 按键数字清除:清除当前数值确认:用户确认时,使当前键入数值送系统处理图3-9 键盘电路 显示电路设计 LCD1602的介绍显示采用的是点阵LCD,型号为LCD1602,1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如表1所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。 显示电路如图3-

31、10所示。图3-10 点阵LCD显示电路 4 系统软件设计4.1 软件结构设计软件设计采用C语言,对89S52进行编程实现各种功能。软件设计的关键是对A/D、D/A转换器的控制。软件实现的功能是: 电流给定值的设置 测量输出电流值控制TLC5615工作 控制TLC2543工作 对反馈回单片机的电流值进行补偿处理 驱动液晶显示器显示电流设置值与测量值 系统软件的结构数控直流恒流源的软件结构如图4-1所示,包括顶层文件、键盘管理、D/A转换处理、A/D转换处理、LCD显示管理5个部分。 图4-1 数控直流恒流源的软件结构 总体流程 数控直流恒流源的总体流程如图4-2所示。 图 4-24.2 指标测

32、试和测试结果TLC2543的采集Keil调试数据。Buf为输出电流值TLC5615的数字输入和对应输出模拟电压由TLC5615的性质有,是对应的二进制输入。由上公式的得到,=2.5v。根据电压电流转换电路的三虚原理得到等于放大器的正端和负端电压=。 图3-5得到。由设计要求可以假设,所以所以可以得到,注意单位是安培A。电压电流转换对应 图4-1假设TL084的正端为,负端为,由放大器的三虚原理,可以的得到。如上图4-1电压电流转换电路,得到R10上的电压为,又因为,所以得到的电流值为下公式值。电流的输出电流和负载电阻无关,实现的电压电流的转化同负载无关的要求。同时这个电路也可以实现202000

33、MA电流值。输入为0V是的电流和电压上为电流输入和下为输出电流如图上和实验过程中得到的数据输入电流和输出电流的差值为1mA。在输入电流为1000mA时TLC5615得到的输出电压为和实际电压2.5v的差值为0.00488v。采样电压为,R1= ,所以转换电流为MA;实际在输入的为1000mA,对应的实际电流误差为1000-999.684=0.316mA。上为电流输入和下为输出电流上为电流输入和下为输出电流上为电流输入和下为输出电流4.3 程序设计 见附录25 总结 在设计制作数控直流恒流源系统的过程中,我深切体会到,实践是理论运用的最好检验,培养了自己综合运用所学知识和技能分析和解决本专业的技

34、术问题,建立正确的设计思想和工程设计的一般程序和方法,以及培养研发的能力,进而对学生进行工程实践能力的综合训练,为学生走向社会参与工程技术活动打下良好的基础。同时非常感谢刘衍平老师,在设计过程中对我的细心指导,特别是在程序算法上的指导,让算法的取舍更合理。本次设计是对我们四年所学知识的一次综合性检测和考验,无论是动手能力还是理论知识运用能力都得到了提高,同时加深了我们对网络资源认识,大大提高了查阅资料的效率,使我们有充足的时间投入到电路设计当中。本系统的研制主要应用到了电子技术、传感器与检测技术、自动控制系统、计算机控制技术、51单片机技术、C语言或汇编语言、电路等知识和技能,所设计的基于单片

35、机程序控制的压控恒流源,达到了题目要求。进一步熟悉了设计所需要具有计算机和单片计算机软硬件开发条件的环境。参考文献1 陈伯时.电力拖动自动控制系统(第3版). 北京:机械2 孙运旺传感器技术与应用. 杭州:浙江大学出版社, 2006.93 林敏.计算机控制技术及工程应用. 北京:国防工业出版社, 2005.84 李群芳,张士军,黄 建单片微型计算机与接口技术. 北京:电子工业出版社, 2007.85 胡汉才.6 张毅,张宝芬,曹丽,彭黎辉.7 戴仙金. 8 谢自美.9 戴仙金.10 王昊,谢文阁,杜艺.11陈晓忠,黄宁,赵晓霞.12范立南,谢子殿.13 其他附录1总体原理图附录2 #inclu

36、de #include#include #include #define uchar unsigned char#define uint unsigned int/tlc5615sbit cs=P24; /片选sbit clk=P23; /时钟sbit din=P25; /SPI口/tlc2543sbit clock = P31; /输入、输出时钟端sbit input = P27; /数据输入端sbit output = P26; /数据输出端sbit CS1 = P30; /片选端,负电平有效/lcdsbit RS=P20;sbit RW=P21;sbit En=P22;/uchar co

37、de table16=0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f;/数字static uchar dis_buf4=0,0,0,0; /显示缓存uchar n,temp1;uchar key;/键顺序码uchar key_cli=0;/数字键被按下的次 /* 函数声明*/ keyscan(); void TLC56 (unsigned long dav); void delay56(); void Write(uchar address,uchar dat); void delayms(unsigned int x);void jianz(uchar key) ;void

38、ADCchu(unsigned long aa);void DispCharacter(uint x, uint y, uint data1);void LCDReset();void ShortDelay(uchar i);void LongDelay(uint i);void SetRS(bit i);void SetRW(bit i);void SetE(bit i);void InitP0(bit i) ;void WriteInstruc(uint Instruc);uint Read_BF_AC();void WriteData(uint data1);uint ReadData(

39、void);bit StatusCheck();void InitLCD();void jianchu(uchar jianz,uint r); /* 键盘程序*/keyscan() P1=0 xef; if(P1&0 x0f)!=0 x0f) ShortDelay(100);/ 函数调用消抖动 if(P1&0 x0f)!=0 x0f) temp1=P1; switch(temp1) case 0 xee: key=0; break; case 0 xed: key=4; break; case 0 xeb: key=8; break; case 0 xe7: key=12; break; w

40、hile(P1&0 x0f)!=0 x0f); jianz(key); /函数调用 P1=0 xdf; if(P1&0 x0f)!=0 x0f) ShortDelay(100);/ 函数调用消抖动 if(P1&0 x0f)!=0 x0f) temp1=P1; switch(temp1) case 0 xde: key=1; break; case 0 xdd: key=5; break; case 0 xdb: key=9; break; case 0 xd7: key=13; break; while(P1&0 x0f)!=0 x0f); jianz(key); /函数调用 P1=0 xbf

41、; if(P1&0 x0f)!=0 x0f) ShortDelay(100);/ 函数调用消抖动 if(P1&0 x0f)!=0 x0f) temp1=P1; switch(temp1) case 0 xbe: key=2; break; case 0 xbd: key=6; break; case 0 xbb: key=10; break; case 0 xb7: key=14; break; while(P1&0 x0f)!=0 x0f); jianz(key);/ 函数调用 P1=0 x7f; if(P1&0 x0f)!=0 x0f) ShortDelay(100);/ 函数调用消抖动

42、if(P1&0 x0f)!=0 x0f) temp1=P1; switch(temp1) case 0 x7e: key=3; break; case 0 x7d: key=7; break; case 0 x7b: key=11; break; case 0 x77: key=15; break; while(P1&0 x0f)!=0 x0f); jianz(key); /*键盘按键功能函数*/ void jianz(uchar key) /键盘值处理中调用lcd显示 if(key=9) dis_bufkey_cli=key; /得键值存储在其中 key_cli+; if(key=12)/确

43、定键送数 unsigned long out_temp=0; /十六位 uint j,i; uchar dis_buf14=0,0,0,0; for(j=0;j4;j+) dis_buf1j=dis_bufj; jianchu(dis_buf10,0); jianchu(dis_buf11,1); jianchu(dis_buf12,2); jianchu(dis_buf13,3); for(i=0;ikey_cli;i+) out_temp=out_temp*10+(dis_bufi);/给out-temp赋值为整数 /out_temp=2000-out_temp/2;/送5615口 /ou

44、t_temp=out_temp/2;/数据的转换 TLC56(0 x03dd-(2000-out_temp/2);/(重点地方)数字信号从单片机来,这里可以传键盘值和键盘联系 TLC5615DAC的键盘值 ShortDelay(1); /out_temp=out_temp/1024;/送5615口 /out_temp=out_temp*2*Vref;/数据的转换 /TLC56(out_temp);/(重点地方)数字信号从单片机来,这里可以传键盘值和键盘联系 TLC5615DAC的键盘值 /ShortDelay(1); if(key=13) /取消键 uint j; uchar dis_buf2

45、4=0,0,0,0; for(j=0;j4;j+) dis_bufj=dis_buf2j ; jianchu(dis_buf20,0); jianchu(dis_buf21,1); jianchu(dis_buf22,2); jianchu(dis_buf23,3); TLC56(0 x0000);/(重点地方)数字信号从单片机来,这里可以传键盘值和键盘联系 TLC5615DAC的键盘值 ShortDelay(1); if(key=10) /步进+键 uint j; uchar dis_buf34; for(j=0;j=0 x09) /输入值满十进位 dis_buf3n=0; n=2; dis

46、_buf3n=dis_buf3n+0 x01; for(j=0;j4;j+) dis_bufj=dis_buf3j;/将修改后的值传到dis_buf中 jianchu(dis_buf30,0); jianchu(dis_buf31,1); jianchu(dis_buf32,2); jianchu(dis_buf33,3); if(key=11) /步进-键 uint j; uchar dis_buf44; for(j=0;j4;j+) dis_buf4j=dis_bufj; n=3; dis_buf4n=dis_buf4n-0 x02; if(dis_buf4n=0 x01) n=2; di

47、s_buf4n=dis_buf4n-0 x01; n=3; dis_buf4n=0 x09; for(j=0;j0;i-) ;/寄存器选择信号:SetRS()void SetRS(bit i)if(i=1) RS = 1;else RS = 0;/读写操作控制信号:SetRW()void SetRW(bit i)if(i=1) RW = 1;else RW = 0;/使能信号:SetE()void SetE(bit i)if(i=1) En = 1;else En = 0;/IO输入输出控制void InitP0(bit i) if(i=1) P0 = 0 xff;else P0 = 0 x0

48、0; /写指令函数:WriteInstruc()void WriteInstruc(uint Instruc)while(StatusCheck();InitP0(0);SetRS(0);SetRW(0);/ShortDelay(1);SetE(0);P0 = Instruc;/ShortDelay(1);SetE(1);ShortDelay(10);SetE(0);/ShortDelay(1);SetRW(1);SetRS(1);/读BF以及AC的值函数:Read_BF_AC()uint Read_BF_AC()uint temp;InitP0(1);SetRS(0);SetRW(1);/S

49、hortDelay(1);SetE(0);/ShortDelay(1);SetE(1);ShortDelay(1);temp = P0;ShortDelay(10);SetE(0);/ShortDelay(1);SetRW(0);SetRS(1);return(temp);/写数据到RAM函数:WriteData()void WriteData(uint data1)InitP0(0);SetRS(1);SetRW(0);/ShortDelay(1);SetE(0);P0 = data1;/ShortDelay(1);SetE(1);ShortDelay(10);SetE(0);/ShortD

50、elay(1);SetRW(1);SetRS(0);/检测LCD控制器状态函数:StatusCheck()/返回一bit数:1 - 忙;0 - 闲bit StatusCheck()return(bit)(Read_BF_AC() & 0 x80);/在指定位置显示字符函数: DispCharacter()/ x为行号,y为列号, / data为显示字符的码字数据 void DispCharacter(uint x, uint y, uint data1)uint temp; while(StatusCheck(); /若LCD控制器忙,则等待temp = y & 0 x0f;x &= 0 x0

51、1;if(x) temp |= 0 x40; WriteInstruc(0 x80|temp); /设置显示位置WriteData(data1);/LCD复位函数:LCDReset()void LCDReset()WriteInstruc(0 x01) ; WriteInstruc(0 x02);/*LCD1062显示函数*/ void jianchu(unsigned char jianz,uint r) /键盘值处理并显示 if(r4)switch(jianz)case 0: DispCharacter(0,7+r, 0 ); break;case 1:DispCharacter(0,7+

52、r, 1 ); break;case 2:DispCharacter(0,7+r, 2 ); break; case 3:DispCharacter(0,7+r, 3 ); break;case 4:DispCharacter(0,7+r, 4 ); break; case 5:DispCharacter(0,7+r, 5 ); break; case 6:DispCharacter(0,7+r, 6 ); break; case 7:DispCharacter(0,7+r, 7 ); break;case 8:DispCharacter(0,7+r, 8 ); break; case 9:DispCharacter(0,7+

温馨提示

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

评论

0/150

提交评论