Лабораторный блок питания с микроконтроллером

Лабораторный блок питания с микроконтроллером

Блок питания имеет два независимых канала со стабилизацией тока и напряжения, и третий независимый канал с фиксированными напряжениями

Устройство имеет:
- два источника с регулируемым выходом 0-30вольт и регулируемым ограничением по току 0,02 - 3 ампера.
- источник с фиксированными напряжениями 5 и 12 вольт с ограничением по току 1,5 ампера.
- регулируемые источники имеют цифровую индикацию напряжения, установленного тока ограничения , текущего потребляемого тока нагрузкой, индикатор перехода в режим стабилизации тока.
- для каждого регулируемого источника есть внешний вход отключения, и таймер программатор
- таймер программатор в обычном режиме показывает минуты и секунды включенного состояния,с возможностью сброса.
- в режиме таймер можно установить время до 23час 59 мин и запустить обратный отчсчет, по окончанию которого источник отключится. Можно выйти из этого режима вручную до отключения или изменить индикацию обратного отсчета - ЧЧ:ММ или ММ:СС.

Индикация и управление.
Для повышения точности использован отдельный источник опорного напряжения для АЦП и делается 4 замера с нахождением среднего значения. Предлы измерения напряжения 0-51 вольт с шагом 0,05 вольт, тока 0-5,1 ампера с шагом 0,01 ампер.
Правильно собранный из исправных элементов блок питания в настройке не нуждается. переменными резисторами выставить опорное напряжение АЦП в пределах 4,5- 4,6 вольт и провести калибровку показаний индикаторов по образцовым приборам.
Схема

Схема в полном размере - Вы не можете скачивать файлы с нашего сервера

Разводка печатной платы


Исходный текст программы
;**********************************************************************
; *
; Filename:bp.asm *
; Date: 29.09.2009 *
; File Version: 1.0.0 *
; *
; Author: BY GARMASH G.V. *
; Company: *
; *
;**********************************************************************

;listp=16f877A; list directive to define processor
listp=16f877; list directive to define processor

;CPU set 16f877A
CPU set 16f877
;CPUspeed set 08MHz

if CPU == 16f877A; check current version

#include; processor specific variable definitions
; __CONFIG _CP_OFF _WDT_OFF _BODEN_ON _PWRTE_ON _HS_OSC _WRT_OFF _LVP_OFF _DEBUG_OFF _CPD_OFF
; __CONFIG _CP_OFF _WDT_OFF _BODEN_ON _PWRTE_ON _HS_OSC _WRT_OFF _LVP_OFF _DEBUG_ON _CPD_OFF
;DEMO
__CONFIG _CP_ALL _WDT_OFF _BODEN_ON _PWRTE_ON _HS_OSC _WRT_OFF _LVP_OFF _DEBUG_OFF _CPD_OFF

else

#include; processor specific variable definitions
; __CONFIG _CP_OFF _WDT_OFF _BODEN_ON _PWRTE_ON _HS_OSC _WRT_ENABLE_OFF _LVP_OFF _DEBUG_OFF _CPD_OFF
;DEMO
__CONFIG _CP_ALL _WDT_OFF _BODEN_ON _PWRTE_ON _HS_OSC _WRT_ENABLE_OFF _LVP_OFF _DEBUG_OFF _CPD_ON
#defineCMCON 0x9C

endif


;********************




;***** VARIABLE DEFINITIONS * IRQ *****
w_tempEQU0x70; variable used for context saving
status_tempEQU0x71; variable used for context saving
pclath_tempEQU0x72; variable used for context saving
FSR_IRQEQU0x73; variable used for context saving
COUNT_IRQEQU0x74


FLAGEQU0x75; БИТОВЫЙ РЕГИСТР ФЛАГОВ

#define FLAG_PRES_KEY_0 FLAG,0 ;
#define FLAG_PRES_KEY_1FLAG,1 ;
#define FLAG_TIMER_ONFLAG,2 ;
#define FLAG_STANDART_MODEFLAG,3 ;
#define FLAG_SET_MIN_TIMER_MODEFLAG,4 ;
#define FLAG_SET_HOUR_TIMER_MODEFLAG,5 ;
#define FLAG_SEC_DISPL FLAG,6 ;
#define FLAG_7FLAG,7 ;

FLAG1EQU0x76; БИТОВЫЙ РЕГИСТР ФЛАГОВ

