Re: ATmega128 как прошить
Добавлено: Ср апр 01, 2026 13:57:50
На схеме не вижу VT9
Интересно как вы это себе представляете, что такое возможно сделать.[/uquote]chobra писал(а):Видимо, зря я считывал со стиранием.
Что за стабилизатор, фото в студию.chobra писал(а):сгорел стабилизатор, подающий питание на присоединяемую плату.
Что за стабилизатор, фото в студию.[/uquote]chobra писал(а):сгорел стабилизатор, подающий питание на присоединяемую плату.
Что за стабилизатор, фото в студию.chobra писал(а):сгорел стабилизатор, подающий питание на присоединяемую плату.
Код: Выделить всё
;Проба вывода на индикатор платы SEGNETIC
.include "m128def.inc"
.equ F_CPU = 14745600 ; Частота процессора 14.7456 МГц
; Определение констант для таймера
.def ZERO =R15
;.equ T_IND=$120
.equ EN=5 ;DEN
.equ RS=4 ;DRS
.org 0x0000
RJMP START
;.org $000E
.org 0x0010
TEST_IND:
.DB "RADIOKOT "
.DB " RADIOKOT"
START:
; Инициализация стека
LDI XH,HIGH(RAMEND)
LDI XL,LOW(RAMEND) ;$FF
OUT SPL,XL
OUT SPH,XH
SBI ACSR,ACD ;отключить компаратор
; Инициализация портов
CLR ZERO
OUT PORTA,XL
OUT DDRA,XL
NOP
OUT DDRA,ZERO
OUT PORTB,XL
OUT DDRB,XL
NOP
OUT DDRB,ZERO
OUT PORTC,XL
OUT DDRC,XL
NOP
OUT DDRC,ZERO
LDI R16,1<<RS|1<<EN
OUT DDRD,R16
OUT PORTE,XL
OUT DDRE,XL
NOP
OUT DDRE,ZERO
STS PORTF,XL
STS DDRF,XL
NOP
STS DDRF,ZERO
STS PORTG,XL
STS DDRG,XL
NOP
STS DDRG,ZERO
;инициализация индикатора HD44780
RCALL DELAY
LDI R20,$30
RCALL OUT_LCI
RCALL DELAY
RCALL OUT_LCI
RCALL PAUSE
RCALL PAUSE
RCALL PAUSE
RCALL OUT_LCI
RCALL PAUSE
RCALL PAUSE
RCALL PAUSE
LDI R20,$38 ; 5x7
RCALL OUT_LCI
LDI R20,$06 ; установить режим отображения
RCALL OUT_LCI
LDI R20,$0C ; включить изображение
RCALL OUT_LCI
;IND_GND:
RCALL IND_FLASH
TIME_DEL:
LDI R21,BYTE3(2*F_CPU/5)
LDI R22,BYTE2(2*F_CPU/5)
LDI R23,BYTE1(2*F_CPU/5)
GO_TIME:
SUBI R23,1
SBCI R22,0
SBCI R21,0
BRNE GO_TIME
RJMP START
;*************************************************
OUT_LCI:
SER R16
OUT DDRB,R16 ; PORTB-VIVOD
CBI PORTD,RS ; REGISTR COMAND IR (RS=0)
RCALL PAUSE_RET
SBI PORTD,EN ; SET ENABLE (E)
RCALL PAUSE_RET
OUT PORTB,R20
RCALL PAUSE_RET
CBI PORTD,EN ; CLOSE ENABLE (E)
RCALL PAUSE_RET
; OUT DDRB,ZERO ; PORTB-VVOD
RET
;************************************************
IND_FLASH:
SER R16
OUT DDRB,R16 ; PORTB-VIVOD
LDI ZH,HIGH(TEST_IND*2)
LDI ZL,LOW(TEST_IND*2) ;
LDI R20,$80
RCALL OUT_LCI ; Начало 1-й строки экрана
IND_1:
LPM R20,Z+
RCALL OUT_LCD
CPI ZL,LOW(TEST_IND*2+$10)
BRLO IND_1
LDI R20,$C0
RCALL OUT_LCI ; Начало 2-й строки экрана
IND_2:
LPM R20,Z+
RCALL OUT_LCD
CPI ZL,LOW(TEST_IND*2+$20)
BRLO IND_2
OUT PORTB,R16
OUT DDRB,ZERO ; PORTB-VVOD
RET
;*************************************************
;IND:
; LDI YH,HIGH(T_IND)
; LDI YL,LOW(T_IND) ; XL=$A0
; LDI R20,$80
; RCALL OUT_LCI ; Начало 1-й строки экрана
;IND1:
; LD R20,Y+
; RCALL OUT_LCD
; CPI YL,LOW(T_IND+$10)
; BRLO IND1
; LDI R20,$C0
; RCALL OUT_LCI ; Начало 2-й строки экрана
;IND2:
; LD R20,Y+
; RCALL OUT_LCD
; CPI YL,LOW(T_IND+$20)
; BRLO IND2
; RET
;*************************************************
OUT_LCD:
; RCALL GOTOV_IND
SBI PORTD,RS ; REGISTR DATA DR (RS=1)
RCALL PAUSE_RET
SBI PORTD,EN ; SET ENABLE (E)
RCALL PAUSE_RET
OUT PORTB,R20
RCALL PAUSE_RET
CBI PORTD,EN ; CLOSE ENABLE (E)
RCALL PAUSE_RET
CBI PORTD,RS ; REGISTR COMAND DR (RS=0)
RET
;************************************************
PAUSE:
LDI YH,$04
LDI YL,$FF
RJMP DEL
DELAY:
LDI YH,$00
LDI YL,$00
DEL:
SBIW YL,1
BRNE DEL
PAUSE_RET:
RET
;*************************************************
.EXIT