Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.51/225: Рейтинг темы: голосов - 225, средняя оценка - 4.51
xord

частотомер на at89c51

01.06.2012, 12:11. Показов 44630. Ответов 47
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сделал модель частотомера ra4nalа в протеусе.



не могу разобраться, почему не работает индикация.
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.06.2012, 12:11
Ответы с готовыми решениями:

частотомер
форумчани подскажите пожалуйста, разрабатываю вот этот частотомер http://chipenable.ru/index.php/programm ... a-avr.html, не смог...

Частотомер.
Делаю частотомер для струнного датчика с автогенератором, сигнал на выходе 0,3 В прямоугольный от 2 до 10 кГц. Подключаю автогенератор на...

Частотомер
Привет всем, есть программа таймера ( частотомера) написана на ассемблере, в протеусе проверил сам таймер работает, но сама суть задачи не...

47
0 / 0 / 0
Регистрация: 11.06.2011
Сообщений: 322
02.06.2012, 13:49
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от SWK
Никакой симулятор в РЕАЛЬНОМ времени работать не может...
... думаю это и так всем понятно, но баг не в этом.....
0
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,752
02.06.2012, 13:50
Цитата Сообщение от ShypKyttir
А вот, что действительно "неприятно", так это стиль программирования - автор не использует именованных констант и разбираться в такой программе - удовольствие ниже среднего.....
Согласен, вылавливать по тексту обращения к портам, морока еще та. Особенно в С51 с его кучей методов адресации. Однако при непосредственной адресации не все так плохо. Простым поиском я насчитал по 2 места с непосредственным обращением с портам P3.0 и P3.1. Если не используются другие методы обращения, возможно и прокатит.
0
0 / 0 / 0
Регистрация: 11.06.2011
Сообщений: 322
02.06.2012, 14:10
по логике в принципе все понятно -
Р3.0 разрешает/запрещает цикл измерения
Р3.1 выполняет досчет
так что замена Р3.0-Р3.1 на Р2.0-Р2.1 думаю пройдет, а вот строки типа
Code
1
2
3
4
5
6
....
MOV    @R1,#0FH     ; гашение нуля
....
MOV    R4,#0B7H     ; точки без делителя
JB     P3.4,DS1     ; без делителя
MOV    R4,#0DBH     ; точки с делителем
которыми пестрит программа, наводит на мысль, что лучше все написать с нуля.....
0
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,752
02.06.2012, 14:24
Цитата Сообщение от ShypKyttir
... наводит на мысль, что лучше все написать с нуля.....
Было бы еще время и желание ...
0
SWK
02.06.2012, 15:30
Вообще-то, чем маяться с переделкой довольно древней конструкуции на чуть менее древнюю, лучше подобрать что-нибудь из готовых разработок.
Например, тут: http://www.cqham.ru/cons_trx.htm#10

Я бы посоветовал делать на PIC. Они без особых проблем считают с внешнего входа через внутренний предделитель до 60-70МГц, с дискретностью 1 Гц, независимо от тактовой частоты самого контроллера (хоть 1 МГц), - в отличие от Атмеловских, на которых больше единиц мегагерц не получишь, даже при тактовой 20МГц.

Например, "Классика жанра", - частотомер Денисова (он же еще и - цифровая шкала):
http://www.cqham.ru/digi.htm
Особенно если использовать для него прошивку с доработками Корабельникова (есть и под 84, и под 628).
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,752
02.06.2012, 15:36
Есть подозрение что задача чисто учебная, и для воплощения в железе не предназначена. Нет?
Если погуглить, можно найти и схемы с уже готовыми проектами для Proteus.
Частотомер на PIC16F873 с двух строчным ЖКИ способный измерять частоты - http://kazus.ru/articles/427.html
0
xord
02.06.2012, 16:01
Цитата Сообщение от omokost
Есть подозрение что задача чисто учебная, и для воплощения в железе не предназначена. Нет?
Правильное подозрение :) По крайней мере пока нет цели воплотить в железе, может быть скоро появится такое желание.

Первоначальная цель была написать программу на си для этого контроллера, но возникли проблемы с симуляцией схемы с использованием оригинальной прошивки (которая была уже неоднократно проверена многими людьми), поэтому решил, что проблемы не в прошивке, а в самом построении схемы.
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,752
02.06.2012, 16:12
Построение схемы классическое для микроконтроллеров C51. Погуглите на тему "измерение частоты методом досчета".
P.S. И если уж так необходимо применить С51, возмите что нибудь пожирнее, например AT89C51RD(ED)2. Он есть и в Proteus.
0
SWK
02.06.2012, 20:34
Цитата Сообщение от xord
Первоначальная цель была написать программу на си для этого контроллера, но возникли проблемы с симуляцией схемы с использованием оригинальной прошивки.
На Си частотомеры не пишут.
В большинстве имеющихся любительских частотомерах на микроконтроллерах для получения минимальной погрешности используется формирование цикла измерения программным путем, с точно заданным числом тактов исполнения, и без использования прерываний. Иначе неизбежен разброс в несколько тактов, что вызовет пляску показаний при измерении неизменной частоты.

