Shenler: реле, интерфейсные модули

Обмен информацией с матрицей

Страница 1 из 2
Новичок
 
Аватар для RomanEfimov
 
Регистрация: 02.03.2012
Сообщений: 193
Репутация: 14
4 55
0 0
 
06.04.2012 10:58 #1
Решил(пока только в протеусе) из матрици сделать что-то вроде графического дисплея. К матрице подключил PIC16f877 все работает, буквы выводил спокойно. Теперь нужно организовать передачу данных к этому пику например от таковоже. Вот часть программы:
PORTA=0b010110;
PORTB=c;
PORTC=d;
for(i=0; i<100; i++)
{
i++;
i--;
}
PORTA=0b010111;
PORTB=RD;
PORTC=b;
for(i=0; i<100; i++)
{
i++;
i--;
}
цикл for только для задержке. В трех случаях выводам на матрицу я присваиваю переменные а, в,с, d. Если я вручную пишу a=255 весь полустолбик загорается. Но нужно чтобы значение а присваивалось из порта d. В одном случае я пишу PORTB=RD; и ничего не происходит. А вот если PORTB=RD0; например то все работает, но ведь мне нужно из всего порта d инфо читать. Схема прилогается.
Вложения
Тип файла: doc shema.doc (99.5 Кб, 0 просмотров)
Оценка
КОМПЭЛ продолжает серию публикаций об аналого-цифровых преобразователях азиатских производителей. В этом выпуске – АЦП с низкой разрешающей способностью: почему они востребованы несмотря на наличие встроенных 10-битных преобразователей в МК, какие модели пользуются спросом и как их можно использовать в качестве прямой (Pin-to-Pin) и функционально эквивалентной замены западным аналогам – в ряде случаев даже с улучшенными характеристиками.
Новичок
 
Аватар для RomanEfimov
 
Регистрация: 02.03.2012
Сообщений: 193
Репутация: 14
4 55
0 0
 
09.04.2012 18:15 #2
Ну что, никто не знает как обратится к 8 битам порта?
Оценка
КОМПЭЛ объявляет о расширении ассортимента дисплеев: в наличии – 373 модели от более чем 33 производителей. Это позволяет подобрать оптимальное решение для проектов любого уровня сложности и бюджета. Благодаря широкому выбору технологий – LCD, OLED, TFT, E-Ink, – а также разнообразию размеров экранов и функциональных возможностей, вы сможете выбрать именно тот вариант, который полностью соответствует вашему техническому заданию. Ознакомиться с подборкой актуальных моделей можно по ссылке
Эксперт
 
Аватар для DmitriyVDN
 
Регистрация: 08.11.2009
Сообщений: 2,309
Репутация: 643
623 131
35 9
 
09.04.2012 19:52 #3
если выкладываете код - пользуйтесь кнопкой CODE (#) на панели инструментов
Цитата:
Сообщение от RomanEfimov
Ну что, никто не знает как ...
ну человек двадцать этого форума гарантированно знают как, дальше что?
написать его за вас? или соизволите потратить 20-30 минут на изучение даташита разделы 3.4-3.5, чтобы не писать бред типа
Код:
PORTB=RD
или
PORTB=RD0
будьте любезны объяснить что вы пытаетесь сделать этими командами?

ЗЫ хочешь получить нормальный ответ - выкладывай полный проект, а ни куски схемы и кода
Оценка
Керамические конденсаторы – одни из самых массовых и востребованных электронных компонентов, занимающих первое место по количеству строк в спецификациях большинства электронных изделий. Компания КОМПЭЛ поддерживает постоянный складской запас многослойных керамических конденсаторов (MLCC). В ассортименте – более 4000 уникальных наименований общим объёмом свыше 650 млн штук от ведущих производителей Азии, включая крупнейшие китайские бренды CCTC и Fenghua, а также таких мировых лидеров, как Yageo, Murata, Samsung и TDK.
Новичок
 
Аватар для RomanEfimov
 
Регистрация: 02.03.2012
Сообщений: 193
Репутация: 14
4 55
0 0
 
10.04.2012 11:05 #4
Все что хотелось узнать это то, как прочитать код из ВСЕХ 8 выводов порта D и записать получившийся код в переменную A например. И все.
Оценка
Эксперт
 
Аватар для DmitriyVDN
 
Регистрация: 08.11.2009
Сообщений: 2,309
Репутация: 643
623 131
35 9
 
10.04.2012 22:28 #5
Код:
A=PORTD;
Оценка
Новичок
 
Аватар для RomanEfimov
 
Регистрация: 02.03.2012
Сообщений: 193
Репутация: 14
4 55
0 0
 
11.04.2012 05:32 #6
Цитата:
Сообщение от DmitriyVDN
Код:
A=PORTD;
Спасибо большое, все работает. Но почему так?
Если читать из порта D например я пишу RD0 или RD1 .
Причем у pic16f877 читается только из порта D.
(Писать TRISx=0b11111111 не забываю)
Надо писать вместо RD0 PORTD0 так чтоли, тогда из всех портов читаться будет?
Оценка
Эксперт
 
Аватар для DmitriyVDN
 
Регистрация: 08.11.2009
Сообщений: 2,309
Репутация: 643
623 131
35 9
 
12.04.2012 00:47 #7
Цитата:
Сообщение от RomanEfimov
Надо писать вместо RD0 PORTD0 так чтоли, тогда из всех портов читаться будет?
а вы попробуйте, потом расскажите куда вас компилятор пошлет...
Оценка
Новичок
 
Аватар для BOB51
 
Регистрация: 25.11.2008
Адрес: ДОНЕЦК
Сообщений: 313
Репутация: 58
48 13
0 0
 
15.04.2012 09:06 #8
если очень хочется разобраться "почему" - возьми оригинальный datasheet на микросхему, изучи, придумай собственную схемку, напиши собственную программку на ассемблере и проведи серию тестов
Оценка
Новичок
 
Аватар для RomanEfimov
 
Регистрация: 02.03.2012
Сообщений: 193
Репутация: 14
4 55
0 0
 
16.04.2012 05:48 #9
Цитата:
Сообщение от BOB51
если очень хочется разобраться "почему" - возьми оригинальный datasheet на микросхему, изучи, придумай собственную схемку, напиши собственную программку на ассемблере и проведи серию тестов
Это все так только не на ассамблере а на си.
Оценка
Новичок
 
Аватар для BOB51
 
Регистрация: 25.11.2008
Адрес: ДОНЕЦК
Сообщений: 313
Репутация: 58
48 13
0 0
 
23.04.2012 06:42 #10
... Си к стандартным решениям тяготеет, или глубоко учить его прийдется...
Оценка
Ответ
Страница 1 из 2
Похожие темы
Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход
ТМ Электроникс. Электронные компоненты и приборы. Скидки, кэшбэк и бесплатная доставка
Часовой пояс GMT +3, время: 09:36.
Обратная связь РадиоЛоцман Вверх