помочь взаимодействия AD0804 для AT89C4051

V

vinash

Guest
Привет,
Я пытаюсь интерфейса AD0804 для микроконтроллера AT89C4051,
есть ли какие-либо schmetics или любых веб-сайтов, где я смогу получить ссылку> Спасибо.

 
Привет Vinash,

Я вам уведомление борьба получить ADC с AT89C4051.
Первая по умолчанию компараторе RC и внешних.
http://www.edaboard.com/ftopic144871.html
Тогда вы пробовали с MCP3208 подходит для 4051 из-за нескольких соединительных линий с использованием SPI битных взрыва с 4051 по умолчанию не имеет интерфейс SPI.
http://www.edaboard.com/ftopic144860.html
Теперь попробуйте с ADC0804 (карты памяти, периферийного с гораздо более соединительных линий, чем интерфейс SPI).

В подлинных данных это небольшой asssembler программу написал в 8048 ассемблера.Вы можете использовать ее в качестве руководства для C программой.

Или вы можете попробовать этот дизайн: http://www.iguanalabs.com/adc2051.htm
Знайте, что на этой странице вы не нашли какого-либо программного обеспечения (вы должны заплатить за CD), но, на мой взгляд, достаточно намека построить его самостоятельно.

 
HI,
Я интерфейсом AT89C4051 с ad0804, и мой исходный код является следующим:

/ / Взаимодействие ADC0804 с AT89C4051,
/ / Defination контактов заключаются в следующем:# включить <AT89x051.h>sbit WRITE P3 ^ = 0; / / определение WR и INTR штырям
sbit INTR = P3 ^ 1;

Неподписанный INT A [10] = (0x40, 0x60, 0x44, 0x64, 0x50, 0x68, 0x4C, 0x6C, 0x50, 0x70);
scanled ();
недействительным задержку (недействительными);
Неподписанный INT advalue, стоимость;
Основными недействительным (недействительными) (
P1 = 0xFF;
P3 = 0xFF;

в то время как (1) (

WRITE = 0;
WRITE = 1;
а (INTR == 1);
advalue = P1;
Значение = advalue * 5 / 256;
scanled ();

)
)

scanled ()
(
P3 =
A [стоимости 10%];

)Я получения показаний, но не в режиме реального времени, я whenver изменения напряжения inout, я должен перейти из главных выключения и перед привело отражает входного напряжения,
было бы очень полезно, если бы Вы помочь мне о том, как сделать это в реальном времени,
то есть, нет необходимости переключать сети отключена, и я whenver изменение входного напряжения, он автоматически отражает индикатор.Я надеюсь, что вы могли бы мне помочь.Спасибо.

 
Если вы
уже использовали P3 ^ 0 и P3 ^ 1, как контролировать соответствие почему внутри scanled () вы использовали P3 для управления светодиодами?

Цитата:scanled ()

(

P3 = A [стоимости 10%];

)

 
Привет,
Я использую P3 водить светодиоды, так как я использую AT89C4051 и имеет только 20 булавок, таким образом, I DONT хватает булавки.

Цитата:

Мне не понять, почему ты умноженными на 5, а затем делится на 256 ЗБД результаты?

С P1 не может получить сумму свыше 255, что вы думаете по поводу значения "стоимость" переменная до использования в scanled () после слов "advalue * 5 / 256"?

Это кастинг необходимо после "advalue * 5 / 256" в исполнении?
 
Как я
уже говорил вам интерфейсом SPI (MCP3208 ADC) он больше подходит для вашего дизайна.

Для того, чтобы оказывать помощь другим членам необходимо предоставить более подробную информацию о вашем дизайне.
Как вы ожидаете, что кто-то будет пытаться выяснить, как вы подключите индикатор к порту P3?
Используете ли вы 7 светодиодов непосредственно связана с P3 (очевидные через ограничитель тока резисторы)?
Или вы используете BCD 7 сегмент конвертера (который требует только 4 строки, а не 7)?
Посмотрите на неподписанный INT A [10] = (0x40, 0x60, 0x44, 0x64, 0x50, 0x68, 0x4C, 0x6C, 0x50, 0x70);
Первый почему неподписанными INT, а не символ неподписанные?Поскольку не объявил, как постоянной, будет храниться в памяти, что трата пространства на "INT".
Если элемент массива будет отправлено 3, то в соответствии с Вашими декларации
P3 ^ 7 = 0
P3 ^ 6 = 1
P3 ^ 1 = 0
P3 ^ 0 = 0
являются постоянными, независимо от элементов 0, 1, 2, ... 9, таким образом, вы
будете отходов 4 строки.
Вместе с тем, что у вас нет контроля P3 ^ 6, который привязан к аппаратной внутренних компараторе производства.

Нет Вернуться к оборудованию.Вы не можете использовать P3 ^ 0 и P3 ^ 1, как контроль линий (/ WR и / INTR) и светодиодным дисплеем.
Имейте в виду, что после перехода был начат еще один сбор на пульсе / WR линии (WRITE = 0; WRITE = 1;) начнется другой преобразования, даже если предыдущие не было завершено.
Таким образом, если вы привязали на P3 ^ 0 / WR и светодиодный дисплей, а вы должны быть уверены в том, что индикатор сигнала не будет overide с / WR сигнала.

