简单数控直流电压源
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数控电压源实习报告
班级:测控12-1 31号
设计人: 王秋桦
指导老师:庄严
设计时间:2015-12-01
摘要
本设计采用数字电位器MCP41010和功率放大电路LM324构成输出电压在0.1-9.9V 的直流稳压电源,整个电路由D/A转换模块、电压放大模块、精密电压源模块和过流保护模块组成。
数字控制部分采用+/-按键来调整预设电压值,调整步进0.1V,当按下+/-按键超过1秒时进入快速调整状态,每秒步进为0.4V。
最后再将放大后的输出电压值和输出电流值,经过PIC16F877A的内部A/D转换并在数码管上实时显示。
关键词:数字电位器、D/A转换、电压源、过流保护
目录
1 系统设计 (5)
1.1设计要求 (5)
1.1.1 设计任务 (5)
1.1.2、基本要求 (6)
1.1.3、发挥部分 (6)
1.1.4 测试要求 (6)
1.1.5 系统框图 (6)
1.2方案论证与比较 (7)
1.2.1电压采样模块 (7)
1.2.2 稳压模块 (8)
1.2.3 过载保护模块 (9)
1.2.4 最终方案 (11)
2.单元电路分析 (11)
2.1D/A转换模块 (11)
2.1.1工作原理 (11)
2.1.2 参数选择 (12)
2.2电压放大模块 (12)
2.2.1 工作原理 (12)
2.2.2 参数选择 (12)
2.3稳定电压源及电压采样模块 (13)
2.3.1 工作原理 (13)
2.3.2 参数选择 (13)
2.4过载保护模块 (14)
2.4.1工作原理 (14)
2.4.2 参数选择 (14)
3.软件设计 (15)
3.1实现功能 .................................................................................................... 错误!未定义书签。
3.2软件平台及开发工具 (15)
3.3 软件流程图 (16)
4.系统测试 (18)
4.1电路测试步骤: (18)
5. 结论 (19)
6. 参考文献 (21)
7.附录 (22)
1 系统设计
1.1 设计要求
1.1.1 设计任务
设计一台直流稳压电源,电压变化范围±10%.
1.1.2、基本要求
(1)输出电压:范围0~+9.9V,步进0.1V,纹波不大于10mV。
(2)最大输出电流:500mA。
(3)启停键:“工作”与“停止”两状态的转换键,每按该键一次状态翻转一次。
(4)“停止”状态:禁止电压输出,状态指示灯灭,电压指示器显示预设电压,负载电流为0;在该状态下按“+”、“-”两键调整预设电压值,调整步进0.1V。
(5)“工作状态”:允许输出预设电压,正常工作指示灯亮,电压、电流指示器实时显示输出电压和负载电流。
一旦负载电流超限输出保护关断信号,转入“保护”状态,保护响应时间不超过10mS。
处在“工作”状态时输出电压不能调整,按启停键转换到“停止”状态。
(6)“保护”状态:禁止电压输出,过载指示灯亮,电压、电流指示器显示预设电压和超载时的电流值,5秒后自动回到“停止”状态。
1.1.3、发挥部分
(1)增加快速调整功能,按下“+”、“-”键超过1秒后进入快速调整,每秒步进0.4V。
(2)系统能保存预设电压值,每次开机时的预设电压值为上次关机前的预设电压值。
1.1.4 测试要求
在最小系统板数码管上可以清晰读出预设电压值、采样电压值和采样电流值。
1.1.5 系统框图
图1
1.2 方案论证与比较
1.2.1电压采样模块
方案一:在输出口串上两个大电阻和一个电位器,从电位器的中间抽头进行采样,这样不但可以得到完全采样,而且可调.因为实际的电阻值与所标的电阻值会有一些误差,电位器的精密
:
度等都会增加电压采样误差.电路图如下
入电阻无穷大的特性,得出采样电压。
图3
综合以上分析,方案二较好。
1.2.2 稳压模块
方案一:如下图所示,电路接成串联型电压负反馈,我们把输入电压加到运放的同相端,与6脚的取样电压构成差动放大器,把他们之间的电压差进行放大,放大后的电压再接到调整管的基级,通过调整管的调整作用,来达到稳定输出电压的效果。
方案二:如图,电压经过差分放大后由功率三极管放大电流组成电压负反馈电路。
再经过电容滤波,电路即可输出稳定的直流电压。
图5
综合以上分析,方案二较好。
1.2.3 过载保护模块
方案一:如下图所示
10K
R1410K
R13
33K R1510K R101/2W
R8
10K
R1110K
R1210K R9
10K RW2L
100uH 100u F
C61000u F
C12C7
104
104
C13
+12
A/D
1213144
11IC4
9
10
8411
IC3
104C8
R16100
T1
TIP122T39013U5
U6U8U10U11U12
U13VOUT ...
图6
上图采用复合管组成限流型保护电路,通过调整电阻R8,当电路中的电流达到或超过需保护的设定值时,R8两端的电压超过0.5V ,9013导通工作,电流中的电流可通过9013进行分流,使得TIP122的基极电位被拉下来,使得TIP122截止,以此来保护调整管。
当R8两端的电压小于0.5V 时,9013截止,TIP122恢复工作。
但过载时,电流不易测得。
而且LM324的输入端电压最小为300mV ,当取样电阻两端电压过小时,LM324取样不到,从而影响后续的同相比例放大及A/D 值。
方案二:如下图所示
图7
在如上的电路中,将负载接在电流取样电阻之前,输出电压会受到电流取样电阻的影响。
一旦取样电阻确定后,通过观测其两端电压大小即可得出流经负载的电流值大小。
通过软件控制过载时对电路的保护。
从而,使得过载时,电流易于测得。
综上所述,选用方案二。
1.2.4 最终方案
单片机PIC16F877A主要用于预设输出电压值并通过按键来实现输出电压的步进控制,当电路输出较大电压,若输出端所接负载较小,电路中电流较大,超过设计要求,系统启动保护状态,过载保护通过软件来实现。
系统将电路中实时采样的电压值和电流值送数码管显示。
(1)单片机控制模块:采用PIC16F877A单片机为核心。
(2)基准电压模块:采用数字电位器MCP41010进行D/A转换输出基准电压。
(3)控制调整模块:采用达林顿管TIP122进行控制调整输出电压。
(4)输出取样模块:采用电阻臂进行电压取样,小功率电阻进行电流取样。
(5)显示模块:采用数码管显示。
2.单元电路分析
2.1 D/A转换模块
2.1.1工作原理
如图所示,利用PIC16F877A及数字电位器MCP41010进行D/A转换,从而得到步进电压源。
MCP41010的1、2、3脚分别与PIC的三个I/O口相连。
当CS=0时,MCP41010才工作。
SCK用于接入PIC的C2口输出的时钟信号。
SI为MCP41010的数据输入引脚,用于接收从PIC的C3口输出的数据信号,即步进电压信号。
当CS=0时,SCK的上升沿到来时,数据从SI引脚输入数字电位器,从而得到步进电压。
2.1.2 参数选择 图8
电解电容2C 、瓷片电容1C 是为了对+2.5V 参考电压进行滤波,故可选取电解电容2C 为100µF 、瓷片电容1C 为104。
2.2电压放大模块
2.2.1 工作原理
如图所示,由于MCP41010是8位电流型串行数字电位器,可产生256个步进。
当参考电压为+2.5V 时,PW0输出的步进值约为0.01V 。
所以要想得到步进值为0.1V ,需放大5倍,并且电位器每次步进2阶同时自动调整。
通过对输出D/A 的输出电压进行同相放大,该电路的放大倍数大约为5倍,并通过电位器来改变它的放大倍数,从而达到对输出电压进行硬件校准的目的。
图 9
2.2.2 参数选择
(1)电路负反馈放大倍数:
5)(1
322
1322
≈++=++==
w w i i o i u R R R R R R R R V V V V A 不妨选取 K
R W
K R W
K R w 1025.0/3925.0/10132===K 电位器。
(2)集成运放选取LM324。
2.3 稳定电压源及电压采样模块
2.3.1 工作原理
如图所示,集成运放的5、6、7引脚构成差分放大电路,与功率三极管TIP122组成闭环负反馈电路,使得5和6引脚的电压保持相等。
其中功率三极管还起到放大电流的作用,各电容起到稳压滤波作用。
由于输出电压范围为0~9.9V ,不能直接将其作为电压采样值送给PIC 的I/O 口,所以需要将其线性降压。
根据电压跟随器的输入电阻无穷大的特性,组成如图采样电路,并且不影响直流电压源的各参数性质。
图10
2.3.2 参数选择
(1)由于设计要求电压源输出的电压高达9.9V ,所以用大于9.9V 的电源给电路供电。
三极管是电流控制电流型器件,考虑到流经其上的电流要高达0.5A ,因此所选三极管的功率要承受:
W A V VI P 55.0*10=≈=
所以需要选择散热性好的功率三极管TIP122,并且加上散热片帮助其尽快散热。
(2)稳压滤波电容
104
2201110==C uF C
104
10076==C uF C
(3)电压采样电阻 K R R 1097==使得 108/2
1
21V V V D A ==范围是0~4.95V ,符合I/O 口采样电压值要求。
2.4 过载保护模块
2.4.1工作原理
如图所示,通过对电阻8R 两端电压的取样及放大,从而得到对应电流值所对应的电压值 D A V R I V /85
1
*==采样 。
IC4构成同相输入比例放大电路,放大倍数为5倍。
13C 需A/D 转换的电流进行滤波。
图 11
2.4.2 参数选择
(1)为便于运算,8R 选用1Ω。
由于输出的最大电流可达500mA ,由R I P 2
=可得,
m ax P =0.25W ,为保险起见,故8R 选用1Ω/2W 的功率电阻。
(2)13C 可取瓷片电容104。
注意:14引脚输出出不可加电容值较大的电解电容。
由于采样功率电阻阻值非常小,在电流值不大的情况下,相应的电压值也很小,一旦在14引脚出接一个较大的电解电容虽然有稳压滤波的作用,可是其充放电会严重影响A/D 采样的电压值,即相应的电流采样值。
(3)过载保护电路放大倍数
5)(2
151414
2151414
≈++=++==
w w i i o i u R R R R R R R R V V V V A 因此不妨选取 K
R W
K R W
K R w 1025.0/3325.0/1011514===K 电位器。
3.软件设计
3.1 软件平台及开发工具
本系统软件的开发平台是MPLAB IDE ,开发工具为MPLAB ICD2。
3.2 软件流程图
4.系统测试
4.1测试步骤:
①第一步:检查电路没有问题,上电
②第二步:预设置电压值,并用数字万用表检测输出电压,及功率电阻两端的电压。
③第三步:用示波器测输出电压的纹波。
4.2 测试结果
①输出电压及功率电阻两端的电压见下表:
②输出电压的纹波在10~20mV之间。
5. 结论
本设计基本完成基本要求里面的内容和发挥部分的功能和指标。
表1
6. 参考文献
[1] 清华大学电子学教研组编,阎石主编.数字电子技术基础(第五版) .北京:高等教育出版社,2006.5
[2] 张华林,周小方编著.电子设计竞赛实训教程[M].北京:北京航空航天大学出版社,2007. 7
7.附录7.1 原器件明细表
器件名称
数量备注器件名称数量备注
MCP41010 1 LM324 1 已有TIP122 1 已有电容(104) 4
电阻(1Ω/2W) 2 电阻(33K) 2
电阻(1K) 1 电阻(10K)10
电位器(10K) 2 电阻(5K1) 2
7.2 电路原理图
7.3 电路PCB图
7.4源程序如下:
;系统程序设计(080727)
;----几个重要子程序及主子程序之间的关系
;-----------------------
;以下为特殊功能存储器的定义
;-----------------------
INCLUDE "PIC16F877A.INC"
;-----------------------
;以下为I/O口定义
;-----------------------
#DEFINE CS41010 RC,2 ;MCP41010器片选
#DEFINE CS3202 RC,1 ;12位AD转换器片选
#DEFINE LDAC RC,0 ;数据转存到DAC寄存器#DEFINE SCK RC,4 ;SPI串口时钟线
#DEFINE SDI RC,5 ;SPI串口数据输入
#DEFINE SDO RC,6 ;SPI串口数据输出
#DEFINE BEE RA,5 ;蜂鸣
#DEFINE CS0 RB,1 ;LED0
#DEFINE CS1 RB,2
#DEFINE CS2 RB,3
#DEFINE CS3 RB,4
#DEFINE CS4 RB,5
#DEFINE CS5 RE,0
#DEFINE CS6 RE,1
#DEFINE CS7 RE,2 ;LED7
;-----------------------
;以下为内部RAM的定义
;-----------------------
WBUF EQU 20H ;W保护单元,含0A0H单元
STBUF EQU 21H ;STATUS保护单元FSBUF EQU 22H ;FSR保护单元PCBUF EQU 23H ;PCLATH保护单元
R0 EQU 24H ;R0~7工作寄存器
R1 EQU 25H ;R0~7循环变量或中间结果
R2 EQU 26H
R3 EQU 27H
R4 EQU 28H
R5 EQU 29H
R6 EQU 2AH
R7 EQU 2BH
R8 EQU 2CH
R9 EQU 2DH
DSBIT EQU 2EH ;显示位选,0~7=LED0~LED7
DSBUF0 EQU 2FH ;LED0 DSBUF1 EQU 30H ;显缓,LED1 DSBUF2 EQU 31H ;显缓LED2 DSBUF3 EQU 32H ;显缓LED3 DSBUF4 EQU 33H ;显缓LED4 DSBUF5 EQU 34H;显缓LED5 DSBUF6 EQU 35H;显缓LED6 DSBUF7 EQU 36H;显缓LED7 DSDOT EQU 37H ;小数点位
#DEFINE DOT0 DSDOT,0
#DEFINE DOT1 DSDOT,1
#DEFINE DOT2 DSDOT,2
#DEFINE DOT3 DSDOT,3
#DEFINE DOT4 DSDOT,4
#DEFINE DOT5 DSDOT,5
#DEFINE DOT6 DSDOT,6
#DEFINE DOT7 DSDOT,7 DSFL EQU 38H ;显示位闪烁控制(0-7分别对应LED0-7)
SHAN EQU 39H
#DEFINE FLON SHAN,0;闪烁总控位,=1闪
#DEFINE ADFLAG SHAN,1
#DEFINE DAFLAG SHAN,2;
#DEFINE JJDAFLAG SHAN,3
#DEFINE XIEBZ SHAN,4
#DEFINE XIEFLAG SHAN,5
#DEFINE XIEWAN SHAN,6
;-----------------------
KEY1 EQU 3AH ;键值1,触发型
KEY2 EQU 3BH ;键值2,触发型
#DEFINE K0 KEY1,0
#DEFINE K1 KEY1,1
#DEFINE K2 KEY1,2
#DEFINE K3 KEY1,3
#DEFINE K4 KEY1,4
#DEFINE K5 KEY1,5
#DEFINE K6 KEY1,6
#DEFINE K7 KEY1,7
#DEFINE K8 KEY2,0
#DEFINE K9 KEY2,1
#DEFINE K10 KEY2,2
#DEFINE K11 KEY2,3 #DEFINE BIAO KEY2,4
LASTK1 EQU 3CH ;旧键值1,控制型
LASTK2 EQU 3DH ;旧键值2,控制型
#DEFINE LK0 LASTK1,0
#DEFINE LK1 LASTK1,1
#DEFINE LK2 LASTK1,2
#DEFINE LK3 LASTK1,3
#DEFINE LK4 LASTK1,4
#DEFINE LK5 LASTK1,5
#DEFINE LK6 LASTK1,6
#DEFINE LK7 LASTK1,7
#DEFINE LK8 LASTK2,0
#DEFINE LK9 LASTK2,1
#DEFINE LK10 LASTK2,2
#DEFINE LK11 LASTK2,3 ANJCOUNT EQU 3EH;按键去抖HOUH EQU 3FH ;时单元,非压缩BCD码
HOUL EQU 40H
MINH EQU 41H ;分单元,非压
缩BCD码
MINL EQU 42H
SEC EQU 43H ;秒单元,2进制
SECW EQU 46H
SECC EQU 47H ;0.5秒单元,2进制
TURN EQU 48H
SHUKON EQU 49H
GE EQU 50H
SHI EQU 51H
BAI EQU 52H
QIAN EQU 53H
TIMER EQU 44H ;走时用,5ms 加1
CYDYDI EQU 60H;采样电压低位CYDYGAO EQU 61H;采样电压高位KUAIJIN EQU 62H;预设电压缓冲器COUNT EQU 63H
S1H EQU 64H
S1Z EQU 65H
S1L EQU 66H R1H EQU 67H
R1L EQU 68H
ZC EQU 69H
CISHU EQU 70H
COUNTER EQU 71H
;-------
STA EQU 45H ;工作状态寄存器;-----------------------
VAN0 EQU 54H
;模拟AN0的AD值,2字节,VAN0高位,VAN0+1低位
;-----------------------
;宏定义,W,STATUS,FSR,PCLATH进栈
;-----------------------
PUSH MACRO
MOVWF WBUF
SWAPF WBUF,1
SWAPF STATUS,W
BCF RP0
BCF RP1
MOVWF STBUF
SWAPF FSR,W
MOVWF FSBUF
SWAPF PCLATH,W
MOVWF PCBUF
ENDM
;-----------------------
;宏定义,W,STATUS,FSR,PCLATH出栈;-----------------------
POP MACRO
BCF RP0
BCF RP1
SWAPF PCBUF,W
MOVWF PCLATH
SWAPF FSBUF,W
MOVWF FSR
SWAPF STBUF,W
MOVWF STATUS
SWAPF WBUF,W
ENDM
;-----------------------
;宏定义,RAM体选择
;-----------------------
BANK0 MACRO
BCF RP1
BCF RP0
ENDM
BANK1 MACRO
BCF RP1
BSF RP0
ENDM
BANK2 MACRO
BSF RP1
BCF RP0
ENDM
BANK3 MACRO
BSF RP1
BSF RP0
ENDM
;-----------------------
;主程序入口向量
;----------------------- RESET_VECTOR ORG 0x000 CLRF PCLATH
GOTO MAIN
GOTO MAIN
GOTO MAIN
;-----------------------
;中断入口向量
;----------------------- INTERRUPT_VECTORS ORG 0x004 PUSH ;进栈
BANK0
CLRF PCLATH
GOTO INTSEV
;-----------------------
ORG 0x0020
INCLUDE "ZHICHENGXU.INC"
;-----------------------
;中断服务子程序
;-----------------------
INTSEV NOP ;实际为中断程序体
POP
RETFIE
;-----------------------
MAIN BANK1 ;上电复位判断?
MOVF PCON,W
BSF POR
BTFSS POR
GOTO $-2
BANK0
ANDLW 02H
BTFSS Z
GOTO RSTELSE
;-----------------------
MOVLW 2CH ;上电复位初始化
MOVWF FSR
CLRF F0
INCF FSR,1
BTFSS FSR,7
GOTO $-3 ;以上清RAM2C-7FH
CLRF RA
MOVLW 0C0H
ANDWF RB,F
MOVLW B'00000000'
MOVWF RC
CLRF RD
CLRF RE ;以上IO口初始设置
CALL DACLOSE
;---------------读EEPROM----
BANK2
MOVLW 00H
MOVWF EEADR
BANK3
BCF EEPGD
BSF EECON1,0
BANK2
MOVF EEDATA,W
BANK0
MOVWF MINL
;------------读下一个单元给MINH
BANK2
MOVLW 01H
MOVWF EEADR
BANK3
BCF EEPGD
BSF EECON1,0
BANK2
MOVF EEDATA,W
BANK0
MOVWF MINH
RSTELSE BANK1
CLRWDT ;特殊功能寄存器初始化
BANK1
MOVLW B'00000011'
MOVWF TRISA
MOVLW B'11000000'
MOVWF TRISB
MOVLW 00H
MOVWF TRISC
CLRF TRISD
CLRF TRISE
CLRF RC
MOVLW 06H ;AN0~7设为数字口
MOVWF ADCON1
CLRF PIE1
BANK0
CLRF ADCON0
CLRF PCLATH
CLRF INTCON
CLRF PIR1
MOVLW 0F6H
MOVWF TMR1H
MOVLW 3CH
MOVWF TMR1L
MOVLW 01H
MOVWF T1CON
BCF ADFLAG
BCF XIEBZ
BCF XIEFLAG;清写EEPROM标志位
BCF XIEWAN
CLRF STA
CLRF DSFL
CLRF KUAIJIN
MOVLW 00H
MOVWF SHUKON
MAIN1 BANK0
BTFSS TMR1IF
GOTO MAIN1
CLRWDT
BCF TMR1IF
;-----------------------
;以下为重要功能寄存器冗余设置;应视具体应用情况作相应调整;-----------------------
BANK1
MOVLW B'00000011'
MOVWF TRISA
MOVLW B'11000000'
MOVWF TRISB
MOVLW 00H
MOVWF TRISC
CLRF TRISE
BANK0
CLRF PCLATH
MOVLW 0F6H
MOVWF TMR1H
MOVLW 3CH
MOVWF TMR1L
ZK CALL ANJSCAN
EY CALL DISP
BCF FLON
KAISHI MOVLW HIGH TAB
MOVWF PCLATH
MOVF STA,W ;根据STA值散转
ANDLW 07H
ADDLW LOW TAB
BTFSC C
INCF PCLATH,F
MOVWF PCL
TAB GOTO SHEZHI
GOTO DIANYA
GOTO GUOZAIBAOHU
SHEZHI BTFSS XIEFLAG
GOTO BEGIN
;-----将MINL写入EEPROM中
NOP
BANK3
NOP
BTFSC EECON1,1;WR
GOTO MAIN1
BANK0
BTFSS XIEWAN
GOTO XIE
BCF XIEWAN
BCF XIEFLAG
BCF XIEFLAG
GOTO BEGIN
XIE BTFSC XIEBZ;----------写EEPROM------------
GOTO XIEGAO
BSF XIEBZ
BANK2
MOVLW 00H
MOVWF EEADR
BANK0
MOVF MINL,W
BANK2
MOVWF EEDATA
GOTO XX XIEGAO BANK0
BCF XIEBZ
BSF XIEWAN
BANK2
MOVLW 01H
MOVWF EEADR
BANK0
MOVF MINH,W
BANK2
MOVWF EEDATA XX BANK3
BCF EEPGD
BSF WREN
BCF GIE
MOVLW 55H
MOVWF EECON2
MOVLW 0AAH
MOVWF EECON2
BSF EECON1,1
BSF GIE
BCF WREN
NOP
GOTO MAIN1
BEGIN BANK0
CLRF R2
CALL WDA;调用控制MCP41010子程序禁止电压输出
BSF RC,0;将输出电压放电
BSF DOT1
BCF DOT3
BCF DOT4
MOVF MINH,W
MOVWF DSBUF1
MOVLW 0AH
MOVWF DSBUF2
MOVWF DSBUF3
MOVWF DSBUF4
MOVWF DSBUF5
MOVWF DSBUF6
MOVWF DSBUF7
SWAPF MINH,W
IORWF MINL,W
MOVWF S1L
CLRF S1Z
CLRF S1H
CALL BCDTOBIN
MOVF R1L,W
MOVWF KUAIJIN
MOVF KUAIJIN,W
MOVWF SHUKON
BTFSS K4
GOTO DF
MOVLW 01H
MOVWF STA
BSF DAFLAG
MOVLW 40H
MOVWF CISHU
GOTO MAIN1
DF BTFSS LK0
GOTO NEX
;BSF XIEFLAG;置写EEPROM标志位
CALL CLOCK
MOVF SEC,W
XORLW 01H
BTFSS Z
GOTO QQ1
MOVLW 02H
MOVWF DSFL
GOTO QQ
NEX BTFSS LK2
GOTO QQ
CALL CLOCK
MOVF SEC,W
XORLW 01H
BTFSS Z
GOTO QQ1
MOVLW 02H
MOVWF DSFL
QQ CLRF SEC
QQ1 MOVLW HIGH LAB1 MOVWF PCLATH
MOVF DSFL,W
ANDLW 07H
ADDLW LOW LAB1
BTFSC C
INCF PCLATH,F
MOVWF PCL
LAB1 GOTO DYL
GOTO DYH
GOTO KUAISU
DYL BSF FLON
BTFSS K0
GOTO JIAN
INCF MINL,F
BSF XIEFLAG;置写EEPROM标志位
MOVF MINL,W
XORLW 0AH
BTFSC Z
CLRF MINL
GOTO AA JIAN BTFSS K2
GOTO AA
BSF XIEFLAG;置写EEPROM标志位
DECF MINL,F
MOVF MINL,W
XORLW 0FFH
BTFSS Z
GOTO AA
MOVLW 09H
MOVWF MINL
AA MOVF MINL,W;用MINL存预设电压低位
MOVWF DSBUF0
BTFSS K1
GOTO $+2
INCF DSFL,F
GOTO MAIN1
DYH BSF FLON
BTFSS K0
GOTO JIAN1
BSF XIEFLAG;置写EEPROM标志位
INCF MINH,F
MOVF MINH,W
XORLW 0AH
BTFSC Z
CLRF MINH
GOTO AA1
JIAN1 BTFSS K2
GOTO AA1
BSF XIEFLAG;置写EEPROM标志位
DECF MINH,F
MOVF MINH,W
XORLW 0FFH
BTFSS Z
GOTO AA1
MOVLW 09H
MOVWF MINH
AA1 MOVF MINH,W;用MINL存预设电压高位
MOVWF DSBUF1
BTFSS K1
GOTO $+2
CLRF DSFL
GOTO MAIN1
KUAISU BTFSS LK0
GOTO NEX1
BSF XIEFLAG;置写EEPROM标志位
MOVF KUAIJIN,W
ADDLW 04H
MOVWF KUAIJIN
NEX1 BTFSS LK2
GOTO OUT
BSF XIEFLAG;置写EEPROM标志位
MOVLW 04H
SUBWF KUAIJIN,F
,.
OUT MOVF KUAIJIN,W
SUBLW 63H
BTFSS Z
GOTO $+2 CLRF KUAIJIN MOVF KUAIJIN,W MOVWF R1 CLRF R0
CALL BCD MOVF R6,W ANDLW 0FH MOVWF MINL MOVWF DSBUF0 MOVF R6,W SWAPF R6,W ANDLW 0FH MOVWF MINH MOVWF DSBUF1 CLRF STA
CLRF DSFL GOTO MAIN1 DIANYA BCF DOT3
BCF DOT4
BSF DOT1
BTFSS K4
GOTO DJ
MOVLW 00H
MOVWF STA
GOTO MAIN1
DJ BCF RC,0;关三极管放电
CLRF DSFL ;DSBUF0-3
BTFSS DAFLAG
GOTO ADAD
;BTFSS JJDAFLAG
;GOTO $+3
;MOVLW 02H
;SUBWF SHUKON,F
MOVF SHUKON,W;控制MCP41010
MOVWF R2
,.
CALL WDA;调用控制MCP41010子程序
BCF DAFLAG
ADAD BTFSS ADFLAG
GOTO DLAD
GOTO DYAD
DLAD BSF ADFLAG
MOVLW VAN0 ;AN0模拟量采集负载电流
MOVWF FSR
MOVLW 01H ;TAD=2TOSC,AN0
MOVWF R0
MOVLW 84H ;右格式,AN0,AN1,AN3模拟
MOVWF R1 ;AN7~1为数字口
CALL AD ; 处理A/D的结果-----------
MOVF VAN0,W ;转换结果*1000/1023
MOVWF R0
MOVF VAN0+1,W
MOVWF R1
MOVLW HIGH D'1000'
MOVWF R2
MOVLW LOW D'1000'
MOVWF R3
CALL DMUL
MOVLW HIGH D'1023'
MOVWF R0
MOVLW LOW D'1023'
MOVWF R1
CALL DDIV
MOVF R2,W
MOVWF R0
MOVF R3,W
MOVWF R1
,.
CALL BCD ;BCD码转换SWAPF R5,W ANDLW 0FH MOVWF QIAN MOVF R5,W
ANDLW 0FH MOVWF BAI
SWAPF R6,W ANDLW 0FH MOVWF SHI
MOVF R6,W
ANDLW 0FH MOVWF GE
MOVLW 00H SUBWF R6,W BTFSS C
DECF R5,F MOVLW 05H SUBWF R5,W BTFSC C
GOTO BAOHU
GOTO XIANSHI
; MOVF QIAN,W;判断是否过载
; SUBLW 02H
; BTFSC C
; GOTO DD
; GOTO BAOHU
;DD MOVF BAI,W
; XORLW 05H
; BTFSS Z
; GOTO CAIY
; MOVF SHI,W
; BTFSS Z
; GOTO BAOHU
; MOVF GE,W
; BTFSS Z
; GOTO BAOHU
; GOTO CAIY
BAOHU MOVLW 02H
MOVWF STA
GOTO MAIN1
DYAD BCF ADFLAG
MOVLW VAN0 ;AN1模拟量采集输出电压
MOVWF FSR
MOVLW 09H ;TAD=2TOSC,AN1
MOVWF R0
MOVLW 84H ;右格式,AN0,AN1,AN3模拟
MOVWF R1 ;其他为数字口
CALL AD
; 处理A/D的结果-----------
MOVF VAN0,W ;转换结果*5000/1023
MOVWF R0
MOVF VAN0+1,W
MOVWF R1
MOVLW HIGH D'5000'
MOVWF R2 MOVLW LOW D'5000' MOVWF R3
CALL DMUL MOVLW HIGH D'1023' MOVWF R0
MOVLW LOW D'1023' MOVWF R1
CALL DDIV
MOVF R3,W MOVWF R1 MOVWF HOUL MOVF R2,W MOVWF R0 MOVWF HOUH CALL BCD ;BCD码转换MOVF R5,W MOVWF ZC
BCF C
MOVF HOUL,W MOVWF R1
MOVF HOUH,W MOVWF R0
MOVLW 02H
MOVWF R3
CLRF R2
CALL DMUL
MOVF R6,W
MOVWF R0
MOVF R7,W
MOVWF R1
CALL BCD;;;;;;;;;;;;;;;;;;
SWAPF R5,W
ANDLW 0FH
MOVWF CYDYGAO
MOVF R5,W
ANDLW 0FH
MOVWF CYDYDI
;--------------------将A/D结果与设定值比较--------
MOVF MINH,W
XORWF CYDYGAO,W
BTFSC Z
GOTO NEXTONE;=
MOVF MINH,W
SUBWF CYDYGAO,W
BTFSS C
GOTO UP
GOTO DOWN
NEXTONE MOVF MINL,W
XORWF CYDYDI,W
BTFSC Z
GOTO XIANSHI
MOVF MINL,W
SUBWF CYDYDI,W
BTFSS C
GOTO UP
GOTO DOWN
DOWN DECF SHUKON,F
BSF DAFLAG
GOTO
XIANSHI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; UP INCF SHUKON,F
BSF DAFLAG
XIANSHI CALL CLOCK
MOVF SEC,W
XORLW 01H
BTFSS Z
GOTO EXIT8
CLRF SEC
MOVF QIAN,W
MOVWF DSBUF7
MOVF BAI,W
MOVWF DSBUF6
MOVF SHI,W
MOVWF DSBUF5
MOVF GE,W
MOVWF DSBUF4
BSF DOT7
YY MOVF MINH,W
MOVWF DSBUF1
MOVF MINL,W
MOVWF DSBUF0
;TIAOJIE BTFSS K0
; GOTO DELET ;; INCF SHUKON ; INCF MINL,F
; MOVF MINL,W ; XORLW 0AH
; BTFSS Z
; GOTO EXIT8
; CLRF MINH
; INCF MI,F
; MOVF HOUL,W ; XORLW 0AH
; BTFSS Z
; GOTO EXIT8
; CLRF HOUL
; INCF HOUH,F
; MOVF MINH,W ; XORLW 03H
; BTFSS Z
; GOTO EXIT8
; CLRF HOUH
; GOTO EXIT8
;DELET BTFSS K2
; GOTO EXIT8
; MOVLW 00H
; XORWF MINH,W ; BTFSS Z
; GOTO JIAN9
; MOVLW 00H
; XORWF HOUL,W ; BTFSS Z
; GOTO JIAN9 ; MOVLW 00H
; XORWF HOUH,W ; BTFSS Z
; GOTO JIAN9
;J\IAN9 DECF MINH,F ; DECF SHUKON ; MOVF MINH,W ; XORLW 0FFH
; BTFSS Z
; GOTO EXIT8
; MOVLW 09H
; MOVWF MINH
; DECF HOUL,F
; MOVF HOUL,W ; XORLW 0FFH
; BTFSS Z
; GOTO EXIT8
; MOVLW 09H
; MOVWF HOUL
; DECF HOUH,F
; MOVF HOUH,W ; XORLW 0FFH
END ; BTFSS Z
; GOTO EXIT8
; MOVLW 09H
; MOVWF HOUH
EXIT8 GOTO MAIN1
GUOZAIBAOHU CLRF R2
CALL WDA;禁止电压
输出
BSF RC,0
BSF DOT3
BSF DOT4
BSF DOT1
CALL CLOCK
MOVF SEC,W
XORLW 06H
BTFSS Z
GOTO MAIN1
CLRF SEC
CLRF STA
GOTO MAIN1。