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

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

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

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

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

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


 
Опции темы

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

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

Здравствуйте. Всем доброго дня. Дорогие форумчане, от всей души Поздравляю Вас, Ваших Отцов, Дедов, Матерей, Бабушек и всех всех с очередным Днём Великой Победы!!!


PS: Увидев код Insector я чуть не потеряла дар речи...
Реклама:
AlesyaS вне форума  
Сказали "Спасибо" AlesyaS
vicgoncharenko (08.05.2016)
Непрочитано 08.05.2016, 09:10  
AlesyaS
Прохожий
 
Аватар для AlesyaS
 
Регистрация: 06.05.2016
Адрес: г. Санкт-Петербург
Сообщений: 9
Сказал спасибо: 5
Сказали Спасибо 1 раз в 1 сообщении
AlesyaS на пути к лучшему
По умолчанию Re: Семисегментный индикатор и клавиатура

Сообщение от baiderin Посмотреть сообщение
Интересно: зачем домохозяйке Си ?
Думаю это гораздо интереснее чем сидеть весь день за телевизором или варить борщ.
AlesyaS вне форума  
Непрочитано 08.05.2016, 09:43  
Insector
Частый гость
 
Регистрация: 24.11.2006
Сообщений: 27
Сказал спасибо: 0
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
Insector на пути к лучшему
По умолчанию Re: Семисегментный индикатор и клавиатура

Мужики, не пугайте девушек на форуме. Интернет не сглаживает углы. И инет-общение воспринимается гораздо острее, нежели общение в жизни.
Insector вне форума  
Непрочитано 08.05.2016, 10:21  
Insector
Частый гость
 
Регистрация: 24.11.2006
Сообщений: 27
Сказал спасибо: 0
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
Insector на пути к лучшему
По умолчанию Re: Семисегментный индикатор и клавиатура

Вы зря наезжаете на кажущуюся сложность моих примеров.
Поясняю:
Писанины да много. Особенно все эти определения. Но если приглядитесь повнимательнее, то поймете, то о чем я говорю.
Один из моих принципов в программировании - модульность программ. Каждый модуль абсолютно самостоятелен. За исключением некоторых взаимосвязей.
Написав и определив все константы, битовые определения, входы-выходы один раз, в дальнейшем вы на таких модулях будете собирать проекты как конструктор из кубиков. При моем подходе при каждом новом проекте в хидере вы просто определяете нужные константы, входы выходы и все. Этакий аналог ардуины. Где именно такой подход. Вы попросту добавляете нужные библиотеки, определяете константы и ввод-вывод.

Вам нужна клавиатура? Открыли модуль, внесли, на каких входах будут висеть кнопки, нужные времянки. Модуль готов.

Нужен семисегментный дисплей? Открыли модуль, быстренько внесли на каких выводах будут сегменты, общие выводы. Модуль готов.

Нужен знакосинтезирующий ЖКИ? Аналогично.
Insector вне форума  
Сказали "Спасибо" Insector
mtit (08.05.2016)
Непрочитано 08.05.2016, 11:06  
baiderin
Почётный гражданин KAZUS.RUN
 
Аватар для baiderin
 
Регистрация: 10.12.2007
Адрес: Екатеринбург
Сообщений: 2,739
Сказал спасибо: 2,487
Сказали Спасибо 897 раз(а) в 584 сообщении(ях)
baiderin на пути к лучшему
По умолчанию Re: Семисегментный индикатор и клавиатура

Сообщение от AlesyaS Посмотреть сообщение
это гораздо интереснее чем сидеть весь день за телевизором или варить борщ.
Абсолютно согласен. А борщ пусть процессор варит.
baiderin вне форума  
Непрочитано 08.05.2016, 13:34  
jump
Почётный гражданин KAZUS.RUN
 
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 8,009
Сказал спасибо: 0
Сказали Спасибо 4,955 раз(а) в 2,379 сообщении(ях)
jump на пути к лучшему
По умолчанию Re: Семисегментный индикатор и клавиатура

Сообщение от baiderin Посмотреть сообщение
А борщ пусть процессор
в мультиварке готовит. вот только кто картошку чистить будет?
jump вне форума  
Непрочитано 08.05.2016, 14:58  
vicgoncharenko
Вид на жительство
 
