数控步进直流稳压电源的设计 电子专业毕业论文.doc_第1页
数控步进直流稳压电源的设计 电子专业毕业论文.doc_第2页
数控步进直流稳压电源的设计 电子专业毕业论文.doc_第3页
数控步进直流稳压电源的设计 电子专业毕业论文.doc_第4页
数控步进直流稳压电源的设计 电子专业毕业论文.doc_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

毕业论文 论文题目: 数控步进直流稳压电源的设计 作者姓名: 班级学号: 系 部: 电子工程系 专 业: 电子信息工程技术 指导教师: 2011年 5 月25 日摘 要随着科学技术飞速发展,对电源可靠性、输出精度和稳定性要求越来越高,利用d/ a 转换器的高分辨率和单片机的自动检测技术设计程控电源就显示出其优越性。程控电源既能方便输入和选择预设电压值又具有较高精度和稳定性,而且可以任意设定输出电压或电流,所有功能由面板上的键盘控制单片机实现,给电路实验带来极大的方便,提高了工作率。电源技术尤其是数控电源技术是一门实践性很强的工程技术,服务于各行各业。数控电源是从80年代才真正的发展起来的,期间系统的电力电子理论开始建立。这些理论为其后来的发展提供了一个良好的基础。从组成上,数控电源可分成器件、主电路与控制等三部分。数控步进直流稳压电源属于数字化智能电源的范畴。数字化智能电源模块是针对传统智能电源模块的不足提出的,数字化能够减少生产过程中的不确定因素和人为参与的环节数,有效地解决电源模块中诸如可靠性、智能化和产品一致性等工程问题,极大地提高生产效率和产品的可维护性。使电源模块的智能化程度更高,性能更完美。关键词:数控稳压电源 stc12c5a60s2 d/a转换 液晶显示 步进选择目 录摘要. .2 1 绪论.42 系统的硬件电路设计 .52.1系统框图及工作原理概述 .52.1.1 系统框图 .52.1.2 工作原理概述 .53电源部分 .63.1稳压电源的组成及工作原理.63.1.1稳压电源的组成.63.1.2稳压电源的工作原理.63.1.3 掉电保护. .73.1.4 stc12c5a60s核心控制路.84信号处理部分 .10 4.1信号采集调理电路 .10 4.2 d/a转换电路的组成及工作原理.11 4.2.1 d/a转换电路的组成.11 4.2.2 d/a转换电路的工作原理.11 4.3功能芯片.11 4.3.1dac0832芯片.11 4.3.20p07芯片.135 键盘及显示电路 .14 5.1键盘电路 .14 5.2液晶显示电路 .15 6输出部分 .166.1稳压输出电路 .166.2过流保护电路 .167 系统的软件设计 .157.1 系统的软件框图 .157.2 主控程序流程图 .177.3 中断程序流程图 .187.4 按键扫描程序流程图 .198系统调试及数据分析 .208.1 proteldxp原理图及程序的调试.208.2 辅助电源部分调试.208.3显示部分故障的排除.208.4各项指标的测量数据.209结论 .21致谢 .22参考文献 .23附录 .24附录1 程序清单.24附录2 原理图及印刷图 .29绪 论电源技术尤其是数控电源技术是一门实践性很强的工程技术,服务于各行各业。数控电源是从80年代才真正的发展起来的,到90年代,己出现了数控精度达到0.05v的数控电源,功率密度达到每立方英寸50w的数控电源。从组成上数控电源可分成器件、主电路与控制等三部分。本文重点介绍了一台输出电压可调节的数控步进直流稳压电源。它采用stc12c5a60s2单片机为核心控制器件来实现对输出电路的调节控制。电压调节范围为012v步进幅度为0.1v,输出电压和电流值通过液晶来显示显示精度分别为0.1v和0.01a。它主要由stc12c5a60s2核心控制模块,液晶显示模块,人机交互模块,稳压电源输出模块,电压、电流采集、放大、比较模块,电压、电流的调节模块,声光报警模块和为系统供电的电源模块等组成。通过输出信号采集调理电路对输出的电压、电流进行实时采样,然后把采样的值送给内部自带ad转换的stc12c5a60s2进行处理,之后控制液晶来同时显示当前输出的的电压和电流值。本产品控制灵活、可靠性高、系统维护方便是一款智能化程度更高,性能更完美的稳压直流电源。2 系统的硬件电路设计2.1系统框图及工作原理概述2.1.1 系统框图稳压电源输出电路部分供电电路掉电保护采集信号调理电路控制信号调理电路液晶显示电路da转换stc12c5a60s2核心控制电路键盘电路声光报警电路 图2.1.1:系统框图2.1.2 工作原理概述由51系列单片机stc12c5a60s2控制按键电路、显示电路、dac数模转换、输出调整、过流保护电路等各部分电路的工作,按键电路现用独立按键实现电路电压变化;显示电路由液晶实现0-12v 显示;模数转换由dac0832及高精度运放op07构成,后接tip122又组成射极跟随器,跟随0832的电流变化;输出调整用运放lm324构成电压跟随器及输出电压量反馈,使电压稳定;电流保护,输出电流过大达到设定值时,发光二极管导通点亮,tlp521开始工作,进而使三极管9013导通驱动蜂鸣器发出声音,报警电路实现声光报警。3 电源部分3.1稳压电源的组成及工作原理3.1.1稳压电源的组成稳压电源由电源变压器、整流电路、滤波电路和稳压电路组成,如图2.2所示 图3.1.1:稳压电源模块a. 整流电路:整流电路由四个整流管组成其作用是将交流电压u2变换成脉动电压u3。b. 滤波电路:滤波电路一般由电容组成,其作用是将脉动电压u3中的大部分纹波加以滤除,以得到较平滑的直流电压u4。本题对纹波要求非常高,对于本系统,造成纹波的主要因素是工频干扰、负载波动和数字调节的过冲噪声。其中数字调节的过冲噪声是数字控制系统必然存在的。因此,主要从抑制工频干扰和提高负载容量上来抑制纹波。本系统在电源端即进行滤波。因为系统的工频干扰主要由电源变压器引入,因此在电源端进行滤波对抑制工频干扰是十分必要和十分有效的。并且三个电源都在输出端用电容进行滤波,进一步抑制纹波的影响。c.稳压电路:由于得到的输出电压受负载、输入电 压 和 温度的影响不稳定,为了得到更为稳定电压添加了稳压电路,从而得到稳定的电压u0。3.1.2稳压电源的工作原理如图2.2所示,变压器将220v电压变换成15v电压,经过保险管后被整流二极管d101、d102、d103、d104整流过后,由电容c101、c102对其进行滤波,然后经过稳压块7812、7912稳压在输出端又经过电容c103、c104、c105、c106输出+12v和-12v供电,+12v又经过7805稳压在输出端经电容c107/c108滤波输出5v供电。经整流、滤波、稳压固定输出+12v、-12v、+5v,为保证及时散热稳压块可附上散热片,且7812输出可供7805输入,输出端接发光二极管作为电压指示,为防止稳压块输出接的电容放电烧毁集成块,在稳压块输出到输入端正向接二极管。电源电压的稳定性取决于供电系统本身,当供电系统受到某种因素的影响时,供电电压的变化就有可能超出电子设备能够承受的允许范围。故要求稳压电源的输出必须稳定,即要求电压波动不是太大,电源各参数设置要合理。3.1.3掉电保护 at24c02芯片是美国atmel公司的低功耗cmos串行eeprom,它是内含2568位存储空间,具有工作电压宽(2.55.5v)、擦写次数多(大于10000次)、写入速度快(小于10ms)等特点。如图2.4所示:图3.1.3:掉电保护图中at24c02的1、2、3脚是三条地址线,用于确定芯片的硬件地址。在at89c51试验开发板上它们都接地,第8脚和第4脚分别为正、负电源。第5脚sda为串行数据输入/输出,数据通过这条双向i2c总线串行传送,在at89c51试验开发板上和单片机的p3.5连接。第6脚scl为串行时钟输入线,在at89c51试验开发板上和单片机的p3.6连接。sda和scl都需要和正电源间各接一个4.7k的电阻上拉。第7脚需要接地。24c02中带有片内地址寄存器。每写入或读出一个数据字节后,该地址寄存器自动间加1,以实现对下一个存储单元的读写。所有字节均以单一操作方式读取。为降低总的写入时,一次操作可写入多达8个字节的数据。3.1.4 stc12c5a60s2核心控制电路如图2.2.3所示,在此模块中我们采用了stc12c5a60s2,它是单时钟/机器周期(1t)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成max810专用复位电路,2路pwm,8路10位a/d转换(250k/s),针对电机控制,强干扰场合。凭借自身的优点来完成一下几项工作:它接收电压电流采集、放大、比较模块采集的信号,经自身a/d转后并进行数据处理;把上一步处理好的数据送给液晶显示模块来显示当前输出的电压和电流值,当电流超过设定值后就会在液晶上提示报警;接收人机交互模块输入的信号,把此信号进行处理后存储或发送给电压电流调整模块;根据人机交互模块输入的值,经内部pwm转换后送给外部的电路使之转化为模拟信号送给电压电流调整模块。由于单片机对时钟的要求比较精确,在此采用12m晶振和两个30p的陶瓷电容,从而保证单片机的正常精确工作。c401 、r401和按键f7组成单片机的上电复位兼手动复位电路,发光二极管l401起一个指示作用。当开始上电时,由于电容两端电压不能突变,单片机的9脚相当于接一个高电平,随着对c401的充电完成9脚电位会逐渐降低,上电复位完成。在单片机运行中,当按下按键f7后,电源与r401串联分压使单片机的9脚获得足够时间的阀值以上电压,单片机即进行复位,同时指示二极管l401亮一下。在单片机复位后,松开按键f7,单片机即可开始进行正常的运行程序。单片机的p2.0 、p2.1、p2.2、p2.3、p2.4、p2.5管脚是按键的输入端口,作用分别为电压值粗调减键、电压值粗调加键、电压值细调减键、电流值细调加键、过流保护清零键、液晶显示背光调节键。单片机接收到不同的键值会做出相应的处理,同时通过液晶显示出来。 p1.0、p1.1分别接信号采集电路的ad0、ad1,分别为电流采样输入通道、电压采样输入通道。单片机根据需要进行对不同通道的信号进行转换,从而可以得到液晶显示所需要的电压值和电流值。 p0为液晶显示的数据输入端口。p3.0、p3.1、p3.2、p3.3分别是控制液晶显示的e1、e2、r/w、a0,p1.5是控制液晶显示的背光调节。 l401和r402组成通电显示电路。 图:stc12c5a60s2核心控制电路4信号处理部分4.1信号采集调理电路由图2.5、图2.7可知b点的采样值是采样电阻r202分压所提供的,采样值送给由r301、r302、r303和u301b组成的同相加法器进行放大,uo=(1+r303/r301),然后经过r304降压后同时送给stc12c5a60s29的ad0通道和1的导通和关断,影响a点的电位变化,从而使调整管工作,使输出电压变化,同时比较器u301c,比较器的基准电压是12v电压经过10k电阻限流然后经过d302稳压管稳压和一个10k的电位器并联调节得到的,比较器的结果控制二极管d30也起到保护电路的作用。由图2.5图2.7可知c点的采样值是采样电阻r203、r204和电位器rp201分压得到的,采样值首先送给由u302a构成的电压跟随器,实现电流的放大,然后送给由电阻r308、r309和u302b构成的1:1的反比例放大器,然后经过电阻r310后送给stc12c5a60s2的ad1通道进行转换。cab图4.1:信号采集调理电路4.2.d/a转换电路4.2.1 d/a转换电路的组成 d/a转换电路主要有八位数模转换芯片dac0832和高精度运算放大器op07组成。因为电源输出电压范围是0-12v,步长0.1v,共有120个状态, 8位的d/a转换芯片dac0832共有256个状态,显然能满足电路要求,因此采用dac0832做为d/a。运放op07构成反相比例运算,uo=-(rf/r1)*ui,当rf=r1时,uo=-ui输出电压等于负的输入电压,dac0832由倒t型网络构成,其由稳压电源的+12v通过一个电位器作为基准电压端uref,基准电压为正电压,由上面的公式得出0832的输出电压为负,0832内部有一个反馈电阻,所以运放输出不必加反馈电阻,运放的其它的使能端可接高低电平实现对dac的控制。4.2.2 d/a转换电路的工作原理如图2.5.1所示,按键的键值通过单片机传输到da转换器0832中进行数字量和模拟量的转化,由于dac0832内部不含运算放大器,所以在外部接一个运算放大器op07构成完整的da转换器,运放输出接0832的反馈电阻端rf,从而与晶体管构成射极输出器,跟随dac0832输出电流的变化,dac0832输出的模拟电流量经过高精度运放op07转化为模拟电压量,然后送至u301a的反向输入端从图2.4和图2.9可以看出采样电压uc与参考电压比较来使a点的点位变化,a点电位变化使调整管tip122动作,从而使输出电压改变,输出电压变化进而使输出采样电压变化,这样就够成了一个闭环的自动调节电路,只需改变da数值便可以改变输出电压值。如图4.2.2:d/a转换电路4.3功能芯片4.3.1 dac0832芯片(1) di7di0:8位的数据输入端,di7为最高位。(2) iout1:模拟电流输出端1,当dac寄存器中数据全为1时,输出电流最大,当 dac寄存器中数据全为0时,输出电流为0。(3) iout2:模拟电流输出端2, iout2与iout1的和为一个常数,即iout1iout2常数。(4) rfb:反馈电阻引出端,dac0832内部已经有反馈电阻,所以 rfb端可以直接接到外部运算放大器的输出端,这样相当于将一个反馈电阻接在运算放大器的输出端和输入端之间。(5) vref:参考电压输入端,此端可接一个正电压,也可接一个负电压,它决定0至255的数字量转化出来的模拟量电压值的幅度,vref范围为(+10-10)v。vref端与d/a内部t形电阻网络相连。(6) vcc:芯片供电电压,范围为(+5 15)v。(7) agnd:模拟量地,即模拟电路接地端。(8) dgnd:数字量地。 当wr2和xfer同时有效时,8位dac寄存器端为高电平“1”,此时dac寄存器的输出端q跟随输入端d也就是输入寄存器q端的电平变化;反之,当端为低电平“0”时,第一级8位输入寄存器q端的状态则锁存到第二级8位dac寄存器中,以便第三级8位dac转换器进行d/a转换。一般情况下为了简化接口电路,可以把和直接接地,使第二级8位dac寄存器的输入端到输出端直通,只有第一级8位输入寄存器置成可选通、可锁存的单缓冲输入方式。 特殊情况下可采用双缓冲输入方式,即把两个寄存器都分别接成受控方式,制作低频信号发生器有许多方案:主要有单缓冲方式,双缓冲方式和直通方式。单缓冲方式具有适用于只有一路模拟信号输出或几路模拟信号非同步输出的情形的优点,但是电路线路连接比较简单。而双缓冲方式适用于在需要同时输出几路模拟信号的场合,每一路模拟量输出需一片dac0832芯片,构成多个dac0832同步输出电路,程序简单化,但是电路线路连接比较复杂。根据以上分析,我们的课题选择了单缓冲方式使用方便,程序简单,易操作。4.3.2 op07芯片 op07 高精度运算放大器具有极低的输入失调电压,极低的失调电压温漂,非常低的输入;噪声电压幅度及长期稳定等特点。可广泛应用于稳定积分、精密绝对值电路、比较器及微弱信号的精确放大,尤其适应于宇航、军工及要求微型化、高可靠的精密仪器仪表中。- 29 - 低的输入噪声电压幅度0.35 vp-p (0.1hz 10hz) 极低的输入失调电压10 v 极低的输入失调电压温漂 0.2 v/ 具有长期的稳定性0.2 v/mo 低的输入偏置电流 1na 高的共模抑制比126db 宽共模输入电压范围14v 宽的电源电压范围 3v 22v 可替代725、108a、741、ad510 等电路 芯片op075键盘及显示电路5.1键盘电路电路如图2.6所示:图5.1:按键电路f1、f2、f3、f4、f5、f6分别和p2.0、p2.1、p2.2、p2.3、p2.4、p2.5相连接 按键f1:每次按下此键输出电压就减少0.1v按键f2:每次按下此键输出电压就增加0.1v 按键f3:每次按下此键输出电压就减少0.01v按键f4:每次按下此键输出电压就增加0.01v按键f5:掉电保护清零调节按键f6:液晶显示背光调节5.2液晶显示电路电路如图2.6.1所示:图5.2:液晶显示电路 在此电路中我们使用了jcm12232液晶,来显示当前输出的电压电流值。电路中的e1、e2、r/w、a0分别与单片机的p3.0、p3.1、p3.2、p3.3相连接,液晶显示的数据输入与单片机的p0口相连接。背光调节led通过9013与单片机的p1.5相连接,通过按键f6来控制。6输出部分 这部分将数控部分送来的电压控制字转换成稳定电压输出,电路主要由稳压输出、过流保护指示等几部分组成。6.1稳压输出电路 此模块原理我们可以从电路图图2.7可知,从变压器次级输出的15v交流电经过整流二极管d201、d202、d203、d204的整流、电容c201、c202的滤波后送给调整管tip122,经过调整后,送给后一级的采样电路,然后输出。在电路中有一个控制点a,两个采样点b、c、a点受控制信号调理电路的控制,b、c分别是电流、电压的采样点。cba6.2过流保护电路 当输出电路过载时采样端送往由u301a构成的比较器的3脚,从而改变1脚的输出电压,当达到设定值时,发光二极管导通点亮,tlp521开始工作,进而使三极管9013导通驱动蜂鸣器发出声音。电路如图2.7.1所示:图6.2:声光报警模块7 系统的软件设计7.1系统的软件框图 软件要实现的功能是:键盘对单片机输入数据,单片机对获得的数据进行处理,送到8位数模转换器(dac0832)同时数码管显示电压预置值,同时当电路上电后能自动读出掉电时的电压值。系统框图如图3.1所示:单片机stc12c5a 60s2按键dac0832输出调整过流保护运放op07显示电路图7.1:系统框图7.2主控程序流程图主控程序首先进行系统初始化,然后读入24c02电压值,输出相应的电压控制字,等待键盘输入。根据键盘的不同输入,执行不同的系统程序,执行后,返回按键扫描状态,等待下一次按键。框图如图3.2所示:图7.2主程序流程流程图7.3中断程序流程图过流保护由中断实现,在中断服务程序中进行各项报警和保护操作,中断服务程序,框图如图3.3所示: 图7.3中断子程序流程图7.4按键扫描程序流程图按键扫描判断哪个键按下进行相应的粗调、细调功能,框图如图3.4所示: 开始粗调减扫描细调减扫描粗调加扫描细调加扫描返回 图7.4按键扫描子程序流程图8系统调试及数据分析8.1 proteldxp原理图及程序的调试 对画好的电路图进行仿真,发现出了很多问题,例如,地线没连,电阻过大,单片机引脚没接好等等,后来一个一个排除出错,最终完成proteus原理图调试及pcb打印。8.2 辅助电源部分调试 辅助电源实物制作好后,通电调试,发光二极管不亮,但测的稳压管输出正常,经过检查和计算,发现与二极管串联的电阻过大,使流入发光二极管的电流过小,导致发光二极管不亮。解决方法:改用阻值小的电阻后,发光正常。8.3显示部分故障的排除先通过单片机编程序及下载让数码管静态显示“8”字型,确保数码管电路正确,但调试时,发现数码管有一个字段不发光,后来经过认真的检查发现,其中一个引脚虚焊,后经重新焊接,工作正常。8.4各项指标的测量数据测试数据如下表所示:序号12345678910预置电压0.51.52.53.54.65.56.67.58.59.5实测电压0.571.562.553.534.525.516.507.488.469.48从实测数据看,输出电压的步进0.1v,符合题目的基本要求。结 论单片机无疑是现代电子技术中一棵璀璨的明星,它不断地更新着人类的生产、生活方式。成为推动社会进步、经济发展的中要元素。单片机以革命性的姿态应用于工业测控系统,同时又广泛应用于家用电器、家电一体化以及仪器仪表行业等领域。可是,单片机应用的意义绝不仅限于它的广阔范围以及所带来的经济效益,更重要的意义还在于,单片机的应用已经从根本上改变了传统的控制系统设计思想和设计方法。通过这次设计不仅学会了如何去查找相关资料,更重要的是通过查找资料和翻阅书籍学到了不少知识,扩大了知识面,提高了知识水平。经过单元设计和系统设计巩固了以前所学的专业知识,不但对数电、模拟电路、单片机程序有了更深层次的认识,自己真正认识到理论联系实际的重要性,为以后的学习和工作提供了很多有价值的经验。通过这次设计不仅增强了自己的动脑能力和动手能力,也提高了我思考问题、分析问题、解决问题的能力,更重要的是学会用工程化的思想来解决问题。这在以前的学习过程中是不曾学到的。在短短的三个月时间内完成毕业设计内容,在很大程度上得益于老师的帮助。 这次设计使我认识到完整、严谨、科学分析问题、解决问题的思想是多么的重要,只有拥有了科学的态度才能设计出有用的产品。另外通过本次设计,使我认识到自己理论知识的应用能力有很大的欠缺,需要在以后的学习、工作中进一步提高。 致 谢 衷心感谢学院给我这次难得的机会来做此次毕业设计,让我从中学到很多书本上没有的知识,理论与实践相结合!衷心感谢我的班主任兼指导老师的指导,他们严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;他循循善诱的教导和不拘一格的思路给予我无尽的启迪!这篇论文的每个细节和每个数据,都离不开你们的细心指导。你们开朗的个性和宽容的态度,帮助我能够很快的融入我们这个毕业设计!在此,学生衷心表示感谢:“老师,您辛苦了!”此外还要感谢我的同学和寝室兄弟们,是他们在我生活和学习上给予了很多无私的帮助,值此机会,我向你们说声谢谢!此外,还要感谢评阅老师对本论文进行的认真评阅和批评指正。最后,向所有给予我关怀和帮助的师长和同学们表示衷心的感谢! 在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!最后,非常感谢各位评审老师对我的论文提问、审核和验收。参考文献1清华大学电子学教研组编,阎石主编:数字电子技术基础(第四版),北京,高等教育出版社,1998年2毕满清主编:电子技术实验与课程设计(第二版),北京,机械工业出版社,2001年3陈汝全主编:电子技术常用器件应用手册(第二版),北京,机械工业出版社,2000年4. 杨汉华 凌福玲主编:信息技术 2002年 第01期5. 戴佳、戴卫恒主编。51单片机c语言应用程序设计实例精讲,北京:电子工业出版社,2006年6. 沙占友、孟志永、王彦朋等编著。单片机外围电路设计(第二版),北 京:电子工业出版社,2006年7. 张新德,李刚主编通用元器件技术手册。北京:机械工业出版 社,2005 年 8. 余孟尝主编。数字电子技术基础简明教程。(第二版),北京高 等教育出版 社,2003年9. 杨素行主编。模拟电子技术基础简明教程。第二版。北京:高 等教育出版 社,2004年10.李广弟主编。单片机基础, 北京航空航天大学出版社, 1999年11.王为青、邱文勋主编。51单片机应用开发案例精选,人民邮电出版社,2007年12.李全利主编。单片机原理及应用技术,高等教育出版社,2007年13.李朝青主编。单片机原理及接口技术, 北京: 北京航空航天大学出版社, 2005 年附 录附录1:程序清单*初始化程序*#ifndef init_h_#define init_h_#define writeaddress 0xa0#define readaddress 0xa1#define uchar unsigned char#define uint unsigned int#define delaynop(); _nop_();_nop_();_nop_();_nop_();/*/sbit k0=p20; /*减按键*/sbit k1=p21; /*加按键*/sbit k2=p22; /*复位按键*/sbit p23=p23; /*数码管个位*/ sbit p24=p24; /*数码管十位*/sbit p25=p25;/*蜂鸣器报警接口*/sbit scl=p26;sbit sda=p27;sbit k3=p30; /*粗调按键+*/sbit k4=p31; /*粗调按键-*/ucharcodeduan=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;ucharcodezhuanhuan=0x00,0x03,0x05,0x08,0x0a,0x0d,0x0f,0x12,0x15,0x18,0x1a,0x1d,0x1f,0x29,0x2b,0x2e,0x30,0x33,0x35,0x38,0x33,0x3d,0x3f,0x41,0x43,0x46,0x48,0x4b,0x4d,0x50,0x4d,0x55,0x57,0x5a,0x5d,0x5f,0x62,0x64,0x67,0x69,0x67,0x6e,0x71,0x73,0x76,0x78,0x7b,0x7d,0x80,0x82,0x81,0x870x89,0x8c,0x8f,0x91,0x94,0x96,0x99,0x9b,0x9b,0xa0,0xa2,0xa5,0xa8,0xaa,0xac,0xaf,0xb2,0xb4,0xb4,0xb9,0xbc,0xbe,0xc1,0xc3,0xc5,0xc8,0xcb,0xcd,0xce,0xd2,0xd5,0xd7,0xda,0xdc,0xdf,0xe1,0xe4,0xe6,0xe8,0xeb,0xed,0xf0,0xf2,0xf5,0xf7,0xfa,0xfc,0xff;uint shi,ge;uint k=0;void delay1ms(uint a);void delay5us(uint a);void keys(void);void display(void); void fuwei(void);uchar read24c02(uchar addr);uchar read8bit();void write24c02(uchar addra,uchar writedata);bit write8bit(uchar writedata);stop (void);void start();void delay1ms(uint a) unsigned int i,j; for(i=0;ia;i+) for(j=0;j60;j+);#endif在初始化程序中,对各子程序定位为最初状态,初始化函数中也包括延时子程序,更方便调用。*按键扫描*#ifndef key_h_#define key_h_#include init.hvoid keys() if(k0=0) delay1ms(5); if(k0=0) while(k0=0); ge-; k-; if(ge=0xffff) ge=9; shi-; if(shi=0xffff) ge=0; shi=0; if(k1=0) delay1ms(5); if(k1=0) while(k1=0); ge+; k+; if(ge=10) ge=0; shi+; if(shi=10) shi=0; if(k3=0) delay1ms(5); if(k3=0) while(k3=0); shi+; if(shi=10) shi=0; if(k4=0) delay1ms(5); if(k4=0) while(k4=0); shi-; if(shi=0xffff) shi=0; 按键扫描中对5个按键进行扫描包括加减键、粗调细调键、复位键在下面的显示、中断、复位程序及主程序中都会调用。*数码管显示*#endif#ifndef display_h_#define display_h_void display() p1=duange;p23=1;p24=0;delay1ms(10); p1=duanshi&0x7f;p24=1;p23=0; #endif若想让电路对现有电压进行记忆,硬件电路中可添加存储器,把键入的键值存储,输出电压可保持在那个状态。*复位程序*#ifndef fuwei_h_#define fuwei_h_void fuwei(void) if(k2=0) shi=0; ge=0; p25=0; #endif*24c02的起始停止函数*#ifndef start_stop_h_#define start_stop_h_void start() /起始信号sda = 1;scl = 1;delaynop();sda = 0;delaynop();scl = 0; stop (void) / 停止信号sda = 0;delaynop();scl = 1;delaynop();sda = 1;#endif*写24c02*#ifndef write24c02_h_#define write24c02_h_void write24c02(uchar addra,uchar writedata) scl=1; sda=1; start(); write8bit(writeaddress); write8bit(addra); write8bit(writedata); stop();/*读取从机应答信号子程序*(1)读取从机应答位,用于判断从机是否成功接收主机数据;(2)返回:0-从机应答,1-从机非应答;(3)从机在接受到每个字节后,都要产生应答位,主机如果接受到非应答位则应当终止传输/*/bit write8bit(uchar writedata)uchar i;bit ack_bit;for(i = 0; i 8; i+)/ 循环移入8个位sda = (bit)(writedata & 0x80);_nop_();scl = 1;delaynop();scl = 0;writedata = 1;s

温馨提示

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

最新文档

评论

0/150

提交评论