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

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

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

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

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

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


 
Опции темы

Семисегментный индикатор и клавиатура

Непрочитано 09.05.2016, 11:35  
OKF
Прописка
 
Регистрация: 17.11.2009
Сообщений: 134
Сказал спасибо: 15
Сказали Спасибо 30 раз(а) в 16 сообщении(ях)
OKF на пути к лучшему
По умолчанию Re: Семисегментный индикатор и клавиатура

Я только самую малость перечислил.
Реклама:
OKF вне форума  
Непрочитано 09.05.2016, 20:00  
AlesyaS
Прохожий
 
Аватар для AlesyaS
 
Регистрация: 06.05.2016
Адрес: г. Санкт-Петербург
Сообщений: 9
Сказал спасибо: 5
Сказали Спасибо 1 раз в 1 сообщении
AlesyaS на пути к лучшему
По умолчанию Re: Семисегментный индикатор и клавиатура

Godzilla82,Здравствуйте. Большое спасибо за пример. Но я хотела добиться немного другого. У Вас значения записываются в виде:

У Вас: | А я хотела:
**** | ****
1*** | ***1
12** | **12
123* | *123
1234 | 1234

Если честно, я наивно подумала что смогу научиться программировать микроконтроллеры avr с помощью Форумчан. Согласитесь что Ваш код не даст никакой информации человеку который всего несколько дней назад начала изучать мк и си так как в ней нет ни объяснения ни комментариев. Я очень ценю Ваш труд и время что вы потратили и ни в коем случаи не хочу быть не благодарной или обидеть Вас. Наверное не моё это дело изучение программирования мк. Буду читать литературу.. Спасибо всем за оказанное внимание и советы, надеюсь когда нибудь вновь вернутся в этот форум. Ещё раз поздравляю всех Великим праздником ПОБЕДЫ и желаю всех благ. с Уважением Алеся Смирнова. С-Пб.
AlesyaS вне форума  
Непрочитано 09.05.2016, 21:00  
Signalshik2
Вид на жительство
 
Аватар для Signalshik2
 
Регистрация: 11.08.2015
Сообщений: 409
Сказал спасибо: 17
Сказали Спасибо 37 раз(а) в 28 сообщении(ях)
Signalshik2 на пути к лучшему
По умолчанию Re: Семисегментный индикатор и клавиатура

Сообщение от omercury Посмотреть сообщение
1. у Вас отсутствуют в схеме развязывающие диоды на сканере кнопок. В Протеусе, конечно же, ничего фатального не случится, ну разве кроме ошибок в дешифрации кнопок, а вот в реальном устройстве рискуете налететь на выгоревший порт.
- по-моему в схеме абсолютно ничего не будет.
Signalshik2 вне форума  
Непрочитано 09.05.2016, 21:01  
Godzilla82
Почётный гражданин KAZUS.RUN
 
Регистрация: 29.10.2006
Сообщений: 1,449
Сказал спасибо: 99
Сказали Спасибо 318 раз(а) в 234 сообщении(ях)
Godzilla82 на пути к лучшему
Сообщение Re: Семисегментный индикатор и клавиатура

Ну, если вы поставили крест на изучении микроконтроллеров, очень жаль.

Постараюсь объяснить в двух словах.

Массив font: думаю и так понятно, что он задаёт соответствие между числом (0..10) и зажигаемыми сегментами.
* Кстати, какие сегменты загораются при коде 10?

Массив data: в этом массиве хранятся отображаемые цифры.

interrupt [TIM0_OVF]:
Это подпрограмма обработки прерываний от таймера 0. Вызывается сама при каждом переполнении таймера (примерно через 8 мс).

display_index: индекс элемента массива data, который отображается в данный момент (у нас же динамическая индикация).

display_common: вспомогательная переменная, аналогичная display_index, указывающая, какой катод индиатора нужно соединить с землей.

key_pressed(): Как и у вас, если нажата кнопка, возвращает код нажатой кнопки. Если кнопки не нажаты - возвращает код 255.

#asm("sei"): инструкция, разрешающая прерывания. она нужна, так как используется прерывание от таймера.

Что ещё непонятного?

Последний раз редактировалось Godzilla82; 09.05.2016 в 21:18.
Godzilla82 вне форума  
Сказали "Спасибо" Godzilla82
AlesyaS (09.05.2016)
Непрочитано 09.05.2016, 21:02  
OKF
Прописка
 
Регистрация: 17.11.2009
Сообщений: 134
Сказал спасибо: 15
Сказали Спасибо 30 раз(а) в 16 сообщении(ях)
OKF на пути к лучшему
По умолчанию Re: Семисегментный индикатор и клавиатура

Более того, схема абсолютно рабочая. Вопрос только в кривости программирующего.
OKF вне форума  
Непрочитано 09.05.2016, 21:11  
Signalshik2
Вид на жительство
 
