Текст программы прошивки вольтметра.
MBS Electronics >> Схемы и Статьи >> Цифровая электроника >> Микроконтроллеры >> Вольтметр постоянного тока 0..999 вольт
;**************************************************************
;ПРОГРАММА ВОЛЬТМЕТРА С ЖКИ НА ATTINY15. АВТОР ОЗОЛИН М.А
;**************************************************************
.INCLUDE"TN15DEF.INC"
.DEF   LC=R6
.DEF   HC=R7
.DEF   H=R15
.ORG   000
RESET:
CLR    R10
LDI    R16,222
MOV    LC,R16
LDI    R16,3
MOV    HC,R16
LDI    R16,100
MOV    H,R16
LDI    R16,10
MOV    R8,R16
LDI    R16,198
OUT    ADCSR,R16
LDI    R16,130
OUT    ADMUX,R16
SBI    DDRB,0
OUT    PORTB,R10
LDI    R20,2
CLR    R19
CLR    R2
CLR    R3
CLR    R4
CLR    R5
START:
CLR    R17
IN     R16,ADCSR  ;ИЗМЕРЯЕМ НАПРЯЖЕНИЕ НА ADC2
SBRS   R16,4
RJMP   PC-2
IN     R18,DDRB   ;АНАЛИЗ СОСТОЯНИЯ
ANDI   R18,6      ;ВХОДНОГО ДЕЛИТЕЛЯ
IN     R4,ADCL    ;ЧТЕНИЕ
IN     R5,ADCH    ;ДАННЫХ
LDI    R25,16
DEC    R25
BRNE   PC-1
SBI    ADMUX,0    ;ПОДКЛЮЧАЕМ ВХОД ADC3
SBI    ADCSR,6    ;ЗАПУСК ПРЕОБРАЗОВАНИЯ
CP     R4,LC      ;ЕСЛИ
CPC    R5,HC      ;ПЕРЕГРУЗКИ НЕТ
BRLO   A1         ;ПЕРЕХОД НА ПРОВЕРКУ МИНИМАЛЬНОГО ЗНАЧЕНИЯ
CPI    R18,4      ;ЕСЛИ ПЕРЕГРУЗКА ПРИ МАКСИМАЛЬНОМ КОЗФФ.ДЕЛ
BREQ   S1         ;ВКЛЮЧАЕМ ИНДИКАЦИЮ ПЕРЕГРУЗКИ
CPI    R18,0      ;ЕСЛИ КОЭФФ. ДЕЛЕНИЯ МИНИМАЛЬНЫЙ
BREQ   S2         ;УВЕЛИЧИВАЕМ ЕГО В 10 РАЗ
SBI    DDRB,2     ;В ПРОТИВНОМ СЛУЧАЕ УСТАНАВЛИВАЕМ
CBI    DDRB,1     ;МАКСИМАЛЬНЫЙ КОЭФФИЦИЕНТ ДЕЛЕНИЯ
RJMP   EX
S2:
SBI    DDRB,1
CBI    DDRB,2
RJMP   EX
S1:
SER    R17
RJMP   EX
A1:
CP     R4,H
CPC    R5,R10
BRLO   A2
RJMP   EX
A2:
CPI    R18,4
BREQ   M1
CPI    R18,2
BREQ   M2
RJMP   EX
M1:
SBI    DDRB,1
CBI    DDRB,2
RJMP   EX
M2:
CBI    DDRB,1
CBI    DDRB,2
EX:
CLR    R26
IN     R16,ADCSR  ;КОНТРОЛЬ НАПРЯЖЕНИЯ БАТАРЕИ,
SBRS   R16,4      ;ИЛИ ТОКА
RJMP   EX
IN     R2,ADCL    ;ЧТЕНИЕ
IN     R3,ADCH    ;ДАННЫХ
LDI    R25,16
DEC    R25
BRNE   PC-1
CBI    ADMUX,0    ;ПОДКЛЮЧАЕМ ВХОД ADC2
SBI    ADCSR,6
CP     R2,LC     
CPC    R3,HC     
BRLO   PC+2      
SER    R26       
DEC    R19
BRNE   START
DEC    R20
BRNE   START
LDI    R20,2
MOV    R22,R2
MOV    R23,R3
RCALL  DECOD
MOV    R2,R12
MOV    R3,R13
SWAP   R3
MOV    R22,R4
MOV    R23,R5
RCALL  DECOD
;**************************************************************
;ФОРМИРОВАНИЕ ПУСТОГО ЗНАКОМЕСТА (РАЗДЕЛЕНИЕ ЦЕЛЫХ И ДЕСЯТЫХ)
;**************************************************************
CPI    R18,0
BRNE   PC+2
SWAP   R13
CPI    R18,2
BRNE   PC+8
SWAP   R13
MOV    R24,R12
SWAP   R24
ANDI   R24,15
OR     R13,R24
LDI    R24,15
AND    R12,R24
CPI    R26,255
BRNE   PC+3
CLR    R3
MOV    R2,R26
CPI    R17,255
BRNE   IND
CLR    R13
MOV    R12,R17
;**************************************************************
IND:
LDI    R21,8
SBI    PORTB,0
LDI    R25,2
DEC    R25
BRNE   PC-1
ROL    R3
BRCS   PC+2
RJMP   PC+2
RCALL  PP
CBI    PORTB,0
LDI    R25,55
DEC    R25
BRNE   PC-1
DEC    R21
BRNE   PC-13
LDI    R21,8
SBI    PORTB,0
LDI    R25,2
DEC    R25
BRNE   PC-1
ROL    R2
BRCS   PC+2
RJMP   PC+2
RCALL  PP
CBI    PORTB,0
LDI    R25,55
DEC    R25
BRNE   PC-1
DEC    R21
BRNE   PC-13
LDI    R21,8
GG:
CLR    R9
SBI    PORTB,0
LDI    R25,2
DEC    R25
BRNE   PC-1
ROL    R9
BRCS   PC+2
RJMP   PC+2
RCALL  PP
CBI    PORTB,0
LDI    R25,55
DEC    R25
BRNE   PC-1
DEC    R21
BRNE   GG
LDI    R21,8
SBI    PORTB,0
LDI    R25,2
DEC    R25
BRNE   PC-1
ROL    R13
BRCS   PC+2
RJMP   PC+2
RCALL  PP
CBI    PORTB,0
LDI    R25,55
DEC    R25
BRNE   PC-1
DEC    R21
BRNE   PC-13
LDI    R21,8
SBI    PORTB,0
LDI    R25,2
DEC    R25
BRNE   PC-1
ROL    R12
BRCS   PC+2
RJMP   PC+2
RCALL  PP
CBI    PORTB,0
LDI    R25,55
DEC    R25
BRNE   PC-1
DEC    R21
BRNE   PC-13
RJMP   START
;**************************************************************
;ПОДПРОГРАММА ДЕКОДИРОВАНИЯ
;**************************************************************
DECOD:
CLR    R13
CP     R22,H
CPC    R23,R10
BRLO   PC+5
INC    R13
SUB    R22,H
SBC    R23,R10
RJMP   PC-6
TST    R13
BRNE   PC+2
MOV    R13,R8
CLR    R12
CP     R22,R8
CPC    R23,R10
BRLO   PC+5
INC    R12
SUB    R22,R8
SBC    R23,R10
RJMP   PC-6
TST    R12
BRNE   PC+2
MOV    R12,R8
SWAP   R12
TST    R22
BRNE   PC+2
MOV    R22,R8
OR     R12,R22
RET
;**************************************************************
;ПОДПРОГРАММА ПАУЗЫ
;**************************************************************
PP:
LDI    R25,50
DEC    R25
BRNE   PC-1
RET

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
НАШ МАГАЗИН - SHOP.MUSBENCH.COM
Besucherzahler
счетчик посещений
 
 
 
 
 
Карта Сайта