Первые дни играю с контроллером, собрал программатор, поиграл с готовыми проектами (бинарый счетчик до 15, цифровая кость).
Читал один учебничек, где приведен код для мигалки простенькой (ну синтаксис понятен), а вот не работает и все тут.
То есть как, только начальное состояние отображает и все. Никакой анимации.
Спойлер
Код: Выделить всё
LIST P=PIC16F628A
__CONFIG 0x3FF1
STATUS EQU 0x0003
PORTB EQU 0x0006
TRISB EQU 0x0006
PORTA EQU 0x0005
TRISA EQU 0x0005
Reg_1 EQU 0x000C
Reg_2 EQU 0x000D
Reg_3 EQU 0x000E
ORG 0
; подготовительные моменты
bsf STATUS,5 ; переход в Банк 1
clrf TRISB
clrf TRISA
bcf STATUS,5 ; переход назад в Банк 0
m1 movlw 0x0 ; запись в аккумулятор
movwf PORTB ; перенос из аккумулятора в порт
movlw 0x0 ; запись в аккумулятор
movwf PORTA ; перенос из аккумулятора в порт
call Pause ; переход на метку (с возвратом)
movlw 0x20 ; запись в аккумулятор
movwf PORTB ; перенос из аккумулятора в порт
call Pause ; переход на метку (с возвратом)
movlw 0x30 ; запись в аккумулятор
movwf PORTB ; перенос из аккумулятора в порт
call Pause ; переход на метку (с возвратом)
movlw 0x38 ; запись в аккумулятор
movwf PORTB ; перенос из аккумулятора в порт
call Pause ; переход на метку (с возвратом)
movlw 0x8 ; запись в аккумулятор
movwf PORTA ; перенос из аккумулятора в порт
call Pause ; переход на метку (с возвратом)
movlw 0xC ; запись в аккумулятор
movwf PORTA ; перенос из аккумулятора в порт
call Pause ; переход на метку (с возвратом)
movlw 0xD ; запись в аккумулятор
movwf PORTA ; перенос из аккумулятора в порт
call Pause ; переход на метку (с возвратом)
call miganie
movlw 0x38 ; запись в аккумулятор
movwf PORTB ; перенос из аккумулятора в порт
movlw 0xD ; запись в аккумулятор
movwf PORTA ; перенос из аккумулятора в порт
call Pause ; переход на метку (с возвратом)
movlw 0x18 ; запись в аккумулятор
movwf PORTB ; перенос из аккумулятора в порт
call Pause ; переход на метку (с возвратом)
movlw 0x8 ; запись в аккумулятор
movwf PORTB ; перенос из аккумулятора в порт
call Pause ; переход на метку (с возвратом)
movlw 0x0 ; запись в аккумулятор
movwf PORTB ; перенос из аккумулятора в порт
call Pause ; переход на метку (с возвратом)
movlw 0x5 ; запись в аккумулятор
movwf PORTA ; перенос из аккумулятора в порт
call Pause ; переход на метку (с возвратом)
movlw 0x1 ; запись в аккумулятор
movwf PORTA ; перенос из аккумулятора в порт
call Pause ; переход на метку (с возвратом)
call miganie
goto m1 ; переход на метку (зацикливание)
;delay = 500000 machine cycles
Pause
movlw .173
movwf Reg_1
movlw .19
movwf Reg_2
movlw .6
movwf Reg_3
decfsz Reg_1,F
goto $-1
decfsz Reg_2,F
goto $-3
decfsz Reg_3,F
goto $-5
nop
nop
miganie movlw 0x38 ; запись в аккумулятор
movwf PORTB ; перенос из аккумулятора в порт
movlw 0xD ; запись в аккумулятор
movwf PORTA ; перенос из аккумулятора в порт
call Pause ; переход на метку (с возвратом)
movlw 0x0 ; запись в аккумулятор
movwf PORTB ; перенос из аккумулятора в порт
movlw 0x2 ; запись в аккумулятор
movwf PORTA ; перенос из аккумулятора в порт
call Pause ; переход на метку (с возвратом)
movlw 0x38 ; запись в аккумулятор
movwf PORTB ; перенос из аккумулятора в порт
movlw 0xD ; запись в аккумулятор
movwf PORTA ; перенос из аккумулятора в порт
call Pause ; переход на метку (с возвратом)
movlw 0x0 ; запись в аккумулятор
movwf PORTB ; перенос из аккумулятора в порт
movlw 0x2 ; запись в аккумулятор
movwf PORTA ; перенос из аккумулятора в порт
call Pause ; переход на метку (с возвратом)
movlw 0x38 ; запись в аккумулятор
movwf PORTB ; перенос из аккумулятора в порт
movlw 0xD ; запись в аккумулятор
movwf PORTA ; перенос из аккумулятора в порт
call Pause ; переход на метку (с возвратом)
movlw 0x0 ; запись в аккумулятор
movwf PORTB ; перенос из аккумулятора в порт
movlw 0x2 ; запись в аккумулятор
movwf PORTA ; перенос из аккумулятора в порт
call Pause ; переход на метку (с возвратом)
return
end ; конец программы*** маленькая подробность, схема собрана как для цифровой кости, на ней и играюсь. соответственно у меня задумка в коде:
1) начинать зажигать сегменты с A до F
2) помигать поочередно (A-F) и G
3) начинать тушить сегменты с A до F
4) вернуться к пункту 1