#define FLAG_8 FLAG1,0 ;
#define FLAG_9FLAG1,1 ;
#define FLAG_aFLAG1,2 ;
#define FLAG_bFLAG1,3 ;
#define FLAG_cFLAG1,4 ;
#define FLAG_dFLAG1,5 ;
#define FLAG_e FLAG1,6 ;
#define FLAG_gFLAG1,7 ;












;***** VARIABLE ***************************
ee_dataEQU0x20
ee_addrEQU0x21

TEMPEQU0x22
TEMP1EQU0x23
TEMP2EQU0x24
LOCAL_TEMPEQU0x25
LOCAL_TEMP1EQU0x26


POWER_LEVEL_1LEQU0x27
POWER_LEVEL_1HEQU0x28
POWER_LEVEL_2LEQU0x29
POWER_LEVEL_2HEQU0x2A
POWER_LEVEL_3LEQU0x2B
POWER_LEVEL_3HEQU0x2C

bin1EQU0x2D
bin2EQU0x2E
bcd1EQU0x2F
bcd2EQU0x30
bcd3EQU0x31
ctrEQU0x32

IND_1EQU0x33
IND_2EQU0x34
IND_3EQU0x35
IND_4EQU0x36
IND_5EQU0x37
IND_6EQU0x38
IND_7EQU0x39
IND_8EQU0x3A
IND_9EQU0x3B
IND_10EQU0x3C
IND_11EQU0x3D
IND_12EQU0x3E
IND_13EQU0x3F
IND_14EQU0x40
IND_15EQU0x41
IND_16EQU0x42

cicleEQU0x43

COUNT_KEY_0 EQU0x44
COUNT_KEY_1EQU0x45

COUNT_TMR2EQU0x46
COUNT_SECEQU0x47
COUNT_MINEQU0x48

TIMER_SECEQU0x49
TIMER_MINEQU0x4A
TIMER_HOUREQU0x4B

COUNT_BEGIN_CICLEEQU0x4C

POWER_LEVEL_1L_0EQU0x4D
POWER_LEVEL_1H_0EQU0x4E

POWER_LEVEL_2L_0EQU0x4F
POWER_LEVEL_2H_0EQU0x50

POWER_LEVEL_3L_0EQU0x51
POWER_LEVEL_3H_0EQU0x52

POWER_LEVEL_1L_1EQU0x53
POWER_LEVEL_1H_1EQU0x54

POWER_LEVEL_2L_1EQU0x55
POWER_LEVEL_2H_1EQU0x56

POWER_LEVEL_3L_1EQU0x57
POWER_LEVEL_3H_1EQU0x58

POWER_LEVEL_1L_2EQU0x59
POWER_LEVEL_1H_2EQU0x5A

POWER_LEVEL_2L_2EQU0x5B
POWER_LEVEL_2H_2EQU0x5C

POWER_LEVEL_3L_2EQU0x5D
POWER_LEVEL_3H_2EQU0x5E

POWER_LEVEL_1L_3EQU0x5F
POWER_LEVEL_1H_3EQU0x60

POWER_LEVEL_2L_3EQU0x61
POWER_LEVEL_2H_3EQU0x62

POWER_LEVEL_3L_3EQU0x63
POWER_LEVEL_3H_3EQU0x64




;**********BANK 1 FOR DATA****************

;**********BANK 2 FOR DATA****************

;**********BANK 3 FOR DATA****************



;********************* ПЕРЕФРИЯ ***************************
#define KEY_IN_0PORTD,1
#define KEY_IN_1PORTD,2

#define SEG_REGPORTB

#define SEG_0PORTC,3
#define SEG_1PORTC,2
#define SEG_2PORTC,6
#define SEG_3PORTC,7

#define SEG_4PORTC,4
#define SEG_5PORTC,5
#define SEG_6PORTC,1
#define SEG_7PORTC,0

#define SEG_8PORTD,3
#define SEG_9PORTD,5
#define SEG_APORTD,4
#define SEG_BPORTD,6

#define SEG_CPORTE,0
#define SEG_DPORTE,1
#define SEG_EPORTD,7
#define SEG_FPORTE,2

#define POWER_OFFPORTA,4

;********************* INT EEPROM ADDRESS *********************
ADR_EEEQU0x00


;*********************CONSTANT***********************

; МАКРОСЫ
;*********************

;------------------------------------------;


TSTPAGE macro LABEL
if (high LABEL != high ($-1))
ERROR LABEL - граница допустимой страницы
endif
endm

;Применение:
;
;G_TUNH MOVLW high G_TUNH ; --------------PULL UP ENABLE(0) DISABLE(1)
; |>-------------RB0 INT 0 to 1
; ||>------------TMR0 CONNECT TO CLK/4
; |||>-----------
; ||||>----------PRESCALER TO wdt
; |||||>--\ Prescaler -> WDT
; ||||||>-->-----; 1:128, rising edge
; |||||||>/
movlw b'01001111'
movwf OPTION_REG^80
;*****************
;TMR0 CONNECT TO CLK/4 = 5 000 000 Hz
;TMR0 OWERFLOW TO 5 000 000 / 256

; >--------------IRQ PSP
; |>-------------IRQ AD
; ||>------------IRQ USART RX
; |||>-----------IRQ USART TX
; ||||>----------IRQ SPP
; |||||>---------IRQ CPP1
; ||||||>--------IRQ TMR2
; |||||||>-------IRQ TMR1
;MOVLW b'11110001';
MOVLW b'00000010'; IRQ MODULE
MOVWFPIE1^80;


; | >-------IRQ CCP2
;MOVLW b'11110000';
MOVLW b'00000000'; IRQ MODULE
MOVWFPIE2^80;

MOVLW.124
MOVWFPR2^80

BANK0


;настроим таймер 2 и ccp для часов .
MOVLW b'01001111'
MOVWFT2CON;PERIOD = 1 000 000 /16 /125 /10


; >--------------IRQ ON
; |>-------------IRQ ON PEREPHERIAL
; ||>------------IRQ ON TMR0
; |||>-----------IRQ ON RB0 INT
; ||||>----------OFF CHANGE PORTB
; |||||>---------
; ||||||>--------
; |||||||>-------
MOVLW b'11100000'; IRQ ON
MOVWFINTCON;
RETURN
;**********************************************************************
;**********************************************************************;
;Название: bin2bcd bcd1, bcd2, bcd3 = bin1, bin2
;Входные данные: двоичное число в регистрах bin1, bin2. При этом bin1 - старший байт.
;Выходные: единицы будут в младшей тетраде регистра bcd3, десятки в старшей регистра bcd3,
;сотни в младшей тетраде регистра bcd2, тысячи в старшей bcd2,
;десятки тысяч будут находиться в младшей тетраде регистра bcd1.
;Используемые регистры: bin1, bin2, bcd1, bcd2, bcd3, ctr.
bin2bcd
movlw .16
movwf ctr
clrf bcd1
clrf bcd2
clrf bcd3
goto start

adjdec movlw 0x33
addwf bcd1,f
addwf bcd2,f
addwf bcd3,f

movlw 0x03
btfss bcd1,3
subwf bcd1,f
btfss bcd2,3
subwf bcd2,f
btfss bcd3,3
subwf bcd3,f

movlw 0x30
btfss bcd1,7
subwf bcd1,f
btfss bcd2,7
subwf bcd2,f
btfss bcd3,7
subwf bcd3,f

start rlf bin2,f
rlf bin1,f
rlf bcd3,f
rlf bcd2,f
rlf bcd1,f
decfsz ctr,f
goto adjdec

return
;**********************************************************************
;**********************************************************************
;*** КРОС ССЫЛКИ НА 1 БАНК *************
;**********************************************************************
;P1_LOAD_EE
;PAGESELLOAD_EE
;CALLLOAD_EE^800
;PAGESELP1_LOAD_EE
;RETURN
;P1_INIT_ALL
;PAGESEL_INIT_ALL
;CALL_INIT_ALL^800
;PAGESELP1_INIT_ALL
;RETURN
;**********************************************************************
;********* КОНЕЦ 0 БЛОКА *********************************************
;**********************************************************************
ORG 0x800
;P0_Delay_40mS
;PAGESELDelay_40mS
;CALLDelay_40mS^800
;PAGESELP0_Delay_40mS
;RETURN

;**********************************************************************
;*** КРОС ССЫЛКИ НА 0 БАНК END *************
;**********************************************************************
NOP


;**********************************************************************
;********* КОНЕЦ 2 БЛОКА *********************************************
;**********************************************************************
ORG 0x1000
ORG 0x1800
;**********************************************************
INT_EE_DATA ORG 0x2100

DE 0xFF
DE 0xFF
DE 0xFF
DE 0xFF
DE 0xFF
DE 0xFF
DE 0xFF
DE 0xFF

DE 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF; резерв




EE_DATA_COPY
ORG 0x2180
DE "Copyright (C) 2005-2008 by Garmash G.V. v.1.1.0"
;**********************************************************************
END
;**********************************************************************

Прошивка процессора
:020000040000FA
:10000000000000000000D229F0000308031383124F
:10001000F1000A08F2000408F30000308A000B190E
:1000200014288C18172843280B11312143288C10D1
:10003000C60A32304606031D4328C601C70A3C30B3
:100040004706031D2A28C701C80A3C304806031D7D
:100050002A28C801751D4328C903490A031D4328DE
:100060003B30C900CA034A0A031D43283B30CA007B
:10007000CB034B0A031D43280030CA00CB00C90044
:100080007511051643280313831273088400831225
:0E00900072088A0071088300F00E700E0900DD
:10020000003E0319ED34FF3E03190534FF3E031988
:10021000E334FF3E03196734FF3E03190F34FF3EFA
:1002200003196E34FF3E0319EE34FF3E03192534E3
:10023000FF3E0319EF34FF3E03196F34FF3E0319ED
:10024000AF34FF3E0319CE34FF3E0319E834FF3EBE
:100250000319C734FF3E0319EA34FF3E0319AA34D9
:100260000034003086008715071507178717071613
:100270008716871407148815881608160817091496
:10028000891488170915000000000000003043069B
:10029000031988290130430603198C2902304306CB
:1002A00003199129033043060319952904304306A5
:1002B000031999290530430603199D290630430681
:1002C0000319A229073043060319A629083043065B
:1002D0000319AA29093043060319AE290A30430637
:1002E0000319B3290B3043060319B7290C30430611
:1002F0000319BB290D3043060319BF290E304306ED
:100300000319C4290F3043060319C829C3018829DA
:10031000330886008711CC293408860007110000B5
:10032000CC29350886000713CC29360886008713A8
:10033000CC29370886000712CC2938088600871296
:100340000000CC29390886008710CC293A0886009D
:100350000710CC293B0886008811CC293C08860070
:1003600088120000CC293D0886000812CC293E08DE
:1003700086000813CC293F0886000910CC294008C4
:10038000860089100000CC29410886008813CC29FA
:10039000420886000911CC29C30A1030430603190C
:1003A000C30108005C2405160624F5150030002161
:1003B000B30001300021B40002300021B500033049
:1003C0000021B60004300021B70005300021B8003C
:1003D00006300021B90007300021BA0008300021A2
:1003E000BB0009300021BC000A300021BD000B30E9
:1003F0000021BE000C300021BF000D300021C000E4
:100400000E300021C1000F300021C2000624062456
:1004100006240512F1231E24CC0AC8304C06031909
:10042000CC0100304C060319212A32304C06031946
:100430002E2A64304C0603193B2A96304C060319C9
:10044000482A2808CE002708CD002A08D00029080D
:10045000CF002C08D2002B08D100F72A2808D4009E
:100460002708D3002A08D6002908D5002C08D80070
:100470002B08D700F72A2808DA002708D9002A080D
:10048000DC002908DB002C08DE002B08DD00F72A41
:100490002808E0002708DF002A08E2002908E10018
:1004A0002C08E4002B08E300A701A8014D08A707CA
:1004B0004E08A8075308A7070318A80A5408A80756
:1004C0005908A7070318A80A5A08A8075F08A7072A
:1004D0000318A80A6008A807A80CA70CA80CA70C6A
:1004E000A81328130530271C00300021B600A80CE3
:1004F000A70CA8132808AD002708AE0092243108E5
:100500000F390021B500310E0F390021B400300839
:100510000F390021B3003416A901AA014F08A90719
:100520005008AA075508A9070318AA0A5608AA07D7
:100530005B08A9070318AA0A5C08AA076108A907AB
:100540000318AA0A6208AA07AA0CA90CAA0CA90CEB
:10055000AA132A13AA0CA90CAA132A08AD00290869
:10056000AE00922431080F390021BA00310E0F3944
:100570000021B90030080F390021B80038160A30C0
:100580000021B700AB01AC015108AB075208AC0722
:100590005708AB070318AC0A5808AC075D08AB074F
:1005A0000318AC0A5E08AC076308AB070318AC0A73
:1005B0006408AC07AC0CAB0CAC0CAB0CAC132C1340
:1005C000AC0CAB0CAC132C08AD002B08AE00922485
:1005D00031080F390021BE00310E0F390021BD0056
:1005E00030080F390021BC003C16C230BB00F51D9D
:1005F0001C2B4708AE00AD01922431080F390021B1
:10060000C200310E0F390021C1004808AE00AD0113
:10061000922431080F390021C000310E0F3900211A
:10062000BF004016751C172BC701C8017510F51CBB
:100630001C2BF510F5117516751E382B3B30C900B3
:100640004A08AE00AD01922431080F390021C200E2
:10065000310E0F390021C100BF01C0014016751CC9
:10066000332BCA0A7510F51C382BF5107512F516C8
:10067000F51E542B3B30C9004B08AE00AD0192244F
:1006800031080F390021C000310E0F390021BF00A1
:10069000C101C2014016751C4F2BCB0A7510F51C09
:1006A000542BF510F5127515751D9C2B751B752BAC
:1006B0004B08AE00AD01922431080F390021C00073
:1006C000310E0F390021BF004A08AE00AD0192245F
:1006D00031080F390021C200310E0F390021C1004D
:1006E000491C4016491840128F2B4A08AE00AD0134
:1006F000922431080F390021C000310E0F3900213A
:10070000BF004908AE00AD01922431080F39002125
:10071000C200310E0F390021C10040168F2BF51C8D
:10072000972BF510751F962B7513972B7517751C46
:100730009C2B75107511F5150A2A4908AE00AD01FC
:10074000922431080F390021B600310E0F390021F3
:10075000B5000A2A2108031783128D000317831698
:100760008C130C140000031783120C08031383125C
:10077000A00008000A30A5002008031783128C008F
:10078000031383122108031783128D0003178316A6
:100790008B138C130C1555308D00AA308D008C14E2
:1007A00064008C18D02B0C118B17031383122008B4
:1007B000031783168C130C140000031783120C0606
:1007C0000313831203190034A50BBC2B01340F391A
:1007D000093C0318EE2B093C373E0800093C303E2B
:1007E0000800881CC40A081DC50A8818C401081915
:1007F000C5010A304406031975140319C4170A30D9
:1008000045060319F5140319C5170800FF300E2C0F
:100810004B300E2C05300E2C0F300E2CA600A501EF
:10082000A50B102C6400A60B102C080004301A2C09
:1008300000000130A500A50B1B2C08000313831634
:1008400083309F00031383129F019F171F141F10F3
:100850009F111F129F121F1416241F151F192E2CD3
:100860001E08A800031383161E0803138312A70093
:100870001F109F151F129F121F1416241F151F19DA
:100880003F2C1E08AA00031383161E0803138312AD
:10089000A9001F109F111F169F121F1416241F1549
:1008A0001F19502C1E08AC00031383161E080313D7
:1008B0008312AB001F100800203084008001840ADE
:1008C000841F5E2CA03084008001840A031D642CE8
:1008D0008B010313831607309C0007309F0003131E
:1008E00083129F0185018601870188018901031315
:1008F00083162F30850000308600003087000730D7
:100900008800003089004F30810002308C000030B8
:100910008D007C309200031383124F309200E03040
:100920008B0008001030B200AF01B001B101AA2C59
:100930003330AF07B007B1070330AF1DAF02B01DB2
:10094000B002B11DB1023030AF1FAF02B01FB00214
:10095000B11FB102AE0DAD0DB10DB00DAF0DB20BAB
:04096000982C0800C7
:021000000000EE
:02400E00420C62
:10420000FF00FF00FF00FF00FF00FF00FF00FF00B6
:10421000FF00FF00FF00FF00FF00FF00FF00FF00A6
:1043000043006F0070007900720069006700680068
:1043100074002000280043002900200032003000F3
:10432000300035002D003200300030003800200011
:104330006200790020004700610072006D0061009A
:1043400073006800200047002E0056002E00200059
:0E43500076002E0031002E0031002E003000CD
:00000001FF

Устройство размещается в подходящем по размерам корпусе , рекомендуется использовать принудительную вентиляцию при долговременной работе на больших токах, так как выделяемая тепловая мощность может достигать 100Вт.

О некоторых других моих разработках можно почитать на

Гармаш Генадий.Bn-P.Ru






Рекомендуемый контент




Copyright © 2010-2017 housea.ru. Контакты: info@housea.ru При использовании материалов веб-сайта Домашнее Радио, гиперссылка на источник обязательна.