Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 29.08.2011, 14:34  
Dimitrij
Временная регистрация
 
Регистрация: 26.02.2005
Сообщений: 78
Сказал спасибо: 15
Сказали Спасибо 16 раз(а) в 16 сообщении(ях)
Dimitrij на пути к лучшему
По умолчанию Код для управления 7-сегментными индикаторами

В наличии 4-разрядный 7-сегментный индикатор, в котором аноды всех разрядов сегментов соединены вместе, а катоды каждого сегмента в разряде выведены отдельно. Собрал схему дешифратора для порязрядного переключения сегментов, которая управляется кодом 00, 01, 10 и 11. Переписал код управления разрядами
Код:
unsigned char razrad=0b0001000;
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
                
        PORTD = razrad^0xF0 ;
        
        if (x==0) {PORTD.0=0; PORTD.1=0;}
        if (x==1) {PORTD.0=1; PORTD.1=0;}
        if (x==2) {PORTD.0=0; PORTD.1=1;}
        if (x==3) {PORTD.0=1; PORTD.1=1;}
        
        PORTB = znak [cloc[x]];      //выводим знаки 
        
        if (start==1)  {PORTB.7 =ind;}   else  PORTB.7 =0;  // выводим точку
        
        razrad››=1; 
         x++;  
      
        if (x==4)  {x=0;  razrad=0b0001000;}

        PORTD=0xF0;DDRD=0x0F;
В принципе все работает, но на выходах порта D присутствует и код, и поразрядный сдвиг. Что-то я сделал не так, а знаний не хватает.
Нужна помощь! Как сделать, чтобы на выводах порта присутствовал только нужный мне код?
Реклама:
Dimitrij вне форума  
Непрочитано 29.08.2011, 15:23  
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,948
Сказали Спасибо 1,327 раз(а) в 578 сообщении(ях)
nml на пути к лучшему
По умолчанию Re: Код для управления 7-сегментными индикаторами

Код:
  PORTD = ( PORTD & 0xFC ) | x;
  PORTB = znak [cloc[x]]; 
  if (start==1)  {PORTB.7 =ind;}   else  PORTB.7 =0;  // выводим точку  
  x = (x+1) & 0x03;
По моему, всё...
__________________
[ жизнь приятна и красива, если выпить литр пива ]
nml вне форума  
Сказали "Спасибо" nml
Dimitrij (29.08.2011)
Непрочитано 29.08.2011, 15:36  
MisterDi
Почётный гражданин KAZUS.RU
 
Аватар для MisterDi
 
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,294
Сказал спасибо: 442
Сказали Спасибо 1,048 раз(а) в 706 сообщении(ях)
MisterDi на пути к лучшему
По умолчанию Re: Код для управления 7-сегментными индикаторами

И добавить гашение индикаторов перед изменением порта D для устранения возможной паразитной подсветки:
Код:
PORTB=0xFF;
__________________
misterdi<@>i.ua
MisterDi вне форума  
Сказали "Спасибо" MisterDi
Dimitrij (29.08.2011)
Непрочитано 29.08.2011, 19:39  
Dimitrij
Временная регистрация
 
Регистрация: 26.02.2005
Сообщений: 78
Сказал спасибо: 15
Сказали Спасибо 16 раз(а) в 16 сообщении(ях)
Dimitrij на пути к лучшему
По умолчанию Re: Код для управления 7-сегментными индикаторами

nml, MisterDi,
Большое спасибо, все получилось!
Сам бы не сообразил, знаний маловато.
Dimitrij вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

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

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Апгрейд и комплектующие для ноутбуков mikesmith Барахолка электронных компонентов 28 17.05.2023 23:25
из DVD в DVD-player реально? Altalimir Микроконтроллеры, АЦП, память и т.д 14 17.09.2007 21:21
[Решено] Сборник перлов любителей кабельщины mikesmith Отвлекитесь, эмбеддеры! 135 14.08.2007 15:49


Часовой пояс GMT +4, время: 19:44.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot