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

Обсуждаются темы не относящиеся к журналу "РАДИО"

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

Сообщение piter » 23 дек 2008, 23:15

Помогите пожалуйста разобраться с прогой для ПИКа? Написал простую программу "бегающая точка" на 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
Радиолюбитель
piter
 
Сообщения: 33
Зарегистрирован: 10 май 2008, 00:05
Откуда: Москва

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

Сообщение wws63 » 27 дек 2008, 11:20

Когда исходник выложен в таком виде, вряд ли у кого-то возникнет желание копаться в этом. Если выкладываете исходник - используйте тег [code]
wws63
 
Сообщения: 91
Зарегистрирован: 08 апр 2008, 06:34

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

Сообщение WOLF » 27 дек 2008, 17:40

Код: Выделить всё
Попробуй подправить код так:
      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


; Надеюсь должно заработать
WOLF
 
Сообщения: 15
Зарегистрирован: 16 ноя 2008, 15:34
Откуда: тамбов

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

Сообщение piter » 27 дек 2008, 23:18

wws63 писал(а):Когда исходник выложен в таком виде, вряд ли у кого-то возникнет желание копаться в этом. Если выкладываете исходник - используйте тег [code]

Спасибо, буду иметь ввиду.
Радиолюбитель
piter
 
Сообщения: 33
Зарегистрирован: 10 май 2008, 00:05
Откуда: Москва

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

Сообщение piter » 27 дек 2008, 23:24

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
Попробовал, но ожидаемого результата не получил. Почему?
Радиолюбитель
piter
 
Сообщения: 33
Зарегистрирован: 10 май 2008, 00:05
Откуда: Москва

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

Сообщение piter » 27 дек 2008, 23:29

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
Хотелось бы знать Ваше мнение.
Радиолюбитель
piter
 
Сообщения: 33
Зарегистрирован: 10 май 2008, 00:05
Откуда: Москва

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

Сообщение WOLF » 29 дек 2008, 09:53

Если правильно понял то CALL PAUSE у вас равно 1 мс. Если так то такой задержки будет маловато надо миллисекунд 20-40 тогда мигание светодиодов будет заметно.
WOLF
 
Сообщения: 15
Зарегистрирован: 16 ноя 2008, 15:34
Откуда: тамбов

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

Сообщение piter » 31 дек 2008, 01:11

WOLF писал(а):Если правильно понял то CALL PAUSE у вас равно 1 мс. Если так то такой задержки будет маловато надо миллисекунд 20-40 тогда мигание светодиодов будет заметно.


Скажите пожалуйста, WOLF. Как можно увеличить разрядность порта pic16f84a? Чтобы можно было подключить к нему больше светодиодов. Например для подключить 64 светодиода для построения матрицы 8 на 8.
Радиолюбитель
piter
 
Сообщения: 33
Зарегистрирован: 10 май 2008, 00:05
Откуда: Москва

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

Сообщение WOLF » 31 дек 2008, 17:33

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

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

Сообщение piter » 04 янв 2009, 02:31

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

Тогда наверное лучше через КР1564ИР10 (74HC166AN)? Так как он 8-ми разрядный и последовательно-параллельный.
Радиолюбитель
piter
 
Сообщения: 33
Зарегистрирован: 10 май 2008, 00:05
Откуда: Москва

След.

Вернуться в Всё остальное

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

cron