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

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

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

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

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

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

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

 
Опции темы
Непрочитано 05.04.2007, 20:13  
ne-rad
Прописка
 
Регистрация: 14.02.2005
Сообщений: 101
Сказал спасибо: 1
Сказали Спасибо 1 раз в 1 сообщении
ne-rad на пути к лучшему
По умолчанию

Сообщение от ctefan
Результат измерения как написано в
pdf сохраняется в двух регистрах в 16-ричном
виде
я не хочу докапываться до слов, но это очередной бред

10-разрядный(в ДВОИЧНОМ виде) результат преобразования сохранятся в спаренном регистре(16р) ADRESH:ADRESL,запись результата может быть как с правым, так и с левым выравниванием, незадействованные биты читаются как "0"
см. http://www.microchip.ru/files/d-sheets-rus/pic16_23.pdf

ЗЫ:если пишете на асме, то на сях вообще всё это написать не представит сложности, даже практически не зная языка (ИМХО), есть масса подобных примеров как в инете, так в приложениях к компиляторам, посмотрите у товарища, который здесь активно свои курсы продвигает, у него на странице наверняка есть, жаль не помню как его там...
Реклама:
__________________
Festina lente!
ne-rad вне форума  
Непрочитано 06.04.2007, 09:35  
Faworit
Прописка
 
Регистрация: 28.12.2006
Сообщений: 277
Сказал спасибо: 25
Сказали Спасибо 20 раз(а) в 18 сообщении(ях)
Faworit на пути к лучшему
По умолчанию

Добрый день.
Я давно уже использую в работе прогу (кстати общедоступную) Алгоритм Буилдер(V516), официально выложена на атмеле. Для работы с ней единственно что нужно это ЖЕЛАНИЕ! А языки типа ассемблер, Си и пр. уже как-то и не больно нужно. Сам осваивал и через пару недель прошил первую АВРку, а задание было блок управления инкубатором. В описании куча примеров, так что сложности никакой (по сравнению с асмом и си). У нас на рынку РИКи от 3$ и выше а Atiny26 нашол по 2$, есть над чем задуматься.
Faworit вне форума  
Непрочитано 06.04.2007, 09:50  
vasseff
Гражданин KAZUS.RU
 
Регистрация: 24.01.2005
Сообщений: 489
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
vasseff на пути к лучшему
По умолчанию

Сообщение от Faworit
У нас на рынку РИКи от 3$ и выше а Atiny26 нашол по 2$, есть над чем задуматься.
PIC10F200 оптом $0,75
__________________
Удачи!
vasseff вне форума  
Непрочитано 06.04.2007, 10:59  
paha1956
Временная регистрация
 
Регистрация: 17.05.2006
Сообщений: 72
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
paha1956 на пути к лучшему
По умолчанию

Это массив для перевода шестнадцатеричного 4-х битного числа в код для вывода на семисегментный индикатор типа A-361X:

Код:
__flash const unsigned char LED_decode[16]= // Массив перекодировки данных для семисегментного индикатора
{
0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8,
0x80, 0x90, 0x88, 0x83, 0xc6, 0xa1, 0x86, 0x8e
};
Данный массив рассчитан на подключение катода сегмента к выходу порта, на который выводится код, а общего анода всех сегментов к управлящему ключу, который включает и выключает данный индикатор (разряд выводимого числа). Т.е. включенному состоянию сегмента соответствует 0 на выходе порта. Если влючение производится наоборот, т.е. активным является состояние 1, то эти данные необходимо проинвертировать.

Расположение выводов и сегментов индикатора, а так же их соответствие, приведено на прилагаемом рисунке.

Далее приведён кусок кода на С для поразрядного перевода числа в двоично-десятичный вид:

Код:
switch (sign_counter)
  {
  case 0:
  port=LED_decode[Data     -Data/10*10];
  break;

  case 1:
  port=LED_decode[Data/10  -Data/100*10];
  break;

  case 2:
  port=LED_decode[Data/100 -Data/1000*10];
  break;
  
  case 3:
  port=LED_decode[Data/1000-Data/10000*10];
  break;
  }
Номер разряда, выводимого в данный момент в порт, подключенный к индикатору, хранится в переменной sign_counter. Самый младший разряд имеет значение 0. Содержимое port выводится после преобразования на индикатор.
В данном куске программы используется особенность транслятора С, который результат деления двух целых чисел округляет до меньшего целого, т.е. отбрасывает дробную часть. Поэтому результат операции
5/2*2 будет не 5, а 4.
Данную функцию можно, конечно, реализовать и на асме. Общий вид функции при этом будет следующим:

port=LED_decode[Data/10**sign_counter-int(Data/10**(sign_counter+1))*10],
где ** - возведение в степень.

-- Прилагается рисунок: --
__________________
"Имею честь иметь Вашу честь в своём доме..."
paha1956 вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вывести русские символы на LCD из CAVR mdn_tec Микроконтроллеры, АЦП, память и т.д 51 27.05.2012 23:52
как вывести буквы на дисплей andron-kip Микроконтроллеры, АЦП, память и т.д 4 27.10.2008 00:28
как вывести на LCD данные из буфера? goooblin Микроконтроллеры, АЦП, память и т.д 11 02.04.2007 10:01
Как вывести из ступора DS1307? Muzicant Микроконтроллеры, АЦП, память и т.д 4 09.10.2006 19:28
Как значение из памяти программ Akmal Микроконтроллеры, АЦП, память и т.д 2 20.02.2005 02:21


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


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