Технический Портал Левши Пятница, 19.04.2024, 23:11
| RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: terpelivi, VasylYE  
ТЕХНИЧЕСКИЙ ФОРУМ » ЭЛЕКТРОНИКА » МИКРОКОНТРОЛЛЕРЫ » Делаю первые шаги в МК и пытаюсь разобраться) (Касается КР1861ВЕ31, ацп к нему, семисегментных индикаторов.)
Делаю первые шаги в МК и пытаюсь разобраться)
levon66Дата: Четверг, 08.01.2009, 21:00 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 2
Награды: 0
Статус: Offline
Достало копаться в сети и листать книги, поэтому обращаюсь к живым микроэлектронщикам... Ситуация вот какая. Есть сигнал аналоговый. Напряжение от 0 до +5В. Нужно на 4 блока по 2 индикатора семисегментных вывести: среднее значение за 10 измерений, текущее, миниммальное и максимальное. Есть еще 2 кнопки: старт и сброс. Есть контроллер КР1816ВЕ31. Соотвественно без памяти программ, но с памятью данных. Есть АЦП-8ми разрядное. На выбор.....
Вот так) вообщем начал разбираться, то-се.
1. Дошел до ацп-AD7880. Как его подключить-понятно. Но вот вопрос. Он же выдаст мне 8 бит. А нужно выводить "целые" вольты и "десятые". Можно взять и четыре старших бита-как целые вольты, а 4 младших - за десятые? если да-то как? или если нет, то что делать? Или нужно переводить в 2-10 систему?
2. Дальше...я эти биты принял, и решил кидать в "банки" то есть все операции там произвести. Положим получилось и у меня будут они лежать как 1 байт. Можно видимо выделить старшие и младшие и отдельно подавать на индикаторы? И здесь же - как быть с точкой "h" циферкой. Ее зажигать нужно будет одновременно со старшим разрядом или как???
3. Кнопки. От них нужно будет делать прерывание? то есть нажал "старт" у меня запустился МК, обнулили все, а потом запустили ацп, считали и пошло-поехало. Или как? Или старт включать должно считывание ацп? Сброс-просто обнуляет видимо.
4. Внешняя память (здесь видимо мое непонимание читателя выбесит, но все же) - - - я в нее что записывать-то должен??? программу??? то есть мне нужно каждый mov кидать как-то туда....?? то есть у меня порты P0 и P2. На Р0 подаю младший байт адреса ячейки ПЗУ, а на Р2-старший. Младший по сигналу ALE уходит в защелку (ну эти RG)??? а потом на Р0 выставляю свой несчастный mov????

вообщем я пока в трансе, но затею это все дело изучить не оставлю)
помогите, микроконтроллерщики добрые..)

Добавлено (08.01.2009, 18:32)
---------------------------------------------
ОЧЕНЬ-ОЧЕНЬ нужна помощььььь

Добавлено (08.01.2009, 21:00)
---------------------------------------------
блин, тут люди живые есть вообще?

 
ЮраДата: Пятница, 09.01.2009, 09:18 | Сообщение # 2
Генерал-лейтенант
Группа: Проверенные
Сообщений: 618
Награды: 1
Статус: Offline
Quote (levon66)
блин, тут люди живые есть вообще?

Есть причем немало biggrin
По МК есть у нас один спец Василый вот он и поможет вам с вашей проблемой smile


Учиться никогда не поздно!
 
ЛЕВШАДата: Пятница, 09.01.2009, 13:25 | Сообщение # 3
Admin
Группа: Администраторы
Сообщений: 1923
Награды: 2
Статус: Offline
Quote (levon66)
блин, тут люди живые есть вообще?

люди то есть, потерпите.
если кто сможет помочь, обязательно откликнется. smile


упростить - улучшить!
если ВЫ хотите помочь сайту в развитии,
наши счета:
Z789673670495 ($)
R806233314616 ®
41001205775274(yand)
 
