Помогите разобраться с прогой для PIC16F84A

Добавлено:
23 дек 2008, 23:15
piter
Помогите пожалуйста разобраться с прогой для ПИКа? Написал простую программу "бегающая точка" на 8 светодиодах, но почему то светодиод самого младшего разряда не зажигается. Почему? Сразу говорю, что аппаратно всё исправно, светодиод рабочий.
Вот код:
; описание операционных регистров
TMR0 EQU 01h
PC EQU 02h
STATUS EQU 03h
FSR EQU 04h
; регистры ввода/вывода
CNTRLPORT EQU 05h
DATAPORT EQU 06h
; ячейки ОЗУ
SCRATCH EQU 0Ch
DIGIT EQU 0Dh
; биты регистра STATUS
C EQU 0h
DC EQU 1h
Z EQU 2h
PD EQU 3h
TO EQU 4h
RP0 EQU 5h
; управляющие регистры
TRISA EQU 85h
TRISB EQU 86h
; слова инициализации для портов ввода/вывода
INITA EQU B'00000000'
INITB EQU B'00000000'
;
; Рабочая секция
;
; начало исполняемого кода
ORG 0x0000
BEGIN
; Инициализация порта A
BCF STATUS,RP0
CLRF CNTRLPORT
BSF STATUS,RP0
MOVLW INITA
MOVWF TRISA
; Инициалазация порта B
BCF STATUS,RP0
CLRF DATAPORT
BSF STATUS,RP0
MOVLW INITB
MOVWF TRISB
BCF STATUS,RP0
START
BCF STATUS,C
BSF DATAPORT,0
LEFT
RLF DATAPORT,1
CALL PAUSE
BTFSS DATAPORT,7
GOTO LEFT
RIGHT
RRF DATAPORT,1
CALL PAUSE
BTFSS DATAPORT,0
GOTO RIGHT
GOTO LEFT
PAUSE
MOVLW 001h
MOVWF SCRATCH
MOVLW 001h
MOVWF DIGIT
LOOP
DECFSZ SCRATCH,1
GOTO LOOP
DECFSZ DIGIT,1
GOTO LOOP
RETURN
END
Re: Помогите разобраться с прогой для PIC16F84A

Добавлено:
27 дек 2008, 11:20
wws63
Когда исходник выложен в таком виде, вряд ли у кого-то возникнет желание копаться в этом. Если выкладываете исходник - используйте тег [code]
Re: Помогите разобраться с прогой для PIC16F84A

Добавлено:
27 дек 2008, 17:40
WOLF
- Код: Выделить всё
Попробуй подправить код так:
BCF STATUS,C
BSF DATAPORT,0
CALL PAUSE ; сюда ставим задержку что бы светодиод во время обработки паузы горел
LEFT
RLF DATAPORT,1
CALL PAUSE
BTFSS DATAPORT,7
GOTO LEFT
CALL PAUSE ; и сюда тоже
RIGHT
RRF DATAPORT,1
; Надеюсь должно заработать
Re: Помогите разобраться с прогой для PIC16F84A

Добавлено:
27 дек 2008, 23:18
piter
wws63 писал(а):Когда исходник выложен в таком виде, вряд ли у кого-то возникнет желание копаться в этом. Если выкладываете исходник - используйте тег [code]
Спасибо, буду иметь ввиду.
Re: Помогите разобраться с прогой для PIC16F84A

Добавлено:
27 дек 2008, 23:24
piter
WOLF писал(а):- Код: Выделить всё
Попробуй подправить код так:
BCF STATUS,C
BSF DATAPORT,0
CALL PAUSE ; сюда ставим задержку что бы светодиод во время обработки паузы горел
LEFT
RLF DATAPORT,1
CALL PAUSE
BTFSS DATAPORT,7
GOTO LEFT
CALL PAUSE ; и сюда тоже
RIGHT
RRF DATAPORT,1
; Надеюсь должно заработать
Спасибо за подсказку. Посмотреть видео можно тут: http://piter-i.narod.ru/shift.htm
Попробовал, но ожидаемого результата не получил. Почему?
Re: Помогите разобраться с прогой для PIC16F84A

Добавлено:
27 дек 2008, 23:29
piter
WOLF писал(а):- Код: Выделить всё
Попробуй подправить код так:
BCF STATUS,C
BSF DATAPORT,0
CALL PAUSE ; сюда ставим задержку что бы светодиод во время обработки паузы горел
LEFT
RLF DATAPORT,1
CALL PAUSE
BTFSS DATAPORT,7
GOTO LEFT
CALL PAUSE ; и сюда тоже
RIGHT
RRF DATAPORT,1
; Надеюсь должно заработать
И ещё по другому коду.
Написал код временной задержки в 1 мсекунду.
Видео тут: http://piter-i.narod.ru/msec.htm
Хотелось бы знать Ваше мнение.
Re: Помогите разобраться с прогой для PIC16F84A

Добавлено:
29 дек 2008, 09:53
WOLF
Если правильно понял то CALL PAUSE у вас равно 1 мс. Если так то такой задержки будет маловато надо миллисекунд 20-40 тогда мигание светодиодов будет заметно.
Re: Помогите разобраться с прогой для PIC16F84A

Добавлено:
31 дек 2008, 01:11
piter
WOLF писал(а):Если правильно понял то CALL PAUSE у вас равно 1 мс. Если так то такой задержки будет маловато надо миллисекунд 20-40 тогда мигание светодиодов будет заметно.
Скажите пожалуйста, WOLF. Как можно увеличить разрядность порта pic16f84a? Чтобы можно было подключить к нему больше светодиодов. Например для подключить 64 светодиода для построения матрицы 8 на 8.
Re: Помогите разобраться с прогой для PIC16F84A

Добавлено:
31 дек 2008, 17:33
WOLF
Для увеличения разрядности можно подключить к портам PICа дешифраторы (К555 ИД6 ИД10) или сдвигающий регистр (К555 ИР8), которые можно заменить их "вражескими" аналогами из серии 74НС (К555 ИР8 = 74НС 164)
Re: Помогите разобраться с прогой для PIC16F84A

Добавлено:
04 янв 2009, 02:31
piter
WOLF писал(а):Для увеличения разрядности можно подключить к портам PICа дешифраторы (К555 ИД6 ИД10) или сдвигающий регистр (К555 ИР8), которые можно заменить их "вражескими" аналогами из серии 74НС (К555 ИР8 = 74НС 164)
Тогда наверное лучше через КР1564ИР10 (74HC166AN)? Так как он 8-ми разрядный и последовательно-параллельный.