Наилучшим решением является использование P1 для чтения ADC (вход) и письменной светодиод (выход) (электропроводка их параллельно на "автобус").
Но вы должны использовать / RD сигнал, который является фактически привязан к аппаратной GND (Бьюсь это так, иначе вы не можете прочитать данные преобразования).
Очевидная в / CS может быть связан с GND (как и по настоящее время) и связано с P3 а.
На дисплее процедуры / RD сигнал должен быть высоким и низким идет лишь на короткое время чтения ADC преобразования результаты, когда / INTR идет на низком уровне.
Потому что читать цикл короткий вы можете даже не видеть мигающий светодиодный дисплей (по сути одни и те же данные считаны с ADC будет доставлена непосредственно на дисплее на одном и том же порту).
Таким образом, вы можете установить P3, как ниже:
P3 ^ 0 = / CS
P3 ^ 1 = / WR
P3 ^ 2 = / INTR можно использовать / INT0 особенностью 8051, а не на избирательных КРВ (в то время как (INTR == 1)

<img src="images/smiles/icon_wink.gif" alt="Подмигнуть" border="0" />P3 ^ 4 = / RD

Смешные Достаточно, если вы установите ADC0804 работает в непрерывном режиме (/ WR и / INTR связали вместе, и / CS = 0, / RD = 0), вы даже не нуждаются в микро.
Вам нужно только 3 вещи:
1.2 диодов, один резистор и переключатель, чтобы начать преобразования в / WR Сцепляющий
2.Буфер на диске светодиоды
3.Finnaly смарт мозга, чтобы отображать конверсии (если 0xFF означает для вас 5 V, как полной шкалы, то 0x80 означает 2,5 V)
Вы должны признать, что вам нужно мозгу, чтобы данные о светодиод..

Просто анекдот.
 
проверить книги "8051 УНЦ" на Скотта Маккензи и
др. 8051 и встраиваемых систем "на mazidi

 
afti_khan писал:

проверить книги "8051 УНЦ" на Скотта Маккензи и др. 8051 и встраиваемых систем "на mazidi
 
HI Сильвио,
Спасибо за вашу помощь, мне удалось сделать в реальном времени АЦП.Я сделал несколько ошибок в части светодиодов.Во всяком случае еще раз поблагодарить Вас за Вашу помощь.Вы уже упоминалосьЦитата:

Наилучшим решением является использование P1 для чтения ADC (вход) и письменной светодиод (выход) (электропроводка их параллельно на "автобус").

 
Привет Vinash,

Имейте в виду, что время, необходимое для чтения результатов конверсии является очень коротким.
Тем не менее, данные, которые Вы читаете это сразу же отображается на P1.Таким образом, вам не будут видеть никакого эффекта на светодиод.
Моя ошибка которой я говорил выше о том, что во время чтения из ADC0804, конвертер не сможет потопить светодиод текущий и соответствующие VIL макс мяса на P1.
Вы уже знакомы с соединительными двумя устройствами, которые имеют ту же автобусе.
Когда включен (CS)
иные должны быть выключены, чтобы избежать конфликта.
Поскольку светодиод не ведет себя в качестве таких общих устройств, Вы должны предоставить способ отключить их в течение короткого цикла чтения ADC0804.
Если предположить, что у вас есть светодиоды с общим анодом затем небольшой НПП транзисторно состоянии источником необходимых текущих заставить светодиод.
Транзистор будет предвзятым через резистор на P3 ^ 7, который приводится в движение при низких и высоких дисплее в течение короткого ADC чтения цикла.
Очевидные colector в транзисторных связано с общим анодом светодиодных и emitor идет на 5 V.

Надеюсь, что я
уже удалось прояснить ваши сомнения.

 
Спасибо Сильвио, хорошо у
меня другой вопрос, я надеюсь, что вы могли бы мне помочь, а не с помощью параллельной передачи для чтения ЗБД ввода (с использованием всей P1),
могу ли я использовать последовательной передачи?чем я могу сэкономить на булавки? Пожалуйста, не советуем.Спасибо.

 
Привет Vinash,

По вашей первой попытки http://www.edaboard.com/ftopic144860.html использованием MPC3208 с интерфейсом SPI.
Как
я уже говорил вам ранее, AT89C4051, поскольку не имеет аппаратного SPI интерфейс нужно использовать "бит Bang" методом с использованием общего назначения I / O линий для эмуляции последовательного порта.
Вам нужно только 4 провода: CS, CK, DOut, Дин
Прочитайте это: Моя микроконтроллер не имеет SPI интерфейс, Так я могу использовать Bit-треск?Тогда все что вам нужно это прочитать основном на страницах 15 - 16
MPC3208 Микрочип данных

Однако, если вы хотите использовать RX и TX линий AT89C4051 вы можете использовать AD7823 и установить 8051 для работы в режиме 0.
Page 10 Аналоговый AD7823

 

Welcome to EDABoard.com

Sponsor

Back
Top