【摘要】本文介绍了以51系列单片机为控制单元,以数模转换器DAC0832输出参考电压,以该参考电压控制电压转换模块LM350的输出电压大小。该电路设计简单,应用广泛,精度较高等特点。
【关键词】单片机; DAC0832;场效应管恒流电路
一、 前 言
临近毕业之际,特以此设计告慰我留恋的大学生活,从此,我将从这里步入社会这所大学;从此,生活将掀开新的一页!
§1.1课题背景简介
电源技术尤其是数控电源技术是一门实践性很强的工程技术,服务于各行各业。电力电子技术是电能的最佳应用技术之一。随着数控电源在电子装置中的普遍使用,普通电源在工作时产生的误差,会影响整个系统的精确度。
单片机技术及电压转换模块的出现为精确数控电源的发展提供了有利的条件。新的变换技术和控制理论的不断发展,各种类型专用集成电路、数字信号处理器件的研制应用,到90年代,己出现了数控精度达到0.05V的数控电源,功率密度达到每立方英寸50W的数控电源。从组成上,数控电源可分成器件、主电路与控制等三部分。目前在电力电子器件方面,几乎都为旋纽开关调节电压,调节精度不高,而且经常跳变,稳定性差。
电源采用数字控制,具有以下明显优点:
1) 易于采用先进的控制方法和智能控制策略,使用电源模块的智能化程度更高,性能更完美。
控制灵活,系统升级方便,甚至可以在线修改控制算法,而不必改动硬件线路。
2) 控制系统的可靠性提高,易于标准化,可以针对不同的系统(或不同型号的产品),采用统一的控制板,而只是对控制软件做一些调整即可。
3) 系统维护方便,一旦出现故障,可以很方便地通过RS232接口或RS485接口或USB接口进行调试,故障查询,历史记录查询,故障诊断,软件修复,甚至控制参数的在线修改、调试;也可以通过MODEM远程操作。
4) 系统的一致性好,成本低,生产制造方便。由于控制软件不像模拟器件那样存在差异,所以,其一致性很好。由于采用软件控制,控制板的体积将大大减小,生产成本下降。
§1.2单片机最小系统
2 单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路。下面给出一个51单片机的最小系统电路图(图1):
1. 详细说明如下:
1) 复位电路:
由电容串联电阻构成,由图并结合"电容电压不能突变"的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定。典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位。一般教科书推荐C取10u,R取10K。原则就是要让RC组合可以在RST脚上产生不少于2个机周期的高电平。至于如何具体定量计算,可以参考电路分析相关书籍。
2) 晶振电路:
典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有
串口通讯的场合)/12MHz(产生精确的uS级时歇,方便定时操作),在本电路中,取12M。
3) 单片机:
一片AT89S51/52或其他51系列兼容单片机。对于31脚(EA/Vpp),当接高电平时,单片机在复位后从内部ROM的0000H开始执行;当接低电平时,复位后直接从外部ROM的0000H开始执行。
AT89C51单片机的共40个引脚功总共40个脚,电源用2个(Vcc和GND),晶振用2个,复位1个,EA/Vpp用1个,剩下还有34个。29脚PSEN,30脚ALE为外扩数据/程序存储器时才有特定用处,一般情况下不用考虑,这样,就只剩下32个引脚,它们是:
P0端口P0.0 - P0.7共8个;
P1端口P1.0 - P1.7共8个;
P2端口P2.0 - P2.7共8个;
P3端口P3.0 - P3.7共8个;
§1.3本课题所做的主要工作
本课题的主要工作:
? 12V直流稳压电源的设计;
? DC-DC开关电源的设计;
? 数码管显示电路的设计;
? 软件设计。
二、 12V直流稳压电源的设计
1.
稳压直流电源原理图
2 稳压直流电源原理框图
原理介绍
本次支流稳压电源的课程设计使用的是单个稳压芯片构成的电路,设计的稳压电源电路输出电压12V,最大输出电流15mA,内阻小于0.1K,纹波电压峰值小于5mV,电压调整率小于10mV. 电路由四部分组成:变压器、滤波电路、整流电路、稳压电路。
电路的四个组成部分由以下方式组成:变压部分选用15V输出的双线圈变压器构成;整流电路部分由4个IN4007二极管组成的桥式整流电路或整流桥构成;滤波电路部分由一个2200 电解电容构成;稳压电路部分由一个L7812CV稳压芯片和2个0.01 的电容组成的电路构成。
§4.4 AT89C51单片机最小化系统的测试
单片机的最小化系统是指单片机能正常工作所必须的外围元件,主要可以分成时钟电路和复位电路,我采用的是AT89C51芯片,它内部自带4K
一、 多功能数字温度计的硬件组成
§2.1AT89C51单片机工作原理
1. 单片机的雏形:
MCS-48单片机是美国INTE公司于1976年推出,它是现代单片机的雏形,包含了数字处理的全部功能,外接一定的附加外围芯片即构成完整的微型计算机,其主要的功能特征为:
8位CPU(中央处理器)、内置程序存储器(ROM)、随机存取数据存储器(RAM)和输入输出端口(I/O)全部集成在单一的芯片上而构成了完整的微型计算机。
1) 8位CPU。
2) 双列直插40PinDIP封装。
3) 所有指令均为1-2个机器周期。
4) 96条指令,大部分为单字节指令。
5) 2个工作寄存器。
6) 2个可编程定时/计数器。
7) 8层堆栈。
8) 单一+5V电源供电。使用6MHz外接石英晶体管振荡器,此时机器周期为2.5us。
2. 单片机的发展,MCS-48系列单片机:
8048和8748是最早期的产品,8048本身具有64x8位RAM,1kx8位的ROM,而后期的8049中的RAM大到256字节,ROM却增加到了4kBytes,这个成绩在当时是相当可喜的。还有一类的产品本身是不带程序存储器的,象8035和8039,它的程序存储器只能外接,当时常用的是EPROM(紫外线擦除电写只读程序存储器)一类的ROM。
MCS-48系列单片机还有几个产品,象8021和8022单片机,8021该系列中的低价型单片机,而8022则是包含了单片机所有功能,并集成了A/D转换器的产品。
现在MCS-48系列单片机已完全退出了历史舞台,由MCS-51系列单片机取而代之。
1.1. 数控电流源的研究意义
恒流源是模拟电路中的重要组成部分,它可以用作偏置、控制或驱动电路。传统电流镜电路通过调整偏置电阻大小来改变恒流源特性,单凭手动改变可变电阻的大小,在一些要求非线性、高精度、快速反应的场合难以实现精确控制,而且不能在功耗和性能之间取得平衡。此外,传统电流源很容易受到温度、电源电压等因素的影响。而采用微处理器能克服上述缺点,进行自动控制和手动监控,大大提高系统的精确度和反应速度。
2. 硬件系统总体设计 2.1. 方案比较
方案一:通过编码开关来控制存储器的地址;根据地址输出对应的数字量送数模(D/A)进行转换;再根据输出的电压量来控制电流的变化;同时;通过四个编码开关的BCD码送给4511及数码管显示。此方案的优点是电路原理简单,缺点是数据量大且存储器存储容量有限,在实验过程中发现编码开关不稳定,所以不宜采用[15]。其电路方框图如图2.3所示:
SHAPE * MERGEFORMAT
图2.3 方案一方框图
方案二:以89C52单片机做为主要控制单元,控制数字量输入并将其转换成模拟量输出同时单片机把预值的输出电流送数码管显示,再改变输出的电压量来控制电流的变化,此方案的优点是成本低,电路简单,可升级性强。所以在电路设计和制作中采用方案二。其电路方框图如图2.4所示:
SHAPE * MERGEFORMAT
图2.4 方案二方框图
2.2. 本系统的特点
在系统设计时充分考虑了系统的性价比,在电源模块采用了有源虑波,并且使用两个8位D/A来提高其分辨率,理论上系统可以输出五万多个电流值,且过能软件修正后可较准确的输出相应电流值,较以往的数控电流源大大提高。同时因引入益于有源虑波,将减小其输出纹波。
3. 硬件模块设计 3.1. 电源模块 3.1.1. 电源原理
稳压电源由电源变压器、整流电路、滤波电路和稳压电路组成,如图3.1
图3.1 电源方框及波形图
a 整流和滤波电路:整流作用是将交流电压U2变换成脉动电压U3。滤波电路一般由电容组成,其作用是脉动电压U3中的大部分纹波加以滤除,以得到较平滑的直流电压U4。
b 稳压电路:由于得到的输出电压U4受负载、输入电压 和 温度的影响不稳定,为了得到更为稳定电压添加了稳压电路,从而得到稳定的电压U0。
3.1.2. 电源方案确定
待选方案:
方案一:采用线性恒流电路,该方案具有噪声干扰小,电路简单,工作稳定的特点,但是由于功率器件工作于线性状态功率损耗大,发热较大,在满足设计要求时在极限条件下功率管的消耗功率接近20W。
方案二:采用开关恒流方式进行电流控制,由于功率管只工作于打开或者关闭状态,功率管损耗较低。发热量很小,但是由于开关管对强电流进行开关操作,干扰大大高于线性恒流源[2]。
结论:
作为试验仪器,在一般情况下对仪器的体积要求相对小于对仪器性能的要求,而“干净”的电源对于电流源来说非常重要,所以在设计中采用线性电流源方案,并在其基础上加入有源虑波,使得电源更为“干净”所以采用方案二。
3.1.3. 电源模块具体电路[1]
如图所示,其中+5 V给DAC0832供电以及单片机(AT89C52)、数码显示(包括74LS595)、键盘;-5V为DAC0832参考电压。由于设计的输出电流最大值为2000mA,而且取样电阻为1欧所以要求AD0832输出的电压至少为2伏,通过计算-5伏的电压可以实现上述要求。
提供的12V的电源用于LM358 . 由于为了保证电路的性能采用线性稳压、滤波方式,从电路的可靠性以及性价比考虑采用标准的7812扩流输出方案。
图3.2 电源原理图
3.1.4. 显示模块
74HC595为串行输入并行输出的移位寄存器,可以作为静态显示器接口,接在89C52的串行口上用于数码的显示[13]。数码显示模块如图所示。
图 3.4预值数码显示模块原理图
3.2. D/A电路
由于采用了粗调和细调分段控制,辅助以软件修正,可以较好地提高电流输出精度,从成本和元件采购方面综合考虑,采用DAC0832电路作为D/A转化电路
3.2.1. DAC0832简介[5]
DAC0832是一个8位D/A转换器芯片,单电源供电,从+5V~+15V均可正常工作,基准电压的范围为±10V,电流建立时间为1μs,CMOS工艺,低功耗20mA。其内部结构如图3.8所示,它由1个8位输入寄存器、1个8位DAC寄存器和1个8位D/A转换器组成和引脚排列如图所示。
图3.8 0832内部结构图 图3.9 DAC0832管脚图
该D/A转换器为20引脚双列直插式封装,各引脚含义如下:
(1)D7~D0——转换数据输入。
(2)CS——片选信号(输入),低电平有效。
(3)ILE——数据锁存允许信号(输入),高电平有效。
(4)WR1——第一信号(输入),低电平有效。该信号与ILE 信号共同控制输入寄存器是数据直通方式还是数据锁存方式:当ILE=1和XFER=0时,为输入寄存器直通方式;当ILE=1和WR1 =1时,为输入寄存器锁存方式。
(5) WR2 ——第2写信号(输入),低电平有效.该信号与信号合在一起控制DAC寄存器是数据直通方式还是数据锁存方式:当 WR2=0和XFER=0时,为DAC寄存器直通方式; 当WR2=1和XFER=0时,为DAC寄存器锁存方式。
(6)XFER——数据传送控制信号(输入),低电平有效 。
(7)Iout2——电流输出“1”。当数据为全“1”时,输出电流最大;为全“0”时输出电流最小。
(8)Iout2——电流输出“2”。
DAC转换器的特性之一是:Iout1 +Iout2=常数。
(9)Rfb——反馈电阻端
即运算放大器的反馈电阻端,电阻(15KΩ)已固化在芯片中。因为DAC0832是电流输出型D/A转换器,为得到电压的转换输出,使用时需在两个电流输出端接运算放大器,Rfb 即为运算放大器的反馈电阻,运算放大器的接法如图9.3所示。
(10)Vref——基准电压,是外加高精度电压源,与芯片内的电阻网络相连接,该电压可正可负,范围为-10V~+10V.
(11)DGND——数字地
(12)AGND——模拟地
DAC0832利用WR1 、 WR2 、ILE、XFER 控制信号可以构成三种不同的工作方式。
1) 直通方式—— WR1= WR2 =0时,数据可以从输入端经两个寄存器直接进入D/A转换器。
2)单缓冲方式—— 两个寄存器之一始终处于直通,即WR1=0或WR2=0,另一个寄存器处于受控状态。
3)双缓冲方式—— 两个寄存器均处于受控状态。这种 工作方式适合于多模拟信号同时输出的应用场合。
3.2.2. 实际电路设计
由于DAC0832内部带有一个8位的寄存器,所以DAC0832 的数据输入线可以直接与微机系统数据总线相连。XFER和WR2接地,即DAC0832内部第二级缓冲器接成直通式,只由第一级缓冲器控制数据的输入,当CS和WR1同时有效时,的数据送入其内部的D/A转换电路进行转换,所以在设计中采用直通方式。电路图如3.10所示。
图3.10 D/A转化电路
其中Vx、Vy分别为粗调和精调电压输出.
3.2.3. 压控产生电路[4]
该电路由两个运算放大器组成,对Vx、Vy进行 Vout=Vx+0.005*Vy 运算,这样一来控制精度理论上可以达到1/51200,达到较高精度控制的目的,如电路如图3.12所示:
图3.12 控制电压产生电路
其中U10a用于运算,U10b用于缓冲及其滤波,假定Vy有干扰源引进,该电路对于高频干扰具有较好的抑制性,这对提高电流源的输出性能具有一定的帮助。
3.3. 电流输出模块
利用恒流源电路组成原理 ,运放的输出端通过三极管与反向输出端相连,构成负反馈电路,由于运放的同相输入端与反相输入端在理论上是虚短的,且运放的输入电阻无穷大,因此反相端和同相端的电位相等,即,又由于三极管的发射极与集电极电流仅相差微小的基极电流,可视为两者相等即。因此可以通过改变同相输入端的电压来调整输出电流的大小。
例如:时,
同时R2也是负反馈电阻,当电路电流受外界影响而减小的时候,R2的端电压也随之降低,三极管的Ibe也会上升。
由于三极管的驱动电流较大,在试验中输出电流偏小,达不到要求精度,所以采用方案二,用场效应管代替三极管输出,与三极管相比场效应管具有驱动电流小,电流噪声底,输出电流大的特点[9]。
3.3.1. 实际电路图
在考虑得性价比基础上设计了电流输出模块,电路原理图如图3.13所示
图3.13电流输出原理图
3.4. 单片机控制部分 3.4.1. AT89C52单片机系统及外围电路[8]
主要控制单元芯片选择最常见的ATMEL公司的AT89C52单片机。此单片机与MCS-51产品指令系统完全兼容,由8K字节可重擦写Flash闪速存储器,256*8字节内部RAM,32个可编程I/O口线,2个16位定时/计数器和6个中断源。并且该单片机经济实用,使用广泛。
3.4.2. 单片机时钟脉冲电路
AT89C52单片机的最高时钟脉冲频率已经达到了24MHz ,它内部已经具备了振荡电路,只要在AT89C52的两个引脚(即19、18脚)连接到简单的石英振荡晶体的2端即可,晶体的2个管脚也要用30pF的电容耦合到地。
3.4.3. 复位电路
89C52的复位引脚(Reset)是第9脚,当此引脚连接高电平超过2个机器周期,即可产生复位的动作。以12MHz的时钟脉冲为例,每个时钟脉冲为1μs,两个机器周期为2μs,因此,在第9脚上连接一个4μs的高电平脉冲,即可产生复位动作。最简单的就是只要一个电阻跟一个电容的复位电路。
3.4.4. 主控部分具体电路[12]
图3.19主控电路原理图
4. 软件系统设计 4.1. 软件系统组成
相对来说本设计的软件系统较为简单,采用串口通信方式,程序清单见(附录二)主流程图如图2.4所示
SHAPE * MERGEFORMAT
图4.1软件主流程图
4.2. 软件各个模块[11]
数据处理以及显示模块其具体流程图如4.2图所示,
SHAPE * MERGEFORMAT
图4.2数据处理以及显示模块其具体流程图
按键处理程序模块如图4.3所示:
SHAPE * MERGEFORMAT
图4.3按键处理程序流程图
4.3. 数值处理
考虑到运算放大器的工作点偏差问题输出控制采用链表方式,调整电路使得在两个D/A均为最大输出时,输出电流为2000mA,然后递减粗调和细调D/A同时用高精度电流表检测电流,当调整到合适的电流时即将输出状态记录,并与输出电流相关联,从而修正D/A线性,运算放大器静态电流等问题造成的偏差,同时在加入温度探测电路以后可以方便的对温度影响进行补偿。系统具有良好的可升级性。
键盘对单片机输入数据,(所要得到的电流值),单片机将得到的数据进行转化成D/A转换器AD0832所需要的数字信号。
假设键盘输入的电流值为I,由于AD0832为8位的D/A转换器,待转换的数字信号最大值为2^ 8-1=255,考虑到数值连续性问题细调D/A只采用200档,所以该系统最大分辨率为255*200=51000,在最大输出电流为2000mA时分辨率为2000/51000,小于0.1mA。
5. 系统调试结果 5.1. 软件程序调试
由于89C52的汇编指令与MCS-51完全兼容,所以仿真平台使用无锡达爱思科教仪器厂的Dais系列教学实验系统。首先打开计算机和实验箱,把已经编写好的程序输入。选择MSC-51单片机实验系统,在设定好串口和波特率等参数后,进入连机操作模式,电脑显示屏上出现集成开发环境的系统界面。在文件菜单下选择打开文件,选择要编译的ASM文件,然后进行编译连接装载。结果编译出现错误,经过逐段排查发现键盘的程序调用超出字节范围和复位程序的语法有错,修改后编译成功。
5.2. 硬件实物调试
1.测试仪器
双踪示波器,数字示波器,万用表
2.指标测试
输出电流范围:20mA-2000mA
可以通过按键设置电流值,并且实际输出值与给定值之间的偏差<=给1%+10mA。
具有“+”“-”步进调整功能,步进电流<10mA。
本设计要求输出电流范围为1mA—2000mA,将模拟量转换为数字量送给模数转换电路;然后输出模拟量。
5.2.1. 减小电源纹波
由于电源电路存在纹波,必须尽量减小纹波系数,本设计采用措施有:
ⅰ电源大面积共地(注意大电流与小电流不能共地)
ⅱ在整流桥后加大电容虑波,本设计采用约为22000
ⅲ 为了避免纹波电压对电路的干扰而产生的纹波电流,所以在设计加入了有源滤波电路。如图5.1。
图5.1有源虑波电路
5.2.2. 测试纹波电流
本设计要求纹波电流小于0.5毫安,根据恒流源模块电路,用低频交流毫伏表测采样电阻(康铜丝绕制而成,由于该电路为直流电路没交流成分,所以不会产生感抗)两端的电压,通过公式:纹波电流(Iw) = 纹波电压(Uw)/采样电阻(100欧).
5.3. 误差分析
从设计原理出发是可以看出系统输出电流具有较高的准确性,这与加入有源虑波的所提供的高稳定电源,以及双D/A所带来的高分辨率的参考电压值有关,但是由于在电路设计初期没有充分考虑地线的干扰,还有可能是电路焊接时产生了虚焊,而且有些焊点存在毛刺,几个功能模块组合在一起出现问题等等,使得无法达到预期的效果,在今后的设计中需要进一步改进。
6. 结论
在参考传统电流源以及普通数控电流源的基础上,在考虑性价比的同时较大地提高数控电流源的准确性,加上用软件修正以后在提高了电流源的在使用普通元件情况下的性能水平,同时高分辨率的参考电压源也为系统的进一步扩展提供了一个良好的硬件平台。但是也应为采用软件修正的缘故,该设计在软件编写的时候需要测量大量的数据,给系统测试带来很大的不便,在今后的设计中将考虑设计该款电流源的数据自动生成系统,在条件允许的情况下,加入温度探头在不同的温度下采用不同的修正方案使得该系统的热稳定性将进一步提高。
参考文献:
[1] 童诗白. 模拟电子技术基础[M]. 北京: 高等教育出版社, 1988, 223-232
[2] 户川治朗. 实用电源电路设计[C]. 北京: 科学出版社, 2006, 32-36
[3] 杜怀昌,肖怀宝,黄玲玲.CMOS集成电路原理与应用[M],2006,157-160
[4] 陈凯良,竺树声. 恒流源及其应用电路[M]. 浙江: 浙江科学技术出版社,1992,67-68,106-108
[5] DAC0832的中文资料手册[EB/OL]
[6] 郝文化.Protel DXP电路原理图与PCB设计[M].北京:机械工业出版社,2004
[7] 张有顺.MCS-51/96系列单片机简明教程[M].北京:中国脊梁出版社,1998,77-80
[8] AT89S52中文资料手册[EB/OL]
[9] 何燕飞.恒流源综述[J].益阳:益阳师专学报,2002
[10] 张立科.单片机通信技术与工程实践[M].北京:人民邮电出版社,2005
[11] 楼然苗,李光飞.51系列单片机设计实例[M].北京:北京航空航天大学出版社,2003
[12] 黄惠媛,李润国.单片机原理与接口技术[M].北京:海洋出版社,2006,55-56
[13] 赵负图.数安逻辑集成电路手册[M].北京:化学工业出版社,2004
[14] http://hi.baidu.com/ic2008/blog/item/d2169c33d0e3d641ac4b5f4d.html[EB/OL]
[15] http://blog.21ic.com/user1/2695/archives/2006/16336.html[EB/OL
A electric current source of machine control based
On single-chip microcomputer
【Abstract】 Progress unremittingly the request to the electronics instrument technically to also raise continuously along with the electronics, the power supply is the motive source of the electric circuit to play a more and more important role more, is the school a laboratory still repair centerses to all can not get away from an experiment power supply in spite of, however the traditional power supply is control accuracy or output the tops of the characteristic in spite of and can't satisfy a request.
Along with single slice machine technical of develop continuously with the D/A, the A/D is technical continuously the maturity make the number control power supply to make possible, count to control the electric current source and is control accuracy in spite of still on the maneuverability all there is traditional power supply can't compare to of advantage.
This text in making reference to the foundation that the traditional electric current source and common number control the electric current source, at the full consideration price compare of in the meantime raised a number to control the accuracy of the electric current source biggest, pass the software correction hereafter while use the circumstance of the common component the number controls the electric current source of the function also comes to a higher level.
【Key words】 MSC-52; DAC0832;D/A converter
附录一:
1. 电源模块PCB图
2. 电流输出模块PCB图
附录二:系统程序清单
ORG 0000H
JMP START
START: MOV SCON,#00H
MOV 23H,#00H
MOV 24H,#00H
BACK: MOV A,24H
CJNE A,#00H,CL
MOV DPTR,#DATAB0
JMP TZ
CL: CJNE A,#01H,CL1
MOV DPTR,#DATAB1
JMP TZ
CL1: CJNE A,#02H,CL2
MOV DPTR,#DATAB2
JMP TZ
CL2: CJNE A,#03H,CL3
MOV DPTR,#DATAB3
JMP TZ
CL3: CJNE A,#04H,CL4
MOV DPTR,#DATAB4
JMP TZ
CL4: CJNE A,#05H,CL5
MOV DPTR,#DATAB5
JMP TZ
CL5: CJNE A,#06H,CL6
MOV DPTR,#DATAB6
JMP TZ
CL6: CJNE A,#07H,CL7
MOV DPTR,#DATAB7
JMP TZ
CL7: CJNE A,#08H,CL8
MOV DPTR,#DATAB8
JMP TZ
CL8: CJNE A,#09H,START
MOV DPTR,#DATAB9
TZ: MOV A,23H
MOVC A, @A+DPTR
MOV 20H,A
MOV A,24H
CJNE A,#00H,CHL
MOV DPTR,#DAHTAB0
JMP THZ
CHL: CJNE A,#01H,CHL1
MOV DPTR,#DAHTAB1
JMP THZ
CHL1: CJNE A,#02H,CHL2
MOV DPTR,#DAHTAB2
JMP THZ
CHL2: CJNE A,#03H,CHL3
MOV DPTR,#DAHTAB3
JMP THZ
CHL3: CJNE A,#04H,CL4
MOV DPTR,#DAHTAB4
JMP THZ
CHL4: CJNE A,#05H,CL5
MOV DPTR,#DAHTAB5
JMP THZ
CHL5: CJNE A,#06H,CL6
MOV DPTR,#DAHTAB6
JMP THZ
CHL6: CJNE A,#07H,CL7
MOV DPTR,#DAHTAB7
JMP THZ
CHL7: CJNE A,#08H,CL8
MOV DPTR,#DAHTAB8
JMP THZ
MOV DPTR,#DAHTAB9
THZ: MOV A,23H
MOVC A,@A+DPTR
MOV 21H,A
CALL BCD
CLR P1.7
MOV A,20H
CALL SEND
MOV A,21H
CALL SEND
MOV A,26H
MOV R4,#0F0H
ANL A,R4;
RR A
RR A
RR A
RR A
MOV R0,A
CALL SEG
MOV A,26H
MOV R4,#0FH
ANL A,R4
MOV R0,A
CALL SEG
MOV A,25H
MOV R4,#0F0H
ANL A,R4;
RR A
RR A
RR A
RR A
MOV R0,A
CALL SEG
MOV A,25H
MOV R4,#0FH
ANL A,R4
MOV R0,A
CALL SEG
CALL DL
MOV P1,#0FFH
MOV 22H,P1
CALL DL
MOV P1,#0FFH
MOV A,P1
CJNE A,22H,KEYL4
CJNE A,#11111110B,KEYL1
CALL KEY1
KEYL1: CJNE A,#11111101B,KEYL2
CALL KEY2
KEYL2: CJNE A,#11111011B,KEYL3
CALL KEY3
KEYL3: CJNE A,#11110111B,KEYL4
CALL KEY4
KEYL4: JMP BACK
KEY1: MOV P1,#0FFH
MOV A,P1
CJNE A,#0FFH,KEY1
INC 24H
RET
KEY2: MOV P1,#0FFH
MOV A,P1
CJNE A,#0FFH,KEY2
DEC 24H
RET
KEY3: MOV P1,#0FFH
MOV A,P1
CJNE A,#0FFH,KEY3
MOV A,23H
CJNE A,#99,K1
INC 24H
MOV 23H,#0FFH
K1: INC 03H
RET
KEY4: MOV P1,#0FFH
MOV A,P1
CJNE A,#0FFH,KEY4
MOV A,23H
CJNE A,#00H,K2
DEC 24H
MOV 23H,#00H
K2: DEC 23H
RET
SEGTAB: DB 03H,9FH,25H,0DH,99H,49H,41H,1FH
DATAB0: DB 03H,9FH,25H,0DH,99H,49H,41H,1FH
DATAB1: DB 03H,9FH,25H,0DH,99H,49H,41H,1FH
DATAB2: DB 03H,9FH,25H,0DH,99H,49H,41H,1FH
DATAB3: DB 03H,9FH,25H,0DH,99H,49H,41H,1FH
DATAB4: DB 03H,9FH,25H,0DH,99H,49H,41H,1FH
DATAB5: DB 03H,9FH,25H,0DH,99H,49H,41H,1FH
DATAB6: DB 03H,9FH,25H,0DH,99H,49H,41H,1FH
DATAB7: DB 03H,9FH,25H,0DH,99H,49H,41H,1FH
DATAB8: DB 03H,9FH,25H,0DH,99H,49H,41H,1FH
DATAB9: DB 03H,9FH,25H,0DH,99H,49H,41H,1FH
DAHTAB0:DB 03H,9FH,25H,0DH,99H,49H,41H,1FH
DAHTAB1:DB 03H,9FH,25H,0DH,99H,49H,41H,1FH
DAHTAB2:DB 03H,9FH,25H,0DH,99H,49H,41H,1FH
DAHTAB3:DB 03H,9FH,25H,0DH,99H,49H,41H,1FH
DAHTAB4:DB 03H,9FH,25H,0DH,99H,49H,41H,1FH
DAHTAB5:DB 03H,9FH,25H,0DH,99H,49H,41H,1FH
DAHTAB6:DB 03H,9FH,25H,0DH,99H,49H,41H,1FH
DAHTAB7:DB 03H,9FH,25H,0DH,99H,49H,41H,1FH
DAHTAB8:DB 03H,9FH,25H,0DH,99H,49H,41H,1FH
DAHTAB9:DB 03H,9FH,25H,0DH,99H,49H,41H,1FH
END
附录三:实物照片