Регистрация: 09.08.2006
Адрес: Россия, Чукотка
Сообщений: 441
Сказал спасибо: 377
Сказали Спасибо 341 раз(а) в 139 сообщении(ях)
vicgoncharenko на пути к лучшему
По умолчанию Re: Семисегментный индикатор и клавиатура

Сообщение от jump Посмотреть сообщение
вот только кто картошку чистить будет?
Мультибабушка.
__________________
Suae quisque fortunae faber est
vicgoncharenko вне форума  
Непрочитано 08.05.2016, 17:04  
Godzilla82
Почётный гражданин KAZUS.RUN
 
Регистрация: 29.10.2006
Сообщений: 1,449
Сказал спасибо: 99
Сказали Спасибо 318 раз(а) в 234 сообщении(ях)
Godzilla82 на пути к лучшему
Сообщение Re: Семисегментный индикатор и клавиатура

Сотворю зло...

PHP код:
 
#include ‹io.h›
#include ‹delay.h›

#define             key_col             PORTB
#define             key_row             PINB

#define             led_seg             PORTD
#define             led_com             PORTC

unsigned char       font[11]            = { 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,  0x00 };
unsigned char       data[4]             = { 10,10,10,10 };
unsigned char       display_index       = 0;
unsigned char       display_common      = 1;


interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
led_com = ~display_common; 
led_seg = font[data[display_index]];
display_index++;
display_common ‹‹= 1;
if(display_index › 3)   {
                        display_index   = 0;
                        display_common  = 1;
                        }
}

unsigned char key_pressed(void)
{
key_col = 0b11111110;
switch(key_row & 0b11110000)
{
case 0b11100000:    return 1;
case 0b11010000:    return 4;
case 0b10110000:    return 7;
case 0b01110000:    return 10;
}
key_col = 0b11111101;
switch(key_row & 0b11110000)
{
case 0b11100000:    return 2;
case 0b11010000:    return 5;
case 0b10110000:    return 8;
case 0b01110000:    return 0;
}
key_col = 0b11111011;
switch(key_row & 0b11110000)
{
case 0b11100000:    return 3;
case 0b11010000:    return 6;
case 0b10110000:    return 9;
case 0b01110000:    return 11;
}
return 0xFF;
}

void init(void)
{
DDRB    = 0b00001111;
PORTB   = 0b11111111;

DDRC    = 0b00001111;
PORTC   = 0b00001111;

DDRD    = 0b11111111;
PORTD   = 0b00000000;

// Clock value: 31,250 kHz
TCCR0   = (1‹‹CS02) | (0‹‹CS01) | (0‹‹CS00);
TCNT0   = 0x00;
TIMSK   = (1‹‹TOIE0);

// Analog Comparator initialization
ACSR    = (1‹‹ACD);
}

void main(void)
{
unsigned char c;
unsigned char current_digit       = 0;
init();
#asm("sei")
begin:
c = key_pressed(); 
if(c == 0xFF) goto begin;
if(c==11)   {
            current_digit = 0;
            data[0] = 10; data[1] = 10; data[2] = 10; data[3] = 10;
            goto begin;
            }
data[current_digit] = c;
current_digit++;
if (current_digit›3) current_digit=0;
while(key_pressed() != 0xFF);
delay_ms(50);
goto begin;
} 
Миниатюры:
Нажмите на изображение для увеличения
Название: scheme.png
Просмотров: 0
Размер:	30.6 Кб
ID:	92497  

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

Магические цифры, goto, DDR, TCCR... Руки бы поотрывать! Шютка.
OKF вне форума  
Непрочитано 09.05.2016, 11:33  
baiderin
Почётный гражданин KAZUS.RUN
 
Аватар для baiderin
 
Регистрация: 10.12.2007
Адрес: Екатеринбург
Сообщений: 2,739
Сказал спасибо: 2,487
Сказали Спасибо 897 раз(а) в 584 сообщении(ях)
baiderin на пути к лучшему
По умолчанию Re: Семисегментный индикатор и клавиатура

За gotо,разве что.
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, время: 03:52.


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