levon66Дата: Пятница, 09.01.2009, 19:10 | Сообщение # 4
Рядовой
Группа: Пользователи
Сообщений: 2
Награды: 0
Статус: Offline
будем ждать добрых людей.... sad

Добавлено (09.01.2009, 13:49)
---------------------------------------------
а может есть здесь где нибудь похожие штуки? или примеры программ с индикацией динамической на асме? или пересчет из bin в 2-10 систему? асм для кр1816ве31

Добавлено (09.01.2009, 18:55)
---------------------------------------------
как можно сделать перевод из двоичной системы в двоично-десятичную? команд таких нет. а поиски написанных программ с такими оперциями не помогают. мысль о том, что каждой комбинации числа в bin сопоставить 2-10 число это как-то пугает.
и еще вопрос. как реализовать можно вычисление среднего из 10 последних показаний. Есть мысль, что есть 10 разрядов. Вычислил среднее, потом получил новое измерение-записал вместо 1-го из тех десяти, вычислил среднее. ПОотом получил измерение записал вместо второго, вычислил и т.д. Но как это в асме сделать. Это ведь не паскаль с циклами обычными. Как-то может связываться с SP???
________________
а задача вот какая:с ацп с интервалом в 1с выводить-текущее, мин, макс, и среднее из 10 последних. Индикаторы 4 по 2 разряда. а еще кнопки пуск и сброс предусмотреть.

Добавлено (09.01.2009, 19:10)
---------------------------------------------
про системы счисления я понял как реализовать... ПОМОГИТЕ КТО-НИБУДЬ!!!!!!!!!!!!
как В АССЕМБЛЕРЕ ПОД кр1816ве31 реализовать можно вычисление среднего из 10 последних показаний. Есть мысль, что есть 10 разрядов. Вычислил среднее, потом получил новое измерение-записал вместо 1-го из тех десяти, вычислил среднее. ПОотом получил измерение записал вместо второго, вычислил и т.д. Но как это в асме сделать. Это ведь не паскаль с циклами обычными. Как-то может связываться с SP???
________________
а задача вот какая:с ацп с интервалом в 1с выводить-текущее, мин, макс, и среднее из 10 последних. Индикаторы 4 по 2 разряда. а еще кнопки пуск и сброс предусмотреть.

 
ЮраДата: Пятница, 09.01.2009, 19:22 | Сообщение # 5
Генерал-лейтенант
Группа: Проверенные
Сообщений: 618
Награды: 1
Статус: Offline
Quote (levon66)
ПОМОГИТЕ КТО-НИБУДЬ!!!!!!!!!!!!

Так без паники..! smile
сёдня постараюсь найти Василия он поможет вашей проблеме..


Учиться никогда не поздно!
 
VasylYEДата: Суббота, 10.01.2009, 13:35 | Сообщение # 6
Рядовой
Группа: Проверенные
Сообщений: 263
Награды: 1
Статус: Offline
Прошу прощения, есть проблемы со связью, не было возможности раньше зайти на сайт.
А почему выбор именно на КР1816ВЕ31? это очень древняя микросхема, давно уже не выпускается, да и лучше все таки искать такую, в которой и память данных, и память програм все находится внутри
Далее
1. Если мы с АЦП получаем 8-битный результат, это значит, что диапазон от 0 до опорного напряжения разбит на 255 частей, например, если опорное напряжение 5 вольт, то 1 бит у нас равен 5/255=0,0196 вольт. Таким образом, результат с АЦП нужно множить на коэффициент 0,0196, тогда мы получим значение в вольтах. Преобразование в десятичную форму нужно делать непосредственно перед выводом на индикацию.
Для примера - Если мы считали с АЦП значение 0х5F (шестнадцатеричное), коэф. 0,0196 чтобы не мучаться с дробями, можно записать как 196 или 0хС4 (шестнадцатеричное), а в самом конце мы перенесем точку дроба туда, куда нужно.
Множим 0х5F на 0хС4, получаем результат 0х48ВС. Далее преобразуем шестнадцатеричное значение в так называемое упакованное десятеричное, то есть мы получим десятеричное число 18620 (ниже покажем, как это делать). Помня, что нам нужно перенести точку на 4 знака влево, мы получили результат 1,8620 вольта.
Далее, выводим это на индикатор.
2. После множения на коефициент, и преобразования из шестнадцатеричной в десятеричную систему, мы можем выводить результат на индикацию. Например, у нас трехразрядный индикатор. Значит, крайний левый будет показывать единицы, средний десятые, правый - сотые. Точку, соответственно нужно зажигать в левом индикаторе (т.е. перед десятыми).
3. Кнопки можно считывать в цикле, если не нужна мгновенная реакция на изменения их состояния. Сброс лучше не делать, так как тогда все обнуляется.
4. Работа с внешней памятью идет полностью автоматически, т.е. процессор сам выставляет значения на порты Р0 и Р2, сам дергает сигналом ALE и т.д.
Quote (levon66)
а может есть здесь где нибудь похожие штуки? или примеры программ с индикацией динамической на асме? или пересчет из bin в 2-10 систему? асм для кр1816ве31

асм для кр1816ве31 это класический 51ый асм
думается, что нужно делать все последовательно -
например. Рисуем схему,
пишем подпрограмму вывода на индикацию (пусть берет себе значения из каких то ячеек, в которые мы потом будем писать результат вычислений).
Далее делаем подпрограмму считывания из АЦП.
Потом обрабатываем полученный результат (множим на коэф.)
Переводим в десятеричный вид и уж это пишем в те ячейки, откуда подпрограмма вывода на индикацию будет их читать и показывать.
Quote (levon66)
как можно сделать перевод из двоичной системы в двоично-десятичную? команд таких нет. а поиски написанных программ с такими оперциями не помогают. мысль о том, что каждой комбинации числа в bin сопоставить 2-10 число это как-то пугает. и еще вопрос. как реализовать можно вычисление среднего из 10 последних показаний. Есть мысль, что есть 10 разрядов. Вычислил среднее, потом получил новое измерение-записал вместо 1-го из тех десяти, вычислил среднее. ПОотом получил измерение записал вместо второго, вычислил и т.д. Но как это в асме сделать. Это ведь не паскаль с циклами обычными. Как-то может связываться с SP???

здесь тоже есть циклы, есть и целые решения данного вопроса
Например, мы суммируем десять измерений, потом делим на 10. Это не сложно сделать
Лучше суммировать такое количество измерений, которое является степенью от 2 (4, 8, 16, ...). Такие числа проще делить на число, кратное 2 (сдвигая их вправо).

Если это должен быть реальный прибор, то лучше взять любой другой МК той же архитектуры, но посовременнее, и с встроенной памятью. Что именно уже сделано? задавайте вопросы, будем стараться ответить.


А нам своє робить!
 
любительДата: Среда, 18.02.2009, 20:32 | Сообщение # 7
Лейтенант
Группа: Проверенные
Сообщений: 44
Награды: 0
Статус: Offline
дядьку, не мучайтесь.возьмите мелкосхему посвежее.(они сейчас мизер стоят).и что бы все уже внутри было.а выводить лучше на жк дисплей.там много чего хорошего написать можно.выйдет намного быстрее по времени, да и по деньгам тоже.а то что применили вы, это вчераший день.вы в совершенстве изучите кр1816ве31.и к этому приятному моменту вы обнаружите неприятные моменты.мелкосхем таких уже нет (снимут, если уже не сняли с производства).и ваши знания уже никому не будут нужны.(базовая подготовка конечно не в счет, процессор он и в африке процессор).и вам прийтется изучать то, с чего надо было сразу начинать.опишите вашу задачку в общем, и думаю гуртом посоветуем на каком камне остановиться.
 
c8051Дата: Пятница, 20.02.2009, 12:56 | Сообщение # 8
Рядовой
Группа: Пользователи
Сообщений: 2
Награды: 0
Статус: Offline
Если Вам интересен именно 51-й, то:
1) купить готовую недорогую платку от SiLabs ( ToolStick = $25) = пошаговая отладка по USB
2) купить готовую плату на Futurlec.com ( $20-$90 + mail $7)
3) купить(найти) at89c51ed2,rd2, id2,.. ( $6-$10) = отладка по UART
 
KatzДата: Суббота, 21.02.2009, 17:00 | Сообщение # 9
Ефрейтор
Группа: Проверенные
Сообщений: 29
Награды: 0
Статус: Offline
Для отладки - да, камешек неплохо бы покрупнее, на будущее сгодится. Тут можно и потратиться.
А с данной задачкой на ура справится какой-нибудь из мелких Атмелов (пожалуй, даже 1051) или LPC900 - за доллар-полтора, среди LPC900 есть модели с АЦП на борту.
И LCD вместо светодиодов - удобнее подключать и куда меньше кушает, если подсветку не считать.


Летать быстрее света невозможно, да и стоит ли стараться - всё равно никто не увидит и не оценит.

Сообщение отредактировал Katz - Суббота, 21.02.2009, 17:08
 
любительДата: Воскресенье, 22.02.2009, 18:20 | Сообщение # 10
Лейтенант
Группа: Проверенные
Сообщений: 44
Награды: 0
Статус: Offline
да, поддерживаю.камешек действительно надо сразу изучать покрупнее.к тому приятному моменту когда он будет изучен, он будет стоить копейки.да и сейчас они в принципе недорого стоят.а если програмить во фловкоде.так и вообще разницы особой нет.главное что бы ног хватило и периферии.ну может еще какое нибуть сверх низкое энергопотребление.только что одно, что другое.а учиться то все равно надо.за нас никто не научиться.
 
LeksusДата: Суббота, 20.06.2009, 00:01 | Сообщение # 11
Подполковник
Группа: Проверенные
Сообщений: 125
Награды: 0
Статус: Offline
Почему не происходит стирание Flash памяти микроконтроллера все прозвонил все нормально уже третью паяю что делать даже не знаю
 
LeksusДата: Воскресенье, 21.06.2009, 17:22 | Сообщение # 12
Подполковник
Группа: Проверенные
Сообщений: 125
Награды: 0
Статус: Offline
Начинаю стирать микроконтроллер пишет стерт потом проверяю Проверка на чистоту пишет Flash не пуста

Электроника это - ... наука о контактах!
 
ЛЕВШАДата: Воскресенье, 21.06.2009, 17:48 | Сообщение # 13
Admin
Группа: Администраторы
Сообщений: 1923
Награды: 2
Статус: Offline
Дело скорее всего в железе (програматор), тоже намаялся в начале пока собрал и отладил.
Вытворял нечто похожее.
Настройки нужно глянуть.


упростить - улучшить!
если ВЫ хотите помочь сайту в развитии,
наши счета:
Z789673670495 ($)
R806233314616 ®
41001205775274(yand)
 
VasylYEДата: Воскресенье, 21.06.2009, 21:18 | Сообщение # 14
Рядовой
Группа: Проверенные
Сообщений: 263
Награды: 1
Статус: Offline
Что за МК? какой программатор?
а если что то запрограммировать после стирания?


А нам своє робить!
 
LeksusДата: Понедельник, 22.06.2009, 01:07 | Сообщение # 15
Подполковник
Группа: Проверенные
Сообщений: 125
Награды: 0
Статус: Offline
Да не железо проверено на другой плате
Мк атмеловский самое интересное то что при понижении напряжения питания он один раз запрограммировался biggrin т.е сначала стерся а потом запрограмировался


Электроника это - ... наука о контактах!
 
ТЕХНИЧЕСКИЙ ФОРУМ » ЭЛЕКТРОНИКА » МИКРОКОНТРОЛЛЕРЫ » Делаю первые шаги в МК и пытаюсь разобраться) (Касается КР1861ВЕ31, ацп к нему, семисегментных индикаторов.)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Copyright MyCorp © 2024