На Си вообще задержки непредсказуемы, один и тот же листинг откомпилируется с разным временем выполнения, в зависимости от компилятора, установок оптимизации, и трудноучитываемого Влияния Фазы Луны на Котовы Яйца.

Использовать же для формирования цикла измерения задержку, например, на таймере, как я уже отметил, даст джиттер в несколько тактов, из за непредсказуемости задержки отработки прерывавания.

Применяемые же методы формирования цикла изменения с точно подсчитанным числом тактов программы на ассемблере, дает точность +- 1 единица последнего разряда (что типично для всех цифровых приборов) + погрешность кварцевого генератора. То есть фактически точность определяется кварцем и схемой его включения. Что при подгонке его частоты по эталонному источнику, даже без термостата, позволяет иметь долговременную погрешность порядка единиц герц на мегагерц измеряемой частоты (5 точных десятичных разрядов). С термостатом - еще лучше.
0 / 0 / 0
Регистрация: 28.01.2010
Сообщений: 569
03.06.2012, 11:44
Да можно и на C получить приемлемый джиттер - контроллер взять пошустрее. Обсуждаемые атмеловские 51 тут не в кассу - даже RD2 на максимальных 60 МГц даст 5 мипсов максимум, при негуманной цене (кхм, пардон - тут же модель. :) )
В качестве опорника, как компромисс между простым кварцем и дорогим и габаритным термостатированным генератором можно применить TCXO (термокомпенсированный кварцевый генератор, выпускаются в виде "гибридок". Компенсация там параметрическая - емкостями со строго определёнными ТКЕ). В индустриальном диапазоне температур их уход - несколько десятых Гц на МГц частоты.
0
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,752
03.06.2012, 12:18
Цитата Сообщение от Kotz
Да можно и на C получить приемлемый джиттер - контроллер взять пошустрее. Обсуждаемые атмеловские 51 тут не в кассу - даже RD2 на максимальных 60 МГц даст 5 мипсов максимум, при негуманной цене (кхм, пардон - тут же модель. :)
Вначале про мипсы, С51RD2 имеют режим Х2, при котором рабочий цикл занимает 6 тактов генератора, LP51RD2 могут работать в режиме 1Мгц ~ 1MIPS.
Все это при снижении максимальной тактовой частоты, но это так, к слову.
Теперь про джиттер, вышеназванные МК имеют режим скоростного вывода PCA - формирование импульса заданной длительности. При этом формирование импульса происходит чисто аппаратно, программа только задает необходимый порядок работы внутренних блоков МК.
Так что похоронить старичков пока не получается.
0
0 / 0 / 0
Регистрация: 11.06.2011
Сообщений: 322
03.06.2012, 12:57
Итоги ... :) .... Похоже проблема работоспособности приведенной ТС схемы, в кривой симуляции периферии 8051 Proteus_ом. По крайней мере многие из режимов таймеров-счетчиков точно не работают, отсюда и проблемы ....
0
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,752
03.06.2012, 13:17
Цитата Сообщение от ShypKyttir
Итоги ... :) .... Похоже проблема работоспособности приведенной ТС схемы, в кривой симуляции периферии 8051 Proteus_ом ....
Речь должна идти не о кривой симуляции, а о расхождении поведения железа с их абстрактной, идеальной моделью. Собственно точного соответствия никто и не обещал. Каждый инструмент хорошо работает только при правильном примении. Можно и шуруп забить молотком, и гвоздь закрутить отверткой.
ТС неплохо было бы почитать FAQ по протеусу от Halex07 на казусе. Там есть и про заморочки динамической индикации в протеус.
0
0 / 0 / 0
Регистрация: 28.01.2010
Сообщений: 569
03.06.2012, 13:20
Цитата Сообщение от omokost
Теперь про джиттер, вышеназванные МК имеют режим скоростного вывода PCA - формирование импульса заданной длительности. При этом формирование импульса происходит чисто аппаратно, программа только задает необходимый порядок работы внутренних блоков МК.
Так что похоронить старичков пока не получается.
PCA - конечно, полезная штука, но она есть не только у атмела, и за гораздо меньшие деньги. Просто атмел широко известен. :)
По долгу службы приходилось пользовать, например, почти полный аналог RD2 с МЦ в один такт и тактовой вплоть до 25 МГц - MPC82G516. $2 мелким оптом (25 шт.) Сейчас работаю с Silabs, там блок PCA есть практически во всех моделях, даже в "блошках" типа C8051F300.
0
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,752
03.06.2012, 13:31
Цитата Сообщение от Kotz
PCA - конечно, полезная штука, но она есть не только у атмела, и за гораздо меньшие деньги. Просто атмел широко известен. :)
Согласен с вами, цены на С51 у атмела просто негуманные. И я их не советую, если бы можно было найти аналог pin-to-pin за более вменяемые деньги и доступностью, с удовольствием бы перешел. Я имею в виду производство, в своих поделках С51 не применяю.
0
0 / 0 / 0
Регистрация: 11.06.2011
Сообщений: 322
03.06.2012, 13:39
Цитата Сообщение от omokost
Речь должна идти не о кривой симуляции, а о расхождении поведения железа с их абстрактной, идеальной моделью. Собственно точного соответствия никто и не обещал.
...речь не о том, что Proteus плох, а о том, что приведенная схема в нем работать не будет и эта проблема не в коде...
0
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,752
03.06.2012, 13:49
Цитата Сообщение от ShypKyttir
... и эта проблема не в коде...
Любой код можно подшаманить под абстрактную модель, при этом он будет на ура работать и на реальном железе. Просто часто мелочи опускаются, мол и так работает, а абстрактная модель требует чтобы все было "как положено в учебнике".
Просто разбираться с предложенным кодом не сахар, стиль написания напрягает, и главное это никому не нужно.
0
0 / 0 / 0
Регистрация: 11.06.2011
Сообщений: 322
03.06.2012, 13:59
Цитата Сообщение от omokost
Любой код можно подшаманить под абстрактную модель, при этом он будет на ура работать и на реальном железе.
...если только аппаратные возможности реализовать программно, но такое "шаманство" никому не нужно .... И еще раз - речь не о том, что есть "отличия", а о том что не работает ...
Если есть желание - попробуйте, например, запустить режим генерации меиндра на T2 у AT89С52 .....
0
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,752
03.06.2012, 14:14
Цитата Сообщение от ShypKyttir
Если есть желание - попробуйте, например, запустить режим генерации меиндра на T2 у AT89С52 .....
Если честно, нет никакого желания. Понадобится на работе, запущу, и будет работать.
Меня просто удивляет нежелание людей воспользоваться чужим опытом. Строки из FAQ по протеусу от Halex07, часть первая, глава "Выводы по применению динамической индикации в Протеусе и в реальности".
В-третьих: для того, чтобы динамическая индикация при симуляции выглядела реально, нам
необходимо предусмотреть кратковременные паузы при смене разрядов, исключающие наползание
разрядов индикации. Паузы могут быть достаточно короткими (в районе 10 микросекунд), но их
присутствие необходимо. Первым на эту особенность обратил внимание dosykus и материал по
этой теме был в одной из веток форума Kazus
0
0 / 0 / 0
Регистрация: 11.06.2011
Сообщений: 322
03.06.2012, 14:59
Цитата Сообщение от omokost
Меня просто удивляет нежелание людей воспользоваться чужим опытом. Строки из FAQ по протеусу от Halex07, часть первая, глава "Выводы по применению динамической индикации в Протеусе и в реальности".
... только причем здесь динамическая индикация??? ... разве чтобы поддержать беседу :)
Схема "честно" выводит строку HELLO, а вот отображать частоту она не будет из-за того, что не происходит счет импульсов .....
Цитата Сообщение от omokost
Понадобится на работе, запущу, и будет работать.
... если перепишете модель AT89С52, то да ...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.06.2012, 14:59

Частотомер
Помогите разобраться в схеме: http://i025.***********/1108/36/f927493416ca.jpg Вопросы: 1. Если подать на 11 пин...

Частотомер
Всем привет. Решил обзавестись сим девайсом, погуглив в инете и просмотрев несколько вариантов схем появилось стойкое желание изобрести...

Ev8031 и at89c51
Суть вопроса такова: есть стенд ev8031 и на нём мк at89c51. к стенду есть методичка с лабами, в лабах есть примеры кода. в коде есть...

AT89C51 UART
Добрый вечер. Вот возникла такая проблема: на контролере AT89C51 питаюсь завести UART. SCON: SM0 = 1; SM1 = 0 REN = 1; RI = 0; TI = 0; ...

Задержка на МК AT89C51
Добрый день. Вот такая проблема: хочу организовать задержку на МК AT89C51. Делаю циклом: нифига, а как юзать таймеры на Си в этом МК мне...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
SUNO Ai - Река Без Дна
zorxor 31.07.2026
Автор стихотворения - астрофизик Марина Катыс Ссылка на сгенерированную музыкальную композицию: https:/ / suno. com/ song/ 6f6e5464-b290-4650-be6c-44c85f8d8013 Я говорю, что Время- как вода течет. . .
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru