реклама на сайте
подробности

 
 
> Компаратор в AT89C4051
Stepan576
сообщение May 31 2011, 05:10
Сообщение #1





Группа: Новичок
Сообщений: 3
Регистрация: 31-05-11
Пользователь №: 65 374



Здравствуйте дорогие форумчане! Помогите новичку разобраться как работать с компаратором в этом славном устройстве! Как я понял из datasheet разряд p1.1 это инверсный вход компаратора, а на p1.0 прямой, так?
Меня интересует с программной точки зрения как считывать результат сравнения двух сигналов?? Какой бит в каком регистре?

Кажется нашел...P3.6 - есть результат савнения)) Может кто нибудь работал с ним раньше?? Подскажите результат получается непрерывным? Ну то есть не надо программно ничего делать? Что происходит когда сигналы одинаковы?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 5)
Палыч
сообщение May 31 2011, 05:57
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(Stepan576 @ May 31 2011, 09:10) *
P3.6 - есть результат савнения. Подскажите результат получается непрерывным? Ну то есть не надо программно ничего делать?
Да

Цитата(Stepan576 @ May 31 2011, 09:10) *
Что происходит когда сигналы одинаковы?
Два абсолютно одинаковых сигнала не может быть. Компаратор сигналы сравнит и выдаст результат. Естественно, что сравнение производится с некой погрешностью...
Go to the top of the page
 
+Quote Post
Stepan576
сообщение May 31 2011, 06:17
Сообщение #3





Группа: Новичок
Сообщений: 3
Регистрация: 31-05-11
Пользователь №: 65 374



Под "одинаковыми" сигналами я имел ввиду точку пересечения на графике скажем между опорным напряжением и нарастающим сигналом..Никакого дребезга или тому подобного наблюдаться не будет?
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Палыч
сообщение May 31 2011, 06:35
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Мне точность была не нужна, поэтому поведение компаратора при очень близких значениях сигналов не было мной исследовано... Имхо, компаратор выдаст верный результат при разности напряжений более 20 мВ.
Go to the top of the page
 
+Quote Post
тау
сообщение May 31 2011, 07:16
Сообщение #5


.
******

Группа: Участник
Сообщений: 2 424
Регистрация: 25-12-08
Пользователь №: 42 757



Цитата(Stepan576 @ May 31 2011, 09:10) *
Кажется нашел...P3.6 - есть результат савнения)) Может кто нибудь работал с ним раньше?? Подскажите результат получается непрерывным? Ну то есть не надо программно ничего делать? Что происходит когда сигналы одинаковы?

давным давно было дело , AOUT определен как P3.6

Код
#include <AT892051.H>                        

uchar Measur(void) // ADC; возвращает проценты от Vcc
     // выполняется от 0.5 до 1.1 mS
{register unsigned char R,Rm,Rp;
uchar code Tabl[47] = {0,2,4,6,8,11,13,15,17,20,22,25,27,30,33,36,39,42,45,48,
            51,54,58,62,65,69,73,78,82,87,92,97,102,108,114,120,127,135, 143,151,
            161,171,183,197,212,230,253}; // массив счетчика циклов, индекс=2%напруги
                    // индекс от 0 до 46 , всего 47 штук, от 0 до 92%
AIN0=0;  //разрядим конденсатор

for(R=16;R>0;R--) A=A*B;  // подождем разряда 100 мкс
  // к  AIN1 подключим вход измеряемого внешнего напряжения
for(R=255,AIN0=1;R>0;--R)    // AIN0 это P1.0  пуск заряда и + вход компаратора
    {if (AOUT) goto m1;   /* P3_6 Hardwired as AOUT */        //_nop_();_nop_();
    }        //4 мкс на тело цикла /JB AOUT,m1 ; DJNZ   R7,?C0021
m1:
    R=255-R;  // пройдено циклов
if (R>=Tabl[sizeof(Tabl)-1]) Rp=(sizeof(Tabl)-1)*2;  //92% если >=
    else for(Rm=sizeof(Tabl)-1; Rm>0; --Rm) // с последнего индекса
            {Rp=Tabl[Rm-1];
             if (R<Rp) continue;  //иначе от Rm до Rm+1 наприм 230,253
                 Rp=(Rm-1)*2+( (R-Rp)*2/(Tabl[Rm]-Rp) );  //0 или 1 добав для интерполяции
                break;
            }
return Rp;
}
Go to the top of the page
 
+Quote Post
Stepan576
сообщение May 31 2011, 07:26
Сообщение #6





Группа: Новичок
Сообщений: 3
Регистрация: 31-05-11
Пользователь №: 65 374



Спасибо вам добрые люди) Буду разбираться..
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 05:05
Рейтинг@Mail.ru


Страница сгенерированна за 0.01513 секунд с 7
ELECTRONIX ©2004-2016