Аватар для Signalshik2
 
Регистрация: 11.08.2015
Сообщений: 409
Сказал спасибо: 17
Сказали Спасибо 37 раз(а) в 28 сообщении(ях)
Signalshik2 на пути к лучшему
По умолчанию Re: Семисегментный индикатор и клавиатура

Это не ее стихия, сразу видно.
Signalshik2 вне форума  
Непрочитано 09.05.2016, 21:13  
Signalshik2
Вид на жительство
 
Аватар для Signalshik2
 
Регистрация: 11.08.2015
Сообщений: 409
Сказал спасибо: 17
Сказали Спасибо 37 раз(а) в 28 сообщении(ях)
Signalshik2 на пути к лучшему
По умолчанию Re: Семисегментный индикатор и клавиатура

Сообщение от mtit Посмотреть сообщение
А зачем там столько ретурнов? Один раз. После кейса.
- идея с ретернами мне, кстати, понравилась.
Signalshik2 вне форума  
Непрочитано 09.05.2016, 21:15  
baiderin
Почётный гражданин KAZUS.RUN
 
Аватар для baiderin
 
Регистрация: 10.12.2007
Адрес: Екатеринбург
Сообщений: 2,739
Сказал спасибо: 2,487
Сказали Спасибо 897 раз(а) в 584 сообщении(ях)
baiderin на пути к лучшему
По умолчанию Re: Семисегментный индикатор и клавиатура

Сообщение от AlesyaS Посмотреть сообщение
Наверное не моё это дело изучение программирования мк.
А зря. Есть интерес-надо идти дальше. Здесь отвечают на вопросы. Особенно заданные девушками. Вас так мало. Почитать книжки,осмыслить-и вперед.Успех обеспечен. Программирование-штука интересная и захватывающая.
baiderin вне форума  
Непрочитано 09.05.2016, 21:32  
Signalshik2
Вид на жительство
 
Аватар для Signalshik2
 
Регистрация: 11.08.2015
Сообщений: 409
Сказал спасибо: 17
Сказали Спасибо 37 раз(а) в 28 сообщении(ях)
Signalshik2 на пути к лучшему
По умолчанию Re: Семисегментный индикатор и клавиатура

Вот этот код:
// Выводим значение нажатой кнопки на индикатор
switch(scan_key()){
case 1: PORTD = num[1]; break;
case 2: PORTD = num[2]; break;
case 3: PORTD = num[3]; break;
case 4: PORTD = num[4]; break;
case 5: PORTD = num[5]; break;
case 6: PORTD = num[6]; break;
case 7: PORTD = num[7]; break;
case 8: PORTD = num[8]; break;
case 9: PORTD = num[9]; break;
case 11: PORTD = num[0]; break;
default:break;
}
Я бы переписал вот так:
int n = scan_key();
if(n){ //if((n›=1)&&(n‹=9))
PORTD = num[n];
}
else{
if(!n) //if(n == 0)
PORTD = num[0];
}
Signalshik2 вне форума  
Сказали "Спасибо" Signalshik2
AlesyaS (09.05.2016)
Непрочитано 09.05.2016, 23:06  
baiderin
Почётный гражданин KAZUS.RUN
 
Аватар для baiderin
 
Регистрация: 10.12.2007
Адрес: Екатеринбург
Сообщений: 2,739
Сказал спасибо: 2,487
Сказали Спасибо 897 раз(а) в 584 сообщении(ях)
baiderin на пути к лучшему
По умолчанию Re: Семисегментный индикатор и клавиатура

Язык СИ, конечно, позволяет очень краткие записи. Но разбираться в них,особенно начинающим-еще та головоломка.

Мне так понятнее.

int n = scan_key();
if(n) { PORTD = num[n]; } // if((n›=1)&&(n‹=9))
else { if(!n) PORTD = num[0]; } // if(n == 0)

И почему n == 0. Там же n=11;

Последний раз редактировалось baiderin; 09.05.2016 в 23:10.
baiderin вне форума  
 
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Индикатор для китайского приёмника radiolubitel 512 Автоматика и аппаратура связи 6 17.06.2015 13:32
Вывод числа на семисегментный индикатор lexa1424 Микроконтроллеры, АЦП, память и т.д 26 01.05.2013 08:26
Способы вывода данных на семисегментный индикатор artyomugr Микроконтроллеры, АЦП, память и т.д 44 04.08.2011 17:25
PIC16F690+семисегментный индикатор johnnyr Микроконтроллеры, АЦП, память и т.д 8 25.12.2009 21:25
Не матричная клавиатура для МП alexplev Микроконтроллеры, АЦП, память и т.д 8 22.02.2009 03:16


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.