Проблемы с портами ввода\вывода. - Форум Picbasic.ru
Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 212»
Форум Picbasic.ru » Электроника » Проблемы » Проблемы с портами ввода\вывода. (PIC16f877)
Проблемы с портами ввода\вывода.
ora888 Дата: Чт, 02.04.2009, 18:20  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Новенький
Сообщений: 9
Репутация: 0   ±
Замечания:   ±
На сайте с 29.03.2009

Статус: Offline

ПОхелпите новичку.

LIST p=16F877
__CONFIG 03FF1H

STATUS EQU 0x03
PORTD EQU 0x08
PORTA EQU 0x05
TRISD EQU 0x08
TRISA EQU 0x05
RP0 equ 5
RP1 equ 6

ORG 0
GOTO START

START:
BSF STATUS,RP0
BCF STATUS,RP1
clrw
movwf TRISD
movlw 0xFF
movwf TRISA
BCF STATUS,RP0
BCF STATUS,RP1

movlw 0x00
movwf PORTD

movlw 0xFF
movwf PORTD
END

Вывожу в PORTD сначало 0x00, затем через определённую задержку, допустим с помощью NOP- ов, 0xFF. Заливаю hex фаил в контроллер в протеусе, и у меня ЦИКЛИЧЕСКИ?? начитают менятся выходы PORTD, то все нули, то все единицы?
Где в моей проге организован цикл я не понимаю..

Сообщение отредактировал ora888 - Чт, 02.04.2009, 18:21
ЯНДЕКС Дата: 02.04.2009
DAlexV Дата: Чт, 02.04.2009, 19:36  |                                                                                                                Сообщение # 2
Группа: Модераторы
Ранг:  Разобрался
Сообщений: 691
Репутация: 17   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Глюков не обнаружено !!!!
MPLAB 8.10
Шпротеус 7.2 SP6(5368)

Quote (ora888)
Заливаю hex фаил в контроллер в протеусе

Зачем ????
wacko
Это MPLAB прекрасно сам делает !!!! И можно смотреть пошагово.

Прикрепления: Test.rar(16Kb)


Будьте оригинальны - не повторяйте чужих ошибок !!!!
Пишу только на Рыбе (SwordFish). Другую пищу не предлагать, на шерсть влияет :)
ora888 Дата: Сб, 04.04.2009, 11:41  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Новенький
Сообщений: 9
Репутация: 0   ±
Замечания:   ±
На сайте с 29.03.2009

Статус: Offline

Спасибо, с выводом вроде разобрался.
Возникла другая проблемка, с чтением из портов.
Как я понимаю, при чтении 0xff --> TRIS, у нас триггеры-защелки от портов отваливаются, тогда вопрос куды физически идут сигналы?
програмка:
LIST p=16f877
__CONFIG 03FF9H

STATUS EQU 0x03
PORTA EQU 0x05
PORTB EQU 0x06
TRISA EQU 0x05
TRISB EQU 0x06
PORTD EQU 0x08
TRISD EQU 0x08
RP0 EQU 5
RP1 EQU 6
W EQU 0

ORG 0
GOTO START

START:
BSF STATUS,RP0
BCF STATUS,RP1
clrw
movwf TRISB
movwf TRISD
movlw 0xFF
movwf TRISA
BCF STATUS,RP0
BCF STATUS,RP1
clrw
movwf PORTB

clrw
movf PORTA,W
movwf PORTB
movwf PORTD

END

Хочу считать с сигнал с PORTA и переслать его в порты B и D. Подаю на входы PortA 1-цы, в итоге смотрю на регистр PORTA, там все нули, на выходы потров B и D выдаёт вообще 0х10.
Собственно вопрос, как читать с потра.

DAlexV Дата: Сб, 04.04.2009, 12:35  |                                                                                                                Сообщение # 4
Группа: Модераторы
Ранг:  Разобрался
Сообщений: 691
Репутация: 17   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Батеннька !!! А мануал читать пробывали ????
ПортА нужно для начала сделать цифровым !!!! (аналоговый по умолчанию)
Типа:

BSF STATUS,RP0
MOVLW 0X06
MOVWF ADCCON1

после это уже через trisa конфигурируем порт (вход, выход) а из porta читаем или пишем.
Дай мыло скину русский мануал по 877


Будьте оригинальны - не повторяйте чужих ошибок !!!!
Пишу только на Рыбе (SwordFish). Другую пищу не предлагать, на шерсть влияет :)
holyuser Дата: Сб, 04.04.2009, 12:44  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 233
Репутация: 5   ±
Замечания:   ±
На сайте с 12.12.2007

Статус: Offline

Все правильно Вы делаете, только надо сначала отключить PORTA от АЦП --> ADCON1 = 0x07.
Поэтому, когда Вы читаете PORTA в аналоговом режиме, то все биты читаются как "0", за изключением
PORTA.4, который всегда цифровый, оттуда и получаете 0x10 = %00010000.
Потом, надо иметь ввиду, что PORTA не полный, в нем отсуствуют физически два старших бита.

p.s. О! Пока писал уже ответили...

Сообщение отредактировал holyuser - Сб, 04.04.2009, 12:46
ora888 Дата: Сб, 04.04.2009, 13:31  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Новенький
Сообщений: 9
Репутация: 0   ±
Замечания:   ±
На сайте с 29.03.2009

Статус: Offline

ооо спасибо за оперативность.

to DAlexV
Мануал русский есть, но как говорится, гляжу в книгу, вижу.. Только когда ткнули, заметил что к чему =)

DAlexV Дата: Сб, 04.04.2009, 13:39  |                                                                                                                Сообщение # 7
Группа: Модераторы
Ранг:  Разобрался
Сообщений: 691
Репутация: 17   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

А почему Асма, а не Basic ??? Там все проще. Хотя Асму знать то же не помешает. biggrin

Будьте оригинальны - не повторяйте чужих ошибок !!!!
Пишу только на Рыбе (SwordFish). Другую пищу не предлагать, на шерсть влияет :)
ora888 Дата: Сб, 04.04.2009, 14:50  |                                                                                                                Сообщение # 8
Группа: Проверенные
Ранг:  Новенький
Сообщений: 9
Репутация: 0   ±
Замечания:   ±
На сайте с 29.03.2009

Статус: Offline

Ну для начала нужно с азами разобраться, с архитектурой, чтобы дурацких вопросов не возникало, ну а затем можно и на СИ перейти.
Basic, страшное слово, когда он родился, меня ещё в проекте не было ))
DAlexV Дата: Сб, 04.04.2009, 14:58  |                                                                                                                Сообщение # 9
Группа: Модераторы
Ранг:  Разобрался
Сообщений: 691
Репутация: 17   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Quote (ora888)
Basic, страшное слово

Чем же он так пугает ????

Я присутствоваал прирождении, симпатичный малый. Сам то же начинал с Асмы, но чем больше программа, тем сложнее в ней разобраться. cool
С басиком все проще. Освоил за месяц.
А СИ ????!!!! Ну я незнаю. Я для компа проги на VB6 пишу, может поэтому мне проще.


Будьте оригинальны - не повторяйте чужих ошибок !!!!
Пишу только на Рыбе (SwordFish). Другую пищу не предлагать, на шерсть влияет :)

Сообщение отредактировал DAlexV - Сб, 04.04.2009, 15:00
ora888 Дата: Вс, 05.04.2009, 19:51  |                                                                                                                Сообщение # 10
Группа: Проверенные
Ранг:  Новенький
Сообщений: 9
Репутация: 0   ±
Замечания:   ±
На сайте с 29.03.2009

Статус: Offline

Да собственно ничем, просто не знаком )

Трабла номер 3..
Борюсь с матричной клавиатурой 4x4. По порту D гоняю нули, с порта А снимаю значение, если появился 0, значит пришёл KONEC, выход. Всё стандартно. Вопрос в чём, когда всё статично, тоесть подаю сам на порт А постоянно 0 в один из разрядов, KONEC приходит, на порте D самое первое значение вывода 0хF7. Ежели тестить прогу в динамике опроса, порт А не реагирует, на приход нуля. Проблема видимо в нестыковке частот, но я не понимаю, как её исправить..

Прикрепления: proj3.asm(2Kb)
DAlexV Дата: Пн, 06.04.2009, 00:36  |                                                                                                                Сообщение # 11
Группа: Модераторы
Ранг:  Разобрался
Сообщений: 691
Репутация: 17   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Давай все делать правильно !!!!
Архив rar или zip. В нем:
Проджект в MPLAB и схема в Шпротеусе.
Могет у тебя в схематике косяк. А мы тут над асмой голову ломать будем.
Я асму уже подзабывать стал.
sad


Будьте оригинальны - не повторяйте чужих ошибок !!!!
Пишу только на Рыбе (SwordFish). Другую пищу не предлагать, на шерсть влияет :)

Сообщение отредактировал DAlexV - Пн, 06.04.2009, 00:39
ora888 Дата: Вт, 07.04.2009, 14:18  |                                                                                                                Сообщение # 12
Группа: Проверенные
Ранг:  Новенький
Сообщений: 9
Репутация: 0   ±
Замечания:   ±
На сайте с 29.03.2009

Статус: Offline

Проблема в схемотехнике тут врядли , т.к. проект слизан с калькулятора в примерах протеуса )). Единственное, что у них стоял внешний тактовый генератор , а я его убрал =)

Добавлено (07.04.2009, 2:18:39)
---------------------------------------------
Собственно всё, разобрался с ошибкой.

Прикрепления: proekt.rar(40Kb)
DAlexV Дата: Вт, 07.04.2009, 16:40  |                                                                                                                Сообщение # 13
Группа: Модераторы
Ранг:  Разобрался
Сообщений: 691
Репутация: 17   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Quote (ora888)
Собственно всё, разобрался с ошибкой.

Вечером доберусь до компа, скину несколько примеров по работе с клавой на ASMе.
И еще вопрос. Какой у тебя MPLAB стоит? У меня товой проэкт не открылся. Пришлось свой состовлять. surprised

Погорячился, ссылки нерабочие:
Вот что нашел:
http://radiotech.by.ru/Shematic_PCB/PIC-controlers/calc.htm
http://www.mikerj.clara.net/keypad.html
http://www.mikerj.clara.net/keypad.html


Будьте оригинальны - не повторяйте чужих ошибок !!!!
Пишу только на Рыбе (SwordFish). Другую пищу не предлагать, на шерсть влияет :)

Сообщение отредактировал DAlexV - Вт, 07.04.2009, 19:57
ora888 Дата: Чт, 09.04.2009, 14:36  |                                                                                                                Сообщение # 14
Группа: Проверенные
Ранг:  Новенький
Сообщений: 9
Репутация: 0   ±
Замечания:   ±
На сайте с 29.03.2009

Статус: Offline

MPLAB 5.70.40 ))
DAlexV Дата: Чт, 09.04.2009, 14:56  |                                                                                                                Сообщение # 15
Группа: Модераторы
Ранг:  Разобрался
Сообщений: 691
Репутация: 17   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Поставь 8.1, там есть прямая состыковка с Proteus.
И не надо HEX подставлять каждый раз eye


Будьте оригинальны - не повторяйте чужих ошибок !!!!
Пишу только на Рыбе (SwordFish). Другую пищу не предлагать, на шерсть влияет :)

Сообщение отредактировал DAlexV - Чт, 09.04.2009, 20:48
Форум Picbasic.ru » Электроника » Проблемы » Проблемы с портами ввода\вывода. (PIC16f877)
Страница 1 из 212»
Поиск: