班级:测控12-1 31号
设计人: 王秋桦
指导老师:庄严 设计时间:2015-12-01
摘 要
本设计采用数字电位器MCP41010和功率放大电路LM324构成输出电压在0.1-9.9V的直流稳压电源,整个电路由 D/A转换模块、电压放大模块、精密电压源模块和过流保护模块组成。数字控制部分采用+/-按键来调整预设电压值,调整步进0.1V,当按下+/-按键超过1秒时进入快速调整状态,每秒步进为0.4V。最后再将放大后的输出电压值和输出电流值,经过PIC16F877A的内部A/D转换并在数码管上实时显示。
关键词:数字电位器、 D/A转换、 电压源、 过流保护
2
目录
1 系统设计................................................................... 4 1.1 设计要求 ............................................................... 4 1.1.1 设计任务 ........................................................... 4 1.1.2、基本要求 .......................................................... 4 1.1.3、发挥部分 .......................................................... 4 1.1.4 测试要求 ........................................................... 4 1.1.5 系统框图 ........................................................... 4 1.2 方案论证与比较 ......................................................... 5 1.2.1电压采样模块 ....................................................... 5 1.2.2 稳压模块 ........................................................... 5 1.2.3 过载保护模块 ....................................................... 6 1.2.4 最终方案 ........................................................... 7 2.单元电路分析 ............................................................... 7 2.1 D/A转换模块 .......................................................... 7 2.1.1工作原理 ........................................................... 7 2.1.2 参数选择 ........................................................... 8 2.2电压放大模块 ........................................................... 8 2.2.1 工作原理 ........................................................... 8 2.2.2 参数选择 ........................................................... 8 2.3 稳定电压源及电压采样模块 ............................................... 9 2.3.1 工作原理 ........................................................... 9 2.3.2 参数选择 ........................................................... 9 2.4 过载保护模块 .......................................................... 10 2.4.1工作原理 ............................................................ 10 2.4.2 参数选择 ............................................................ 10 3.软件设计.................................................................. 11 3.1 实现功能 .............................................. 错误!未定义书签。 3.2 软件平台及开发工具 .................................................... 11 3.3 软件流程图 ............................................................ 11 4.系统测试.................................................................. 13 4.1电路测试步骤: ........................................................ 13 5. 结论..................................................................... 14 6. 参考文献 ................................................................. 15 7.附录 .................................................................... 15
3
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
4
1.2 方案论证与比较
1.2.1电压采样模块
方案一:在输出口串上两个大电阻和一个电位器,从电位器的中间抽头进行采样,这样不但可以得到完全采样,而且可调.因为实际的电阻值与所标的电阻值会有一些误差,电位器的精密度等都会增加电压采样误差.电路图如下:
方案二:由于产生的稳定直流电压源的电压值高达9.9V,不能直接送给PIC的I/O采样,则需将其线性降压,而此降压电路模块不会影响电压源的各性能。因此利用电压跟随器的输入电阻无穷大的特性,得出采样电压。
图3
综合以上分析,方案二较好。
1.2.2 稳压模块
方案一:如下图所示,电路接成串联型电压负反馈,我们把输入电压加到运放的同相端,与6脚的取样电压构成差动放大器,把他们之间的电压差进行放大,放大后的电压再接到调整管的基级,通过调整管的调整作用,来达到稳定输出电压的效果。
5
方案二:如图,电压经过差分放大后由功率三极管放大电流组成电压负反馈电路。 再经过电容滤波,电路即可输出稳定的直流电压。
图 5 综合以上分析,方案二较好。
1.2.3 过载保护模块
方案一:如下图所示
.+12100uFLC6104C7100uHTIP122.U5T3R8T1R99013U61/2W104C8R1410KR1610010KU8R1110K1213IC4114RW210KR1533K91000uF4811U11IC314U1010K10R13U12U13A/DC12C13104.VOUTR1010KR1210K 图6
上图采用复合管组成限流型保护电路,通过调整电阻R8,当电路中的电流达到或超过需保护的设定值时,R8两端的电压超过0.5V,9013导通工作,电流中的电流可通过9013
6
进行分流,使得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转换,从而得到步进电压
7
源。MCP41010的1、2、3脚分别与PIC的三个I/O口相连。当CS=0时,MCP41010才工作。SCK用于接入PIC的C2口输出的时钟信号。SI为MCP41010的数据输入引脚,用于接收从PIC的C3口输出的数据信号,即步进电压信号。当CS=0时,SCK的上升沿到来时,数据从SI引脚输入数字电位器,从而得到步进电压。
图8
2.1.2 参数选择
电解电容C2、瓷片电容C1是为了对+2.5V参考电压进行滤波,故可选取电解电容C2为100µF、瓷片电容C1为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)电路负反馈放大倍数:
8
AuViViR25 VoViR2R3Rw1(R2R3Rw1)R2R210K/0.25W 不妨选取 R339K/0.25W。
电位器Rw110K(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,因此所选三极管的功率要承受:
PVI10V*0.5A5W
所以需要选择散热性好的功率三极管TIP122,并且加上散热片帮助其尽快散热。 (2)稳压滤波电容
C10220uFC11104
C6100uFC7104
9
(3)电压采样电阻 R7R910K使得 VA/DI/O口采样电压值要求。
11V8V10范围是0~4.95V,符合222.4 过载保护模块
2.4.1工作原理
如图所示,通过对电阻R8两端电压的取样及放大,从而得到对应电流值所对应的电压值 V采样I*R8VA/D 。
IC4构成同相输入比例放大电路,放大倍数为5倍。C13需A/D转换的电流进行滤波。
15
图 11
2.4.2 参数选择
(1)为便于运算,R8选用1Ω。由于输出的最大电流可达500mA,由PIR可得,
2Pmax=0.25W,为保险起见,故R8选用1Ω/2W的功率电阻。
(2)C13可取瓷片电容104。
注意:14引脚输出出不可加电容值较大的电解电容。由于采样功率电阻阻值非常小,在电流值不大的情况下,相应的电压值也很小,一旦在14引脚出接一个较大的电解电容虽然有稳压滤波的作用,可是其充放电会严重影响A/D采样的电压值,即相应的电流采样值。 (3)过载保护电路放大倍数
AuViViR145 VVoR14R15Rw2i(R14R15Rw2)R14R1410K/0.25W 因此不妨选取 R1533K/0.25W。
电位器Rw110K
10
3.软件设计
3.1 软件平台及开发工具
本系统软件的开发平台是MPLAB IDE,开发工具为MPLAB ICD2。
3.2 软件流程图
11
12
4.系统测试
4.1测试步骤:
① 第一步: 检查电路没有问题,上电
② 第二步:预设置电压值,并用数字万用表检测输出电压,及功率电阻两端的电压。
③ 第三步:用示波器测输出电压的纹波。
4.2 测试结果
① 输出电压及功率电阻两端的电压见下表: Vout设定值/V 0.1 0.2 0.5 0.7 1.2 1.6 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 Vout测量值/V 0.143 0.243 0.591 0.725 1.280 1.660 2.080 2.570 3.090 3.560 4.050 4.540 5.070 5.540 6.030 6.540 功率电阻两端电压/mV 5.30 8.90 21.70 29.00 47.00 61.50 76.00 95.90 114.10 132.20 150.30 168.00 188.50 206.00 224.00 244.00 流过功率电阻电流/mA 5.30 8.90 21.70 29.00 47.00 61.50 76.00 95.90 114.10 132.20 150.30 168.00 188.50 206.00 224.00 244.00 A/D显示的电流/mA 3.0 7.0 21.0 28.0 46.0 65.0 76.0 93.0 111.0 129.0 147.0 165.0 194.0 226.0 221.0 242.0 Vout误差/% 43.00 21.50 18.20 3.57 6.67 3.75 4.00 2.80 3.00 1.71 1.25 0. 1.40 0.73 0.50 0.62 电流误差/% 43.40 21.35 3.23 3.45 2.13 (5.69) 0.00 3.02 2.72 2.42 2.20 1.79 (2.92) (9.71) 1.34 0.82 13
7.0 7.5 8.0 8.5 9.0 9.3 9.5 9.7 9.9 7.010 7.510 8.030 8.620 9.090 9.390 9.580 9.800 10.000 262.00 280.00 300.00 318.00 336.00 347.00 354.00 363.00 371.00 262.00 280.00 300.00 318.00 336.00 347.00 354.00 363.00 371.00 260.0 277.0 297.0 314.0 331.0 344.0 349.0 359.0 367.0 0.14 0.13 0.37 1.41 1.00 0.97 0.84 1.03 1.01 0.76 1.07 1.00 1.26 1.49 0.86 1.41 1.10 1.08 以上为负载=25欧,功率电阻=1欧 ② 输出电压的纹波在10~20mV之间。
5. 结论
本设计基本完成基本要求里面的内容和发挥部分的功能和指标。
表1 基本要求 输出电压:范围0~+9.9V,步进0.1V,纹波不大于10mV 最大输出电流:500mA 启停键:“工作”与“停止”两状态的转换键,每按该键一次状态翻转一次 “停止”状态:禁止电压输出,状态指示灯灭,电压指示器显示预设电压,负载电流为0;在该状态下按“+”、“-”两键调整预设电压值,调整步进0.1V “工作状态”:允许输出预设电压,正常工作指示灯亮,电压、电流指示器实时显示输出电压和负载电流。一旦负载电流超限输出保护关断信号,转入“保护”状态,保护响应时间不超过10mS。
发挥部分 实现性能 基本实现 纹波10~20mV 实现 实现 实现 实现 14
处在“工作”状态时输出电压不能调整,按启停键转换到“停止”状态 “保护”状态:禁止电压输出,过载指示灯亮,电压、电流指示器显示预设电压和超载时的电流值,5秒后自动回到“停止”状态 实现 增加快速调整功能,按下“+”、“-”键超过1秒后进入快速调整,每秒步进0.4V 系统能保存预设电压值,每次开机时的预设电压值为上次关机前的预设电压值 实现 实现 6. 参考文献
[1] 清华大学电子学教研组编,阎石主编.数字电子技术基础(第五版) .北京:高等教育出版社,2006.5
[2] 张华林,周小方编著.电子设计竞赛实训教程[M].北京:北京航空航天大学出版社,2007. 7
7.附录
7.1 原器件明细表
器件名称 MCP41010 TIP122 电阻(1Ω/2W) 电阻(1K) 电位器(10K) 数量 1 1 2 1 2 备注 已有 器件名称 LM324 电容(104) 电阻(33K) 电阻(10K) 电阻(5K1) 数量 1 4 2 10 2 备注 已有 15
7.2 电路原理图
7.3 电路PCB图
7.4 源程序如下:
;系统程序设计(080727)
;----几个重要子程序及主子程序之间的关系
;-----------------------
;以下为特殊功能存储器的定义 ;----------------------- INCLUDE \"PIC16F877A.INC\"
16
;-----------------------
;以下为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,控制型
17
#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 H 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
18
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 ;特殊功能寄存器初始化
19
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
20
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
21
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
22
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
23
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'
24
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
25
;; 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 ; 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 END
26
27
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- aiwanbo.com 版权所有 赣ICP备2024042808号-3
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务