数控直流恒流源的设计 (附外文翻译)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数控直流恒流源
的设计
摘要
直流恒流源是提供稳定直流电流的电源装置,是科学实验和设备调试中的一种必备设备。
本文介绍了采用AT89C51单片机为主控制器,通过键盘来设置直流恒流源的输出电流,并由数码管显示电流设定值的数控直流恒流源。
本系统由单片机程控设定数字信号经过D/A转换器输出模拟量,再经过V/I转换电路的转换输出不同的电流。
输出电流范围为10~100mA,电流设置步进为1mA,输出电流调整率≤2%。
本文主要分析了数控直流恒流源系统的设计需求,阐述了数控直流恒流源的软硬件的设计原则,介绍了数控直流恒流源各模块电路的功能及设计思路,完成了数控直流恒流源系统的全部设计,给出了完整的电路图和程序。
本文设计的重点是单片机主控系统和D/A转换电路,设计的难点是高线性、高稳定度的电压/电流转换电路(V/I转换电路)。
测试结果表明,本系统能满足需要高稳定度的小功率直流恒流源领域的应用要求。
关键词数控恒流源 V/I转换
ABSTRACT
Numerical control DC constant current source is to provide a stable DC power devices, and equipment for scientific experiments debugging necessary equipment. This paper instructed the numerical control DC constant current source which makes use of the AT89C51 version single chip microcontroller is the main controller in this system, while the set value and the real output current can be displayed by LED. In this system, the digitally programmable signal from Single Chip Micro controller is converted to analog value by D/A converter, and then transited by voltage/current converter circuit, so adjustable output different current. Output current range of 10~100mA, current set of 1mA step, the output current adjustment rate of less than 2%.
This paper analyzes the numerical control DC constant current source system design needs, expounded numerical-controlled DC constant current source of the hardware and software design principles, instructed the numerical-controlled DC constant current source circuit of the module function and design ideas, completed the numerical-controlled DC current source of all design, and the circuit is complete and procedures. This paper focuses on the design of the control system microcontroller and D/A Conversion Circuit, The difficulty in the design of high linearity, high stability of the voltage/current converter circuit (V/I Conversion Circuit). The test results have showed that it can be applied in need areas of constant current source with high stability and low power.
KEY WORDS numerical control constant current source V/I convert
目录
前言 (1)
第1章系统总体设计 (2)
1.1 系统设计任务与要求 (2)
1.1.1 系统设计任务 (2)
1.1.2 系统设计要求 (2)
1.2 重点研究内容与实现方法 (2)
1.2.1 重点研究内容 (2)
1.2.2 实现途径及方法 (3)
1.3 系统总体方案设计 (3)
1.3.1 主控模块 (3)
1.3.2 键盘与显示模块 (4)
1.3.3 恒流源模块 (4)
1.3.4 存储器扩展模块 (4)
1.3.5 电源模块 (5)
1.3.6 系统原理框图 (5)
第2章系统硬件各功能模块的设计 (6)
2.1 主控模块的设计 (6)
2.1.1 AT89C51单片机简介 (6)
2.1.2 D/A转换电路的设计 (7)
2.1.3 恒流源电路的设计 (9)
2.1.4 数据存储器的扩展 (10)
2.1.5 系统资源分配 (11)
2.2 人机接口的设计 (12)
2.2.1 键盘的设计 (12)
2.2.2 显示电路的设计 (14)
2.3 系统抗干扰设计 (15)
2.3.1 看门狗电路的设计 (15)
2.3.2 电源供电系统的设计 (16)
2.3.3 基准电压的设计 (17)
第3章控制软件的设计 (19)
3.1 主程序的设计 (19)
3.1.1 读写EEPROM子程序的设计 (19)
3.1.2 键盘处理子程序的设计 (20)
3.1.3 D/A转换子程序的设计 (20)
3.2 键盘中断服务程序的设计 (21)
3.3 显示中断服务程序的设计 (21)
3.1.1 正常显示程序模块 (21)
3.1.2 闪烁显示程序模块 (21)
第4章系统调试 (28)
4.1 硬件仿真调试 (28)
4.2 软件的调试 (31)
4.3 数据测试及误差分析 (35)
第5章结论 (41)
致谢 (42)
参考文献 (43)
附录1:电路原理图 (44)
附录2:源程序 (48)
附录3:英文原文 (62)
附录4:中文译文 (69)
前言
直流恒流源是提供稳定直流电流的电源装置,是科学实验和设备调试中的一种必备设备。
所谓恒流源,是指对应于一定的负载变化其所产生的电流变化趋于零。
它能在外部电路的阻抗特性发生变化时,仍输出恒定的电流,具有很高的动态输出电阻。
目前使用的直流恒流源大部分都是利用分立器件组成,其体积大,效率低,可靠性差,操作使用不方便,自我保护功能不够完善,故障率较高。
随着电子技术的发展和数字电路应用领域的扩展,现今社会产品智能化、数字化已成为其发展的趋势。
数控直流恒流源作为测试/调试仪器在生产实际中有着广泛的用途,如:工业上的电控调节阀,其阀门开度受输入的控制电流大小控制,对于Ⅰ型表来说这个电流是0-10mA,对于Ⅱ型表来说这个电流是4-20mA。
恒流源成为这些设备调试的必备工装。
在科学实验、电磁学测量、传感器供电等领域都需要恒流源提供稳定的标准电流。
以单片机系统为核心而设计的新一代数控直流恒流源不但电路简单、结构紧凑、价格低廉,而且单片机具有计算和控制能力,可对各种采样数据进行处理,控制其输出电路,从而可减少或排除由于干扰信号引起的输出电流波动,提高输出电流的稳定性。
目前国内一般使用的恒流电流源往往是固定的一种电流值,或只能设定有限数值的电流值,普遍存在着调节范围小、热稳定性差等缺点。
本设计结合单片机的控制技术、D/A转换技术和集成电路技术,设计一种数控的直流恒流源。
它利用单片机作为核心控制器,通过键盘设置所需要的电流值。
电流值取值精度高,使用方便灵活,它可以提供10~100mA 的恒流输出,并具有1mA的步进电流调整功能,在0~100Ω负载下输出电流调整率≤2%。
基于单片机的数控直流恒流源在科研和生产实际中应用前景广阔,可作为实验仪器或生产的必备工装在各种需要的场合推广使用。
第1章系统总体设计
1.1 系统设计任务与要求
1.1.1系统设计任务
该数控直流恒流源采用51系列单片机为主控芯片,通过D/A转换实现对输出电流的控制。
主要技术指标:输出电流直流10~100mA可调整(0~100Ω负载下,以1mA 为步进单位);在0~100Ω负载下输出电流调整率≤2%。
该恒流源由单片机系统、D/A转换器、受控恒流源、键盘与显示电路、看门狗电路和电源电路等构成。
1.1.2系统设计要求
根据设计任务,详细分析数控直流恒流源的设计需求,并进行软硬件的总体设计。
在完成总体设计后,进行硬件功能模块的设计,利用电子CAD软件完成数控直流恒流源全部电路的设计工作,同时进行控制软件的流程设计及编制工作。
利用Keil51软件完成数控直流恒流源全部控制软件的仿真调试工作。
利用Proteus软件完成大部分功能模块的电路仿真。
1.2重点研究内容与实现方法
1.2.1重点研究内容
本设计包括硬件设计和软件设计。
硬件设计主要包括单片机主控系统、D/A转换器、受控恒流源、键盘与显示电路、看门狗电路和电源电路等,其中硬件设计重点是单片机主控系统和D/A 转换器,设计难点包括高线性、高稳定度的电压/电流转换电路(V/I转换电路)。
软件设计主要包括主控程序和中断服务程序。
主要完成系统初始化、键盘扫描、数据处理、电流值显示、输出电流控制和看门狗电路控制等工作,同时还应考虑如何实现断电后保存最后一次设定的电流值的问题。
1.2.2实现途径及方法
本系统主要通过资料查找、系统需求分析、系统总体设计,软硬件总体设计、详细的软件与硬件设计、系统仿真与调试、资料整理等步骤来完成。
本系统利用Protel软件完成硬件电路设计工作,利用Keil51软件完成系统控制软件的编译调试工作,通过Proteus软件完成所有功能模块的电路仿真。
1.3系统总体方案设计
按照系统设计要求,在保证实现的基础上,要尽可能降低系统成本。
整个系统从功能上划分为5个模块,并分别对每个模块进行方案论证比较。
1.3.1主控模块
方案一:采用各类数字电路来组成键盘控制系统,进行信号处理,如选用CPLD等可编程逻辑器件。
本方案不利于系统的扩展,对信号处理比较困难。
方案二:采用MCS-51单片机作为整机的控制单元,通过改变D/A的输入数字量来改变其输出电压,通过V/I变换电路间接地改变输出电流的大小。
此系统比较灵活,采用软件方法来解决数据的预置以及电流的步进控制,使系统硬件更加简洁,各类功能易于实现,能很好地满足题目的要求[1]。
比较以上两种方案的优缺点,方案二简洁、灵活、可扩展性好,能达到题目的设计要求,故本设计采用方案二来实现。
1.3.2键盘与显示模块
常用的非编码键盘有两种实现方案,一种是独立式键盘,另一种是行列式键盘。
独立式键盘电路配置灵活,软/硬件结构简单,但每个按键占用一根I/O口线,在按键较多时,I/O口线浪费较大。
行列式键盘一般采用锁存器和可编程并行I/O接口芯片组成,软/硬件结构复杂[2]。
考虑到系统实现及成本等综合因素,同时为了方便用户使用,共设计了6个功能键,按键数量不多,因此本系统中采用独立式键盘。
在单片机的应用系统中,通常使用LED(发光二极管)和LCD(液晶显示器)来观察和监视单片机的运行情况以及运行中间的结果及状态等信息。
LED显示器具有主动发光、配置简单及使用寿命长等优点,在本系统中需要显示3位电流值,因此采用3个七段LED数码管显示设定的电流值。
1.3.3恒流源模块
方案一:采用四端可调恒流源,这种器件靠改变外围电阻元件参数,从而使电流达到可调的目的,这种器件能够达到1~2000毫安的输出电流。
改变输出电流,通常有两种方法:一是通过手动调节来改变输出电流,这种方法不能满足题目的数控调节要求;二是通过数字电位器来改变需要的电阻参数,虽然可以达到数控的目的,但不够方便调节输出电流。
方案二:压控恒流源,通过改变恒流源的控制电压,利用电压的大小来控制输出电流的大小。
电压控制电路采用数控的方式,利用单片机送出数字量,经过D/A转换转变成模拟信号,再送到运算放大器进行V/I转换。
当改变负载大小时,基本上不影响电流的输出。
该方案通过软件方法实现输出电流稳定,易于实现,便于操作,故选择此方案。
1.3.4存储器扩展模块
在单片机应用系统中,对某些状态参数,不仅要求能够在线修改,而且断电后能保存,以便上电恢复系统上一次的工作状态。
断电数据保护方法可选用具有断电保护功能的RAM和电可擦除存储器EEPROM。
具有断电保护功能的RAM容量
大,速度快,但占用口线多,成本高。
EEPROM适合数据交换量较少对速度要求不高的场合。
EEPROM有并行和串行之分。
并行EEPROM速度比串行快,容量大,但在本系统中并不需要这么大的容量。
串行芯片成本低,接口简单,工作可靠,占用单片机I/O口线资源少[3]。
在本系统中只需要存储3位电流值,数据量少,故采用串行EEPROM来存储设置数据。
1.3.5电源模块
方案一:用开关稳压电源给整机供电,此方案能够完成本设计直流恒流源的供电,但开关电源比较复杂,且输出中带有较大的高频干扰。
方案二:单片机控制系统以及外围芯片供电采用78系列三端稳压器件,通过全波整流,然后进行滤波稳压。
电流源部分由于要给外围测试电路提供比较大的功率,因此必须采用大功率器件。
考虑到该电流源输出电压在24V以内,最大输出电流不大于100mA,由公式I
U
=可以粗略估算电流源的功耗为2.4W。
同
P⋅
时考虑到恒流源运算放大器部分的功耗,需要预留功率余量,因此供电电源要求能输出5W以上。
由于串联稳压电路的输出纹波小,符合恒流源的需求,故选用由78系列三端稳压器件构成的稳压电源[4]。
此方案输出电压能满足系统要求,而且简单实用。
1.3.6系统原理框图
数控直流恒流源系统原理框图如图1-1所示。
图1-1 数控直流恒流源系统原理框图
第2章系统硬件各功能模块的设计
2.1主控模块的设计
2.1.1AT89C51单片机简介
单片机系统是整个数控直流恒流源系统的核心部分,它负责键盘处理、数据处理和实时调整输出电流。
主要包括AT89C51单片机、8位数/模转换芯片DAC0832、串行EEPROM AT24C01芯片、译码芯片74LS138及数码管驱动芯片74LS273等器件。
主控模块是以单片机为核心的一个单片机应用系统。
本系统采用ATMEL公司的AT89C51单片机,该型号单片机采用CMOS工艺,功耗低,因其与MCS-51单片机的完全兼容性、优良的工作性能、使用的灵活性以及较高的性价比成为AT89系列单片机的主流机型,在嵌入式控制系统中获得广泛应用[1]。
AT89C51单片机与Intel8051单片机在引脚排列、工作特性、硬件组成、指令系统等方面完全兼容,引脚排列如图2-1所示。
其主要工作特性为:
●内含4KB的Flash存储器,擦写次数达1000次;
●内含128字节的RAM;
●具有32根可编程I/O线;
●具有2个16位可编程定时器;
●具有6个中断源、5个中断矢量、2级优先权的中断结构;
●具有1个全双工的可编程串行通信接口;
●具有1个数据指针DPTR;
●两种低功耗工作模式,即空闲模式和掉电模式;
●具有可编程的3级程序锁定位;
●工作电源电压为5±1.2V,典型值为5V;
●最高工作频率为24MHz。
图2-1 AT89C51引脚排列(PDIP)
2.1.2D/A转换电路的设计
根据设计要求,所设计的直流恒流源应具有数控功能,输出电流为10~100mA,步进为1mA。
由于本设计的直流电流源为压控电流源,因此采用“单片机+D/A”的方式来实现数控功能最为合适。
根据指标要求,D/A转换芯片的位数至少为8位,故而选择8位的D/A转换芯片。
由于单片机接口资源充足,所以选择并行D/A转换芯片,以提高转换速度。
DAC0832是使用较多的一种8位D/A 转换芯片,其转换时间为1us,工作电压为+5V~+15V,基准电压为+5V[5]。
其引脚排列如图2-2所示。
各引脚功能如下:
●DI0~DI7:数据输入线,TTL电平,有效时间大于90ns;
●ILE:数据锁存允许控制信号输入线,高电平有效;
●CS:片选信号输入端,低电平有效;
●WR1:输入寄存器的写选通输入端,低电平有效;
●XFER:传送控制信号输入线,低电平有效;
●WR2:DAC寄存器写选通输入线,负脉冲有效;
●IOUT1:输出电流1,当输入数据为全1时,IOUT1最大;
●IOUT2:输出电流2,当输入数据为全1时,IOUT2最小;
●Rfb:运算放大器外接反馈电阻引线端;
●Vcc:芯片电源电压,其值为+5V~+15V;
●Vref:基准电压输入线,其值为-10V~+10V;
●AGND:模拟地,为模拟信号和基准电源的参考地;
●DGND:数字地,为工作电源地和数字逻辑地。
图2-2 DAC0832引脚排列
DAC0832利用WR1、WR2、ILE、XFER控制信号可以构成三种不同的工作方式,分别为直通方式、单缓冲方式和双缓冲方式[6]。
在本设计中,因为只有一路模拟量输出,所以采用单缓冲方式。
DAC0832与单片机的接口如图2-3所示。
图2-3 DAC0832单缓冲方式与单片机的接口电路
2.1.3 恒流源电路的设计
在本设计中,恒流源电路采用压控电流源来实现。
压控电流源的核心就是电压/电流(V/I )转换电路,主要由给定与比较放大单元、功率放大单元组成[7]。
其电路原理图如图2-4所示。
在输出回路中引入一个反馈电阻f R ,输出电流O I 经反馈电阻f R 得到一个反馈电压f V ,经3R 、4R 加到运算放大器的两个输入端。
由电路可知,其反相端和同相端的电压分别为)/()(41422R R R V V V V i n +-+=、)/(3221R R R V V p +=。
式中n V 为反相端的电压,p V 为同相端的电压,i V 为输入电压(来自D/A 输出)。
图2-4 电压/电流转换电路
对于运算放大器,有p n V V ≈,故有
)()/())/(1(32214144142R R R V R R R V R R R V i +=+++-
由于f V V V -=12,则
()()()()322141144111/R R R V R R R V R V R R R V f i +=+-++
若令Ω==k R R 10021,Ω==k R R 2043,则有5//14i i f V R R V V ==。
略去反馈回路的电流,则有)5/(/f i f f O R V R V I ==,可见当运算放大器增益足够大时,输出电流O I 与输入电压i V 成正比,其比值只决定于反馈电阻f R 而与负载电阻L R 的大小无关,因而具有恒流性能[8]。
当L R 在Ω100~0范围内时,输出电流O I 在mA 100~0直流范围内线性地与V 5~0直流输入电压相对应。
2.1.4 数据存储器的扩展
在本设计中由于只需要存储最后一次电流设定值,数据量少,所以扩展一片AT24C01芯片(引脚排列如图2-5所示)。
图2-5 AT24C01引脚排列
各引脚功能说明如下:
● A0、A1、A2:片选或页面选择地址输入; ● WP :写保护,用于硬件数据保护功能; ● SDA :串行数据输入/输出端;
● SCL :串行时钟端,用于对输入和输出数据的同步。
AT24C01芯片是由ATMEL 公司生产的串行电可擦除的可编程CMOS 只读存储器,其容量为1KB ,自定时周期包括自动擦除时间不超过10ms ,典型时间为5ms ,读写寿命达100万次,数据保存达100年,采用单一电压+5V ,低功耗工作电流1mA ,备用状态时只有10A μ[9]。
由于只用一片AT24CO1因而将A0~A2接地;WP 接到GND ,可以正常读写;串行时钟线SCL 和串行数据线SDA 分别与单片机I/O 口的P1.6、P1.7相连。
由于SCL 和SDA 管脚是漏级开路驱动,而单片机P1口内部有上拉电阻,因此可以直接与单片机连接。
AT24C01与单片机的接口电路如图2-6所示。
图2-6 AT24C01与单片机的接口电路
2.1.5 系统资源分配
在单片机应用系统设计中,常用的地址译码方法有两种,线选法和部分译码法。
线选法是直接以系统的几根高位地址线作为芯片的片选信号,把选定的地址线和芯片的片选端直接相连。
线选法的特点是连接简单,不必专门设计译码电路,但芯片占的存储空间不连续,并且地址空间利用率低,一般用于简单系统的扩展。
部分译码法是用译码器对系统的部分高位地址线进行译码,译码电路将地址空间划分若干块,其输出做为扩展芯片的片选信号。
这样既充分利用了存储空间,又避免了地址空间分散的缺点,还可以减少I/O 口线的占用。
在本设计中采用部分译码法为D/A 芯片和三个数码管提供地址译码信号,译码器采用74LS138(芯片引脚排列如图2-7所示)。
图2-7 74LS138引脚排列
单片机的15A 、WR 、14A 、13A 、12A 、11A 分别接74LS138的E3、2E 、
1E 、A 、B 、C 。
当115=A 、0=WR 、014=A 时单片机选通74LS138进行译码。
系统中各扩展芯片的地址见表2-1。
表2-1 系统资源地址分配表
2.2人机接口的设计
2.2.1键盘的设计
在本设计中的独立式键盘采用中断方式(如图2-8所示)。
当P1口外接的6个按键中任何一个按键被按下时,与之相连的输入线即被置为低电平,则会引起INT中断请求,CPU进入中断处理。
键盘分布如图2-9所示。
图2-8 键盘与单片机的接口电路
各按键功能说明如下: ● 设置键:进入设置状态;
● 加1键:在设置状态下,按一次数值加1; ● 减1键:在设置状态下,按一次数值减1; ● 左移位键:在设置状态下,按一次左移1位; ● 右移位键:在设置状态下,按一次右移1位;
● 确认键:在设置状态下,使设置电流值生效并退出设置状态。
图2-9 键盘分布
2.2.2显示电路的设计
本系统采用3个七段共阴极LED数码管作为显示器,其引脚排列如图2-10所示,其字符段码如表2-2所示。
LED数码管采用静态显示方式,数码管的共阴极点连接在一起接地。
为了使七段数码管的每一段的亮度一致,并避免工作电流过大而缩短数码管的寿命,在其公共端与地之间接入了一个限流二极管。
一片74LS273锁存器驱动一个LED数码管,只要把数据送给锁存器,则该位就能一直保持相应的显示符。
74LS273锁存器的CLK引脚接片选信号,LED数码管与单片
机的接口电路如图2-11所示。
表2-2 共阴极字符段码表
图2-10 LED数码管引脚排列
图2-11 LED数码管与单片机的接口电路
2.3系统抗干扰设计
2.3.1看门狗电路的设计
在实际应用中系统可能由于受到干扰而失控,引起程序跑飞,也可能使程序陷入“死循环”。
指令冗余技术、软件陷阱技术不能在任何情况下都使失控的程序摆脱“死循环”。
为保证系统的稳定工作,通常采用程序监视技术,即“看门狗”技术,使程序脱离“死循环”。
“看门狗”技术就是不断监视程序循环运行时间,若发现时间超过已知的循环设定时间,则认为系统陷入了“死循环”,然后强迫程序返回到上电复位的入口,使系统运行纳入正轨。
“看门狗”技术既可由硬件实现,也可由软件实现,还可以由两者结合来实现。
硬件“看门狗”技术实现方案主要有:
●由计数器构成的“看门狗”;
●由定时器构成的“看门狗”;
●由专门芯片构成的“看门狗”。
[10]
本设计采用第一种方案,由两片CD4020计数器构成的“看门狗”电路如图2-12所示,计数器CD4020为14位二进制计数器。
在本系统中,单片机晶振为6MHz,则ALE信号周期为1sμ。
U107计数器的Q14脚定时时间为ms
214=
⨯μ。
主程序在循环过程中,P3.5脚定时发出
1
16
s384
.
清0负脉冲使U108计数器Q4端输出为低电平,程序正常运行。
当程序进入“死循环”超过ms
218=
⨯μ时,Q4为高电平,使系统复位。
1
262
s144
.
图2-12 由计数器构成的看门狗电路
2.3.2电源供电系统的设计
在对电源进行设计时我采用直流稳压电源。
从系统对纹波电流的要求出发,我选择了用78系列集成三端稳压器构成的稳压电源。
其优点是:(1)可以进行预稳压,以提高输出电流对输入交流电源电压变化的稳定度;(2)为压控电流源电路提供具有稳压特性且纹波电流很小的高质量工作电源,以有效降低输出电流纹波系数[11]。
本系统需要四组电源,即+5V、±12V、+24V和为D/A转换芯片提供的+5V 基准电压电源。
220V交流电源经过电源变压器、整流滤波器和集成三端稳压器产生出系统所需的各种电源。
在本设计中采用以78系列三端固定输出集成稳压器为核心的稳压电源,另外加上保护电路。
为防止220V电源掉电后三端稳压器的输出电压高于输入电压,造成三端稳压器的损坏,在三端稳压器的输入端和输出端之间跨接了一个保护二
极管。
系统电源原理图如图2-13所示。
图2-13 系统电源电路
2.3.3 基准电压的设计
D/A 转换芯片是恒流源系统中的重要部分,D/A 输出电压值的精度直接影响恒流源系统输出电流值的精度。
D/A 输出电压值的精度不仅与二进制数码有关,还与基准电压ref V 有关。
在本设计中采用运算放大器OP07来产生所需的+5V 基准电压,而基准电压源则采用MC1403。
MC1403是美国摩托罗拉公司生产的高精确度、低温漂的基准电压源[10]。
基准电压电路如图2-14所示。
输入电压V V U i 15~5.4=,V U t 5000.2=(典型值)
,T α可达C o /10106-⨯。
输出电压()1f O R /R 15.2U +⨯=,其中f R 是负反馈电阻,1R 是反相输入端电阻。
当Ω==k R R f 201时,V U O 5=。
图2-14 基准电压电路
第3章控制软件的设计
3.1主程序的设计
在本系统中,主程序负责的工作有初始化系统、读写EEPROM、D/A转换及处理键盘。
主程序的循环部分是查询各个按键的标志位,并根据标志位的状态转到相应的按键处理程序。
由于系统启动后需要输出的电流为上次系统关闭时的电流设定值,因此当系统初始化之后则先执行一次读EEPROM子程序,然后执行D/A转换子程序输出电流。
主程序流程如图3-1所示。
3.1.1读写EEPROM子程序的设计
AT24C01存储器传输时序符合C
I2总线协议,要特别说明的是SCL要求的频率范围100kHz~400kHz,SDA的起始和停止时间为4.7s 。
只要时钟线为高电平,数据线都必须保持稳定,否则数据线上的变化会被当作“启动”或“停止”信号。
每个数据的传输都是由启动信号开始,停止信号结束。
在开始与停止信号之间传输的字节数由计算机决定,从理论上说对字节数没有限制[1]。
串行EEPROM读操作一般分两步进行:(1)单片机发出一个开始信号,通过写操作设置EEPROM的芯片地址和EEPROM存储单元地址。
(2)单片机重新发送一个开始信号,然后发送含读操作的控制字节;EEPROM发回应答信号后,要读取的数据就从SDA上输出。
串行EEPROM写操作可分为字节写和数据块写两种形式。
由于本系统需要写的数据不多,故采用字节写。
在这种方式下,单片机发出开始信号后,紧接着发送控制字节到SDA总线上,待EEPROM芯片发回一个应答信号后,单片机发出存储单元地址码,并被写入EEPROM片内的地址指针。
单片机接收到EEPROM发回的一个应答信号后,才发送1字节的数据,并把数据暂存入数据缓冲器。
EEPROM。