基于数控直流稳压电源设计.pdf

上传人:l**** 文档编号:82092619 上传时间:2023-03-24 格式:PDF 页数:47 大小:1.97MB
返回 下载 相关 举报
基于数控直流稳压电源设计.pdf_第1页
第1页 / 共47页
基于数控直流稳压电源设计.pdf_第2页
第2页 / 共47页
点击查看更多>>
资源描述

《基于数控直流稳压电源设计.pdf》由会员分享,可在线阅读,更多相关《基于数控直流稳压电源设计.pdf(47页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、 题目:基于数控直流稳压电源设计 任务与要求:设计以 AT89S52 单片机为主控制器,通过键盘来设置直流电源的输出电压,分析了该系统的原理,阐述了该系统的设计方案及工作流程,并给出了硬件和软件设计,经过 D/A 转换器(AD0832)输出模拟量,再经运算放大器隔离放大,控制输出功率管的基极,随着功率管基极电压的变化而输出不同的电压,数控直流稳压电源设计的系统仿真调试,验证了方案的可行性。摘 要 本系统以直流电压源为核心,AT89S52 单片机为主控制器,通过键盘来设置直流电源的输出电压,设置步进等级可达 0.1V,输出电压范围为 09.9V,最大电流为330mA,并可由液晶屏显示实际输出电压

2、值。系统有过流保护电路,当输出电流过大时功率管自动截至,而且有红色指示灯发出警报。系统中的 ADC0832 为 8 位分辨率 A/D 转换芯片,其最高分辨可达 256 级,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在 05V 之间。芯片转换时间仅为 32S,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。通过 DI 数据输入端,可以轻易的实现通道功能的选择。本系统由单片机程控输出数字信号,经过 D/A 转换器(AD0832)输出模拟量,再经过运算放大器隔离放大,控制输出功率

3、管的基极,随着功率管基极电压的变化而输出不同的电压。实际测试结果表明,本系统实际应用于需要高稳定度小功率恒压源的领域。关键词:直流稳压电源 单片机 数字控制 1 目 录 第一章 绪言.2 第二章 数控直流稳压电源设计原理.3 第一节 总体方案框图设计原理.3 第二节 总体电路图设计原理.4 第三章 硬件电路设计.5 第一节 稳压输出部分.5 第二节 数字控制部分.7 第三节 串行接口.13 第四节 并行接口.14 第四章 系统的软件设计.16 第一节 系统总电路软件实现流程图设计.16 第二节 系统总程序设计.17 第五章 电源测试结果与分析.42 第一节 电压测试数据与分析.42 第二节 性

4、能测试数据与分析.43 结 束 语.44 谢 辞.45 参考文献.46 2 第一章 绪言 几乎所有的电子设备都需要稳定的直流电源,因此直流稳压电源的应用非常的广泛。直流稳压电源的电路形式有很多种,有串联型、开关型、集成电路、稳压管直流稳压电源等等。在电子设备中,直流稳压电源的故障率是最高的(长期工作在大电流和大电压下,电子元器件很容易损坏)但在直流稳压电源中,通过整流、滤波电路所获得的直流电源的电压往往是不稳定的。输出电压在电网电压波动或负载电流变化时也会随之有所改变。电子设备电源电压不稳定,将会引的起很多问题。设计出质量优良的直流稳压电源,才能满足各种电子线路的要求。因此直流稳压电源的研究就

5、颇为重要。目前产生直流稳压电源的方法大致分为两种:一种是模拟方法,另一种是数字方法。前者的电路均采用模拟电路控制,而后者则是通过数字电路进行自动控制。直流稳压电源朝着数字化方向发展。因此对于数控恒压源的研究是必要的。随着科学技术飞速发展,对电源可靠性、输出精度和稳定性要求越来越高,利用 D/A 转换器的高分辨率和单片机的自动检测技术设计程控电源就显示出其优越性。程控电源既能方便输入和选择预设电压值又具有较高精度和稳定性,而且可以任意设定输出电压或电流,所有功能由面板上的键盘控制单片机实现,给电路实验带来极大的方便,提高了工作效率。3 第二章 数控直流稳压电源设计原理 采用 AT89S52 单片

6、机作为整机的控制单元,通过改变 DAC0832 的输入数字量来改变输出电压值,从而使输出功率管的基极电压发生变化,间接地改变输出电压的大小。为了能够使系统具备检测实际输出电压值的大小,可以将输出电压经过ADC0832进行模数转换,间接用单片机实时对电压进行采样,然后进行数据处理及显示。此系统比较灵活,采用软件方法来解决数据的预置以及电压的步进控制,使系统硬件更加简洁,各类功能易于实现。第一节 总体方案框图设计原理 系统总体方案框图如图 2-1 所示:图 2-1 系统原理框图 4 第二节 总体电路图设计原理 系统以直流电压源为核心,AT89S52 单片机为主控制器,通过键盘来设置直流电源的输出电

7、压,设置步进等级可达 0.1V,输出电压范围为 09.9V,最大电流为 330mA,并可由液晶屏显示实际输出电压值。系统有过流保护电路,当输出电流过大时功率管自动截至,而且有红色指示灯发出警报。本系统由单片机程控输出数字信号,经过D/A 转换器(AD0832)输出模拟量,再经过运算放大器隔离放大,控制输出功率管的基极,随着功率管基极电压的变化而输出不同的电压。利用 D/A 转换器的高分辨率和单片机的自动检测技术设计程控电源就显示出其优越性。程控电源既能方便输入和选择预设电压值又具有较高精度和稳定性,而且可以任意设定输出电压或电流,所有功能由面板上的键盘控制单片机实现。系统总体电路图如图 2-2

8、 所示:图 2-2 系统总体电路图 5 第三章 硬件电路设计 第一节 稳压输出部分 一、稳压输出原理与电路 这部分将数控部分送来的电压控制字转换成稳定电压输出。D/A 转换部分的输出电压作为稳压输出电路的参考电压。稳压输出电路的输出与参考电压成比例。稳压输出电路采用的是串联式反馈稳压电路(如图 3-1),在电路中,Q1TIP122 为调整管,U6ALM358 为比较放大器,R19、R22 组成反馈网络。D/A 转换电路的输出电压 DAOUT接到 U6A 的同向端,稳压电源的输出经 R19、R22 组成的取样电路分压后送到运放U6A 的反向端,经运放比较放大后,驱动调整管 Q1。路平衡时,D/A

9、 电路的输出电压 与取样后的电压 相等。稳压输出部分的过流保护电路由 R21 和 Q2 组成。设 为保护动作电流,则当电源输出电流 I 增加到 时,R21 上的压降*R21 使得 Q2 管导通,分掉了 Q1上的基极电流,使输出 I 不再增加,起到了过流保护作用。图 3-1 稳压输出部分 6 二、稳压输出部分仿真图 图 3-2 稳压电路仿真图 一般的直流稳压电源是用可变电阻来实现输出电压的调节,那么要在直流稳压电源的基础上实现数字控制的话,实际上很简单,我们只要将可变电阻换成数字控制部分来代替,就能实现数控恒压源这一课题。所以,首先要做的,就是选择合适的稳压输出电路并对其可行性进行了仿真。如上图

10、 3-2,很容易就验证了此稳压输出电路的可靠。7 第二节 数字控制部分 一、单片机部分 单片机控制部分原理图如下图 3-3:图 3-3 单片机控制部分 控制部分是系统整机协调工作和智能化管理的核心部分,采用 AT89S52 单片机实现控制功能是其关键,采用单片机不但方便监控,并且大大减少硬件设计。注释:AT89S52 单片机一些功能可以用 AT89C52 单片机互换。二、D/A 转换部分 系统设置 D/A 转换接口,采用 8 位模数转换器 DAC0832。其电路如图 3-4:8 图 3-4 D/A 转换部分 D/A 转换部分的输出电压作为稳压输出电路的参考电压。稳压输出电路的输出与参考电压成比

11、例。8位字长的D/A转换器具有256种状态。当电压控制字从 0,1,2,到 256 时,电源输出电压为 0.0,0.06,15.0。其时序图如图 3-5:图 3-5 DAC0832 数模转换时序图 CLK 为时钟端,Data 为输入数据,LOAD 为输入控制信号。每路电压输出值的计算:REF 为参考电压,DATA 为输入 8 位的比特数据;9 我们这里用的 REF=5v;三、A/D 转换部分 A/D 转换部分我们采用美国国家半导体公司生产的一种 8 位分辨率、双通道 A/D转换芯片 ADC0832。其电路图如图 3-6 所示:图 3-6 A/D 转换部分 ADC0832 是美国国家半导体公司生

12、产的一种 8 位分辨率、双通道 A/D 转换芯片。由于它体积小,兼容性,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。学习并使用 ADC0832 可是使我们了解 A/D 转换器的原理,有助于我们单片机技术水平的提高。ADC0832 具有以下特点:8 位分辨率。双通道 A/D 转换。输入输出电平与 TTL/CMOS 相兼容。5V 电源供电时输入电压在 05V 之间。10 工作频率为 250KHZ,转换时间为 32S。一般功耗仅为 15mW。8P、14PDIP(双列直插)、PICC 多种封装。商用级芯片温宽为 0C+70C,工业级芯片温宽为 40C+85C。芯片接口说明:CS_

13、片选使能,低电平芯片使能。CH0 模拟输入通道 0,或作为 IN+/-使用。CH1 模拟输入通道 1,或作为 IN+/-使用。GND 芯片参考 0 电位(地)。DI 数据信号输入,选择通道控制。DO 数据信号输出,转换数据输出。CLK 芯片时钟输入。Vcc/REF 电源输入及参考电压输入(复用)。ADC0832 为 8 位分辨率 A/D 转换芯片,其最高分辨可达 256 级,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在 05V 之间。芯片转换时间仅为 32S,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多

14、器件挂接和处理器控制变的更加方便。通过 DI 数据输入端,可以轻易的实现通道功能的选择。单片机对 ADC0832 的控制原理:正常情况下 ADC0832 与单片机的接口应为 4 条数据线,分别是 CS、CLK、DO、DI。但由于 DO 端与 DI 端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将 DO 和 DI 并联在一根数据线上使用。当 ADC0832 未工作时其 CS 输入端应为高电平,此时芯片禁用,CLK 和 DO/DI 的电平可任意。当要进行 A/D 转换时,须先将 CS 使能端置于低电平并且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟输

15、入端 CLK 输入时钟脉冲,DO/DI 端则使用 DI 端输入通道功能选择的数据信号。在第 1 个时钟脉冲的下沉之前 DI 端必须是高电平,表示启始信号。在第 2、3 个脉冲下沉之前 DI 端应输入 2 位数据用于选择通道功能。其时序图如图 3-7:11 图 3-7 ADC0832 时序表 如图所示,当此 2 位数据为“1”、“0”时,只对 CH0 进行单通道转换。当 2 位数据为“1”、“1”时,只对 CH1 进行单通道转换。当 2 位数据为“0”、“0”时,将CH0 作为正输入端 IN+,CH1 作为负输入端 IN-进行输入。当 2 位数据为“0”、“1”时,将 CH0 作为负输入端 IN

16、-,CH1 作为正输入端 IN+进行输入。到第 3 个脉冲的下沉之后 DI 端的输入电平就失去输入作用,此后 DO/DI 端则开始利用数据输出 DO 进行转换数据的读取。从第 4 个脉冲下沉开始由 DO 端输出转换数据最高位 DATA7,随后每一个脉冲下沉 DO 端输出下一位数据。直到第 11 个脉冲时发出最低位数据 DATA0,一个字节的数据输出完成。也正是从此位开始输出下一个相反字节的数据,即从第11 个字节的下沉输出 DATD0。随后输出 8 位数据,到第 19 个脉冲时数据输出完成,也标志着一次 A/D 转换的结束。最后将 CS 置高电平禁用芯片,直接将转换后的数据进行处理就可以了。键

17、盘部分:由于要实现人机对话,要显示 09.9V 的电压值,我们自制 3*4 按键的键盘来完成整个系统控制。电路原理如图 3-8 所示。12 图 3-8 键盘与显示电路图 按键的具体意义如下表 3-1 示:表 3-1 实验数据 显示部分:本方案采用 YM12864 型 LCD,可直接显示 4*8 个汉字,界面友好,支持串并行两种连接方式,其电路连接如图 3-9 所示:1 2 3 4 5 6 7 8 9 0*ENTER 13 图 3-9 LCD12864 与单片机连接图 YM12864 是一种具有 4 位/8 位并行、2 线或 3 线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液

18、晶显示模块;其显示分辨率为 12864,内置 8192 个 16*16 点汉字,和 128 个 16*8 点 ASCII 字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示 84 行 1616 点阵的汉字。也可完成图形显示。第三节 串行接口 LCD12864 用于串行接口时部分引脚的名称及功能如下表3-2 示:表 3-2 串行接口时部分引脚的名称及功能 管脚号 名称 LEVEL 功能 1 VSS 0V 电源地 2 VDD+5V 电源正(3.0V-5.5V)14 3 VO-对比度(亮度)调整 4 CS H/L 模组片选端,高电平有效 5 SID H/L

19、 串行数据输入端 6 CLK H/L 串行同步时钟:上升沿石读取 SID 数据 15 PSB L L:串口方式(见注释1)17/REST H/L 复位端,低电平有效(见注释 2)19 A VDD 背光源电源+5V(见注释 3)20 K VSS 背光源负端 0V(见注释 3)注释 1:如在实际应用中仅使用串口通讯模式,可将 PSB 接固定低电平,也可以将模块上的 J8 和“GND”用焊锡短接。注释 2:模块内部接有上电复位电路,因此在不需要经常复位的场合可将该端悬空。注释 3:如背光和模块共用一个电源,可以将模块上的 JA、JK 用焊锡短接。第四节 并行接口 LCD12864 用于并行接口时各个

20、引脚的名称及功能如下表3-3 示:表 3-3 并行接口时各个引脚的名称及功能 管脚号 管脚名称 电平 管脚功能描述 1 VSS 0V 电源地 2 VCC 3.0+5V 电源正 3 V0-对比度(亮度)调整 4 RS(CS)H/L RS=“H”,表示 DB7DB0 为显示数据 RS=“L”,表示 DB7DB0 为显示指令数据 5 R/W(SID)H/L R/W=“H”,E=“H”,数据被读到 DB7DB0 R/W=“L”,E=“HL”,DB7DB0 的数据被写到 IR 或 DR 6 E(SCLK)H/L 使能信号 15 7 DB0 H/L 三态数据线 8 DB1 H/L 三态数据线 9 DB2

21、H/L 三态数据线 10 DB3 H/L 三态数据线 11 DB4 H/L 三态数据线 12 DB5 H/L 三态数据线 13 DB6 H/L 三态数据线 14 DB7 H/L 三态数据线 15 PSB H/L H:8 位或 4 位并口方式,L:串口方式(见注释 1)16 NC-空脚 17/RESET H/L 复位端,低电平有效(见注释 2)18 VOUT-LCD 驱动电压输出端 19 A VDD 背光源正端(+5V)(见注释 3)20 K VSS 背光源负端(见注释 3)*注释 1:如在实际应用中仅使用并口通讯模式,可将 PSB 接固定高电平,也可以将模块上的 J8 和“VCC”用焊锡短接。

22、*注释 2:模块内部接有上电复位电路,因此在不需要经常复位的场合可将该端悬空。*注释 3:如背光和模块共用一个电源,可以将模块上的 JA、JK 用焊锡短接。16 第四章 系统的软件设计 第一节 系统总电路软件实现流程图设计 总电路软件实现流程图如图 4-1 示:图 4-1 总电路实现流程图 程序见后面第四章第二节。17 第二节 系统总程序设计 本程序是设计的一个数控恒压源,先用一个 3*4 的键盘输入,所用的电压,再通过 DAC0832 输出电压。再采用一个 ADC0832;将电压读回单片机,单片机再采用一片LCD 串口显示出来。以下接口定义根据硬件连线更改:ADCS BIT P2.5 ;使能

23、接口 ADCLK BIT P2.4 ;时钟接口 ADDO BIT P2.3 ;数据输出接口(复用)ADDI BIT P2.3 ;数据输入接口 CS BIT P3.0 ;H=DATA,L=COM SID BIT P3.1 ;H=READ,L=WRITE SCLK BIT P3.6 KEYBUF EQU 30H COM EQU 41H ;控制字暂存单元 DAT EQU 42H ;显示数据暂存单元 CODER EQU 43H ;字符代码暂存单元 ADDR EQU 44H ;地址暂存单元 ORG 0 LJMP START ORG 3 LJMP KEYSCAN 18 ORG 30H START:MOV

24、SP,#90H LCALL DEL_40MS LCALL INI MOV 70H,#00H MOV 71H,#00H MOV 34H,#02 ;装入通道功能选择数据值 SETB IT0 SETB EX0 MOV P1,#0FH ;将P1口低4位设为输入,高 4 位清零 SETB EA MOV KEYBUF,#00H ;起初输出 0V 电压 MOV R2,#01H ;置送数时送数空间不同的标志位 CLR A MOV 24H,A ;清零 24h,25h,31H,32H,33H MOV 25H,A MOV 31H,A MOV 32H,#05H 19 MOV 33H,#00H MOV ADDR,#80

25、H MOV DPTR,#WEL_1 MOV 40H,#16 LCALL W_LINE MOV ADDR,#90H MOV DPTR,#WEL_2 MOV 40H,#9 LCALL W_LINE MOV ADDR,#95H MOV DPTR,#WEL_3 LCALL W_LINE1 MOV ADDR,#88H MOV DPTR,#WEL_4 MOV 40H,#16 LCALL W_LINE MOV ADDR,#98H MOV DPTR,#WEL_5 MOV 40H,#16 LCALL W_LINE LCALL DEL_1500MS 20 LOOP:LCALL LIGHT ;调显读数与示子程序 S

26、JMP LOOP ;键盘扫描程序;键码存在 KEYBUF 单元,格式为数字 0-9和”.”号,还有 Enter 键 KEYSCAN:PUSH PSW PUSH ACC PUSH DPH PUSH DPL CLR RS1 SETB RS0 ;选择1 区工作寄存器 LCALL DELAY MOV A,P1 CPL A ANL A,#0FH JZ FINISH MOV DPTR,#TAB1 MOV P1,#0EFH ;扫描第一行 LCALL DELAY MOV P1,#0EFH MOV A,P1 21 CPL A ANL A,#0FH JZ K1 ;第一行没键按下,则扫描第二行 SJMP KEND

27、K1:MOV P1,#0DFH ;扫描第二行 LCALL DELAY MOV P1,#0DFH MOV A,P1 CPL A ANL A,#0FH JZ K2 ;第二行没键按下,则扫描第三行 ADD A,#5 SJMP KEND K2:MOV P1,#0BFH ;扫描第三行 LCALL DELAY MOV P1,#0BFH MOV A,P1 CPL A ANL A,#0FH 22 JZ K3 ;第三行没键按下,则扫描第四行 ADD A,#10 SJMP KEND K3:MOV P1,#7FH ;扫描第四行 LCALL DELAY MOV P1,#7FH MOV A,P1 CPL A ANL A

28、,#0FH JZ FINISH ;第四行没键按下,则返回 ADD A,#15 KEND:MOVC A,A+DPTR MOV KEYBUF,A;MOV 33H,#01H ;置有中断标志 SJMP FINISH FINISH:MOV P1,#0FH ;为下一次扫描作准备 POP DPL POP DPH POP ACC 23 POP PSW RETI TAB1:DB 00H,01H,02H,00H,03H;,00H,00H,00H,33H DB 00H,04H,05H,00H,06H;,00H,00H,00H,00H DB 00H,07H,08H,00H,09H;,00H,00H,00H,0AH D

29、B 00H,0AH,00H,00H,0BH;,00H,00H,00H,46H INI:;LCD 的初始化子程序 MOV COM,#30H ;功能设定,基本指令 LCALL WCOM MOV COM,#30H ;基本指令,8-bit 模式,基本指令 LCALL WCOM MOV COM,#0CH ;显示开,游标关,反白关 LCALL WCOM MOV COM,#01H ;清除显示 LCALL WCOM MOV COM,#06H ;进入设定点,游标 7 右移,画面不移动 LCALL WCOM RET W_LINE:MOV COM,ADDR 24 LCALL WCOM MOV R4,40H ;连续写

30、入 N/2 个中文或者 N 个西文字符 W_L1:MOV A,#00H MOVC A,A+DPTR MOV CODER,A LCALL WCODE INC DPTR DJNZ R4,W_L1 RET W_LINE1:MOV COM,ADDR LCALL WCOM W_L11:MOV A,70H ANL A,#0FH MOVC A,A+DPTR MOV CODER,A LCALL WCODE MOV A,#0BH 25 MOVC A,A+DPTR MOV CODER,A LCALL WCODE MOV A,71H SWAP A ANL A,#0FH MOVC A,A+DPTR MOV CODER

31、,A LCALL WCODE MOV A,71H ANL A,#0FH MOVC A,A+DPTR MOV CODER,A LCALL WCODE MOV A,#0AH MOVC A,A+DPTR MOV CODER,A LCALL WCODE ;DJNZ R4,W_L1 RET WCOM:26 LCALL STWC MOV A,COM LCALL W4_D ;送入高四位指令 LCALL W4_0 ;连续送入四个 0 LCALL W4_D ;送入高四位指令 LCALL W4_0 ;连续送入四个 0 CLR CS LCALL DEL_2MS RET WCODE:LCALL STWD MOV A,

32、CODER LCALL W4_D LCALL W4_0 LCALL W4_D LCALL W4_0 CLR CS LCALL DEL_2MS RET STWC:27 SETB CS SETB SID MOV R3,#5 ;连续送入 5 个1,起始 STWC1:SETB SCLK CLR SCLK DJNZ R3,STWC1 CLR SID MOV R3,#3 STWC2:SETB SCL K:RW=0,RS=0 ;第八位0 CLR SCLK DJNZ R3,STWC2 RET STWD:SETB CS SETB SID MOV R3,#5 ;连续送入 5 个1,起始 STWD1:28 SETB

33、 SCLK CLR SCLK DJNZ R3,STWD1 CLR SID ;RW=0 SETB SCLK CLR SCLK SETB SID ;RS=1 SETB SCLK CLR SCLK CLR SID ;第八位0 SETB SCLK CLR SCLK RET W4_D:MOV R3,#4 W4_D1:RLC A MOV SID,C SETB SCLK CLR SCLK 29 DJNZ R3,W4_D1 RET W4_0:MOV R3,#4 W4_01:CLR SID SETB SCLK CLR SCLK DJNZ R3,W4_01 RET DEL_2MS:;2MS 延时 MOV R0,#

34、2 D1:MOV R1,#200 D2:NOP NOP NOP DJNZ R1,D2 DJNZ R0,D1 30 RET DEL_40MS:;40MS 延时 MOV R5,#20 D3:LCALL DEL_2MS DJNZ R5,D3 RET DEL_200MS:;200MS 延时 MOV R5,#100 D4:LCALL DEL_2MS DJNZ R5,D4 RET DEL_500MS:;500MS 延时 MOV R5,#250 D5:LCALL DEL_2MS DJNZ R5,D5 RET DEL_1500MS:;1500MS 延时 LCALL DEL_500MS 31 LCALL DEL

35、_500MS LCALL DEL_500MS RET ;用 ADC0832 读数并送数给显示的子程序;并将键盘的按键数送给 ADC0832 让其输出;ADC0832 读数据子程序 LIGHT:SETB ADDI ;初始化通道选择 NOP NOP CLR ADCS ;拉低/CS 端 NOP NOP SETB ADCLK ;拉高 CLK 端 NOP NOP CLR ADCLK ;拉低 CLK 端,形成下降沿 MOV A,34H MOV C,ACC.1 ;确定取值通道选择 MOV ADDI,C 32 NOP NOP SETB ADCLK ;拉高 CLK 端 NOP NOP CLR ADCLK ;拉低

36、 CLK 端,形成下降沿 2 MOV A,34H MOV C,ACC.0 ;确定取值通道选择 MOV ADDI,C NOP NOP SETB ADCLK ;拉高 CLK 端 NOP NOP CLR ADCLK ;拉低 CLK 端,形成下降沿 3 SETB ADDI NOP NOP MOV R7,#8 ;准备送下后 8 个时钟脉冲 33 AD_1:MOV C,ADDO ;接收数据 MOV ACC.0,C RL A ;左移一次 SETB ADCLK NOP NOP CLR ADCLK ;形成一次时钟脉冲 NOP NOP DJNZ R7,AD_1 ;循环 8 次 MOV C,ADDO ;接收数据 M

37、OV ACC.0,C MOV B,A MOV R7,#8 AD_13:MOV C,ADDO ;接收数据 MOV ACC.0,C RR A ;右移一次 34 SETB ADCLK NOP NOP CLR ADCLK ;形成一次时钟脉冲 NOP NOP DJNZ R7,AD_13 ;循环 8 次 MOV R7,#8 CJNE A,B,LIGHT ;数据校验 MOV A,B MOV DPTR,#TAB5 MOVC A,A+DPTR MOV 72H,A ;将高位送 72H单元 MOV A,B MOV DPTR,#TAB6 MOVC A,A+DPTR MOV 73H,A ;降低为送 73H 单元 SET

38、B ADCS ;拉高/CS 端 CLR ADCLK ;拉低 CLK 端 35 SETB ADDO ;拉高数据端,回到初始状态;送数给显示子程序段 MOV 70H,72H MOV 71H,73H MOV ADDR,#95H MOV DPTR,#WEL_3 LCALL W_LINE1;送数给 ADC0832 的子程序 MOV A,33H ;判断有没有中断 JZ L7 ;没有中断就转 MOV 33H,#00H ;清中断标志 L2:MOV A,30H CJNE A,#0AH,L3 ;判断是否为点号,不为点号就转。JMP L7 ;为点好就保持原来送数。L3:CJNE A,#0BH,L4 ;判断是否为 E

39、nter 键,不为就转 MOV 32H,24H MOV 31H,25H L9:MOV 24H,#00H MOV 25H,#00H 36 MOV R2,#01H ;置送数时送数空间不同的标志位 L7:MOV A,32H ;将键盘的两数相与,查表,然后送数 SWAP A ORL A,31H MOV DPTR,#TAB4 MOVC A,A+DPTR CLR P2.0 MOV P0,A LJMP L6 L4:CJNE R2,#01H,L5 ;将键盘的第一位数送给 24H MOV A,30H MOV 24H,A DEC R2 ;清零送数时送数空间不同的标志位 JMP L7 L5:MOV A,30H ;将

40、键盘的第二位数送给 25H MOV 25H,A MOV R2,#01H ;置送数时送数空间不同的标志位 JMP L7 L6:RET ;十六进制数转换成为 2 进制 BCD 码的码表 37 0 1 2 3 4 5 6 7 8 9 TAB5:DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H;0 DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H DB 01H,01H,01H,01H,01H,01H,01H,01H,01H,01H;1 DB 01H,01H,01H,01H,01H,01H,01H,01H,01H,01H DB 02

41、H,02H,02H,02H,02H,02H,02H,02H,02H,02H;2 DB 02H,02H,02H,02H,02H,02H,02H,02H,02H,02H DB 03H,03H,03H,03H,03H,03H,03H,03H,03H,03H;3 DB 03H,03H,03H,03H,03H,03H,03H,03H,03H,03H DB 04H,04H,04H,04H,04H,04H,04H,04H,04H,04H4 DB 04H,04H,04H,04H,04H,04H,04H,04H,04H,04H DB 05H,05H,05H,05H,05H,05H,05H,05H,05H,05H

42、;5 DB 05H,05H,05H,05H,05H,05H,05H,05H,05H,05H DB 06H,06H,06H,06H,06H,06H,06H,06H,06H,06H;6 DB 06H,06H,06H,06H,06H,06H,06H,06H,06H,06H DB 07H,07H,07H,07H,07H,07H,07H,07H,07H,07H;7 DB 07H,07H,07H,07H,07H,07H,07H,07H,07H,07H DB 08H,08H,08H,08H,08H,08H,08H,08H,08H,08H;8 DB 08H,08H,08H,08H,08H,08H,08H,08

43、H,08H,08H DB 09H,09H,09H,09H,09H,09H,09H,09H,09H,09H;9 DB 09H,09H,09H,09H,09H,09H,09H,09H,09H,09H 38 DB 10H,10H,10H,10H,10H,10H,10H,10H,10H,10H;10 DB 10H,10H,10H,10H,10H,10H,10H,10H,10H,10H DB 11H,11H,11H,11H,11H,11H,11H,11H,11H,11H;11 DB 11H,11H,11H,11H,11H,11H,11H,11H,11H,11H DB 12H,12H,12H,12H,12

44、H,12H,12H,12H,12H,12H;12 DB 12H,12H,12H,12H,12H,12H,12H,12H,12H,12H TAB6:DB 00H,05H,10H,15H,20H,25H,30H,35H,40H,45H;0 DB 50H,55H,60H,65H,70H,75H,80H,85H,90H,95H DB 00H,05H,10H,15H,20H,25H,30H,35H,40H,45H;1 DB 50H,55H,60H,65H,70H,75H,80H,85H,90H,95H DB 00H,05H,10H,15H,20H,25H,30H,35H,40H,45H;2 DB 50H

45、,55H,60H,65H,70H,75H,80H,85H,90H,95H DB 00H,05H,10H,15H,20H,25H,30H,35H,40H,45H;3 DB 50H,55H,60H,65H,70H,75H,80H,85H,90H,95H DB 00H,05H,10H,15H,20H,25H,30H,35H,40H,45H;4 DB 50H,55H,60H,65H,70H,75H,80H,85H,90H,95H DB 00H,05H,10H,15H,20H,25H,30H,35H,40H,45H;5 DB 50H,55H,60H,65H,70H,75H,80H,85H,90H,95H

46、 DB 00H,05H,10H,15H,20H,25H,30H,35H,40H,45H;6 DB 50H,55H,60H,65H,70H,75H,80H,85H,90H,95H DB 00H,05H,10H,15H,20H,25H,30H,35H,40H,45H;7 39 DB 50H,55H,60H,65H,70H,75H,80H,85H,90H,95H DB 00H,05H,10H,15H,20H,25H,30H,35H,40H,45H;8 DB 50H,55H,60H,65H,70H,75H,80H,85H,90H,95H DB 00H,05H,10H,15H,20H,25H,30H,3

47、5H,40H,45H;9 DB 50H,55H,60H,65H,70H,75H,80H,85H,90H,95H;DB 00H,05H,10H,15H,20H,25H,30H,35H,40H,45H;10 DB 50H,55H,60H,65H,70H,75H,80H,85H,90H,95H DB 00H,05H,10H,15H,20H,25H,30H,35H,40H,45H;11 DB 50H,55H,60H,65H,70H,75H,80H,85H,90H,95H DB 00H,05H,10H,15H,20H,25H,30H,35H,40H,45H;12 DB 50H,55H,60H,65H,7

48、0H,75H,80H,85H,90H,95H;0 1 2 3 4 5 6 7 8 9 A B C D E F ;数模转换的代码 TAB4:DB 00H,02H,04H,06H,08H,0AH,0CH,0EH,10H,12H,00H,00H,00H,00H,00H,00H;DB 14H,16H,18H,1AH,1CH,1EH,20H,22H,24H,26H,00H,00H,00H,00H,00H,00H DB 28H,2AH,2CH,2EH,30H,32H,34H,36H,38H,3AH,00H,00H,00H,00H,00H,00H DB 3CH,3EH,40H,42H,44H,46H,48H

49、,4AH,4CH,4EH,00H,00H,00H,00H,00H,00H DB 50H,52H,54H,56H,58H,5AH,5CH,5EH,60H,62H,00H,00H,00H,00H,00H,00H 40 DB 64H,66H,68H,6AH,6CH,6EH,70H,72H,74H,76H,00H,00H,00H,00H,00H,00H DB 78H,7AH,7CH,7EH,80H,82H,84H,86H,88H,8AH,00H,00H,00H,00H,00H,00H DB 8CH,8EH,90H,92H,94H,96H,98H,9AH,9CH,9EH,00H,00H,00H,00H,

50、00H,00H DB 0A0H,0A2H,0A4H,0A6H,0A8H,0AAH,0ACH,0AEH,0B0H,0B2H,00H,00H,00H,00H,00H,00H DB 0B5H,0B6H,0B8H,0BAH,0BCH,0BEH,0C0H,0C2H,0C4H,0C6H,00H,00H,00H,00H,00H,00H DB 0C8H,0CAH,0CCH,0CEH,0D0H,0D2H,0D4H,0D6H,0D8H,0DAH,00H,00H,00H,00H,00H,00H DB 0DCH,0DEH,0E0H,0E2H,0E4H,0E6H,0E8H,0EAH,0ECH,0EEH,00H,00H,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com