Страница 2 из 5
Re: Цифровой частотомер на x51 (AT89S51)
Добавлено: Сб май 21, 2011 22:29:25
LawManiak
Если таймер настроить на счетчик, то в нем будет число боле 256, как его преобразовать в двоично-десятичное?
Re: Цифровой частотомер на x51 (AT89S51)
Добавлено: Сб май 21, 2011 22:49:59
Jack_A
LawManiak писал(а):Если таймер настроить на счетчик, то в нем будет число боле 256, как его преобразовать в двоично-десятичное?
Сто раз этот вопрос в форуме перетирали. Разделить на единицы - десятки - сотни и т.д., преобразовать в код индикатора -- и на табло.
Строчка "Преобразование в двоично-десятичный" в поисковике дает много разумного и полезного.
Re: Цифровой частотомер на x51 (AT89S51)
Добавлено: Вс май 22, 2011 00:39:40
LawManiak
Поискал, вразумительного нашел не много. Я в ассблере вообще не очень.
Может есть какой-то конкретный пример?
Re: Цифровой частотомер на x51 (AT89S51)
Добавлено: Вс май 22, 2011 10:11:08
Jack_A
Могу, но только для AVR. Под 51-й почти никогда не пис'ал.
Re: Цифровой частотомер на x51 (AT89S51)
Добавлено: Вс май 22, 2011 11:13:32
МитяРа
LawManiak, в поисковике лучше набрать строчку
BIN BCD MCS51 вариантов масса..
Можешь вот тут почитать:
http://radiokot.ru/forum/viewtopic.php?f=20&t=17812 
Re: Цифровой частотомер на x51 (AT89S51)
Добавлено: Вс май 22, 2011 17:44:32
LawManiak
В таком случае такой вопрос. Ведь команду div мы можем применять только к A и B.
Какое максимальное число можно вместить в них?
могу я допустим 4х байтовое число записать в аккумулятор?
Jack_A
Если не сложно, хоть посмотрю логику...
Re: Цифровой частотомер на x51 (AT89S51)
Добавлено: Вс май 22, 2011 20:23:36
Jack_A
Написано для младших моделей AVR, у которых нет аппаратного деления.
Код: Выделить всё
; Исходное число в R25(ст),R24(мл) .
; Результат - 5 байт по указателю Z (ст -> мл) .
; В массиве числа - НЕ СИМВОЛЫ !
; R25,R24 не сохраняются.
subt: push r16
push r17
push r18
tst r24
brne st1
st z+,r24
st z+,r24
rjmp part2
; Если R24=0, первые две цифры = 0,
; переход на 2-ю часть
;
st1: ldi r18,high(10000)
ldi r17,low(10000)
rcall st_s ; выделили десятки тысяч
ldi r18,high(1000)
ldi r17,low(1000)
rcall st_s ; выделили тысячи
part2: ldi r18,high(100)
ldi r17,low(100)
rcall st_s ; выделили единицы
;
ldi r16,0
st10: subi r24,10
brcs st15
inc r16
rjmp st10
st15: subi r24,-10
st z+,r16 ; распилили R24 на десятки - единицы
st z+,r24
pop r18
pop r17
pop r16
ret
; ====
st_s: ldi r16,0 ; Подпрограмма деления `
sts05: sub r24,r17 ; R25,R24 на R18,R17
sbc r25,r18 ; Частное в R16 -> [Z+]
brcs sts10 ; Остаток в R25,R24
inc r16
rjmp sts05
sts10: add r24,r17
adc r25,r18
st z+,r16
ret
;
LawManiak писал(а):В таком случае такой вопрос. Ведь команду div мы можем применять только к A и B.
Какое максимальное число можно вместить в них?
могу я допустим 4х байтовое число записать в аккумулятор?
А можно в один стакан налить молоко, сок, водку и рассол , каждого по 200гр?
Моя прога для 2-байтового числа. Если надо 4 байта, ее надо модифицировать.
Re: Цифровой частотомер на x51 (AT89S51)
Добавлено: Вс май 22, 2011 20:48:15
LawManiak
А теперь самый глупый вопрос. Сколько мне нужно выделять байт под 4х разрядное число в пределах 1к?
Re: Цифровой частотомер на x51 (AT89S51)
Добавлено: Пн май 23, 2011 01:11:07
LawManiak
Re: Цифровой частотомер на x51 (AT89S51)
Добавлено: Пн май 23, 2011 11:42:22
Jack_A
LawManiak писал(а):А теперь самый глупый вопрос. Сколько мне нужно выделять байт под 4х разрядное число в пределах 1к?
Даю умный ответ на глупый вопрос : для 4-значного десятичного числа 0...9999 в его двоичном виде нужно 2 байта ( 0...0х270F ), которые обеспечат даже больший диапазон 0...65535
Посмотрел вышеприведенный код - с моим практически 1 : 1. Только в части "десятки - единицы" не догоняю, бо практики с 51-ми почти не было.
Re: Цифровой частотомер на x51 (AT89S51)
Добавлено: Чт июн 02, 2011 11:23:04
LawManiak
Подскажите, пожалуйста назначение этой схемы и из каких соображений для неё рассчитываются элементы? Мне её поставили знающие люди, сказали что так нада, что оно работает, но объяснять не стали... Оно у меня стоит на входе, с неё сигнал поступает на порт микроконтроллера...

Re: Цифровой частотомер на x51 (AT89S51)
Добавлено: Чт июн 02, 2011 11:29:04
МитяРа
Это входной усилитель сигнала с ограничением по входу..
Двухсторонний ограничитель собран на VD1 и VD2, на VT1 собран усилитель-инвертор, R4 задаёт рабочую точку для транзистора, а заодно обеспечивает ООС..
С8 - развязка по постоянному току..
Re: Цифровой частотомер на x51 (AT89S51)
Добавлено: Чт июн 02, 2011 11:36:53
LawManiak
Можно поподробнее как в таком случае рассчитывается коэффициент усиления, зачем стоит R2 и почему именно 100 Ом и для чего 470 Ом на питании?
Re: Цифровой частотомер на x51 (AT89S51)
Добавлено: Чт июн 02, 2011 12:01:36
МитяРа
LawManiak писал(а):470 Ом на питании?
Так не говорят, R5 является нагрузкой для VT1, т.е. на нём будет усиленный по амплитуде и проинвертированный входной сигнал..
LawManiak писал(а):ачем стоит R2
R2 это защитное и ограничивающее сопротивление, оно стоит последовательно со входом.
При больших входных сигналах /больше прямого напряжения на VD1 и VD2 примерно 0.6 вольта/ эти диоды открываются и начинают ограничивать напряжение на базе транзистора, а лишнее напряжение рассеивается на R2, заодно R2 ограничивает ток через диоды что-бы их не пробило..
Коэффициент усиления зависит от Кусиления транзистора и отношений R4 и R5..
Re: Цифровой частотомер на x51 (AT89S51)
Добавлено: Чт июн 02, 2011 12:17:43
МитяРа
Да вот ещё:
R4 должен быть со звёздочкой, т.е. его при настройке надо будет подбирать..
от номинала C8 зависит частотный диапазон твоего прибора, а т.к. у тебя кГц, то ёмкость надо увеличить..
Вот можешь тут посмотреть-почитать..
http://www.qrz.ru/schemes/contribute/co ... /ch2.shtml
Re: Цифровой частотомер на x51 (AT89S51)
Добавлено: Чт июн 02, 2011 13:08:49
LawManiak
Таким образом входной сигнал будет отграничен примерно в пределах +/- 0.6В?
Я тут поднял свои старые записи, пришел к выводу, что коэффициент усиления в этой схеме зависит фактически только от R4 и R2, тобишь Uвых=Uвх*Rос/Rг
правильно я понимаю? в этом случае коэффициент усиления получается 470, да? но тогда что определяет сопротивление коллектора... По идее оно задает ток питания транзистора, но как его рассчитать...
Параметры транзистора:
Наимен. КТ315А
тип n-p-n
Uкбо(и),В 25
Uкэо(и), В 25
Iкmax(и), мА 100
Pкmax(т), Вт 0.15
h21э 30-120
Iкбо, мкА 0.5
fгр., МГц 250
И почему R2 100, это какое-то стандартное значение?
Re: Цифровой частотомер на x51 (AT89S51)
Добавлено: Чт июн 02, 2011 13:30:57
МитяРа
LawManiak писал(а):Таким образом входной сигнал будет отграничен примерно в пределах +/- 0.6В?
Не входной сигнал, а сигнал на базе транзистора..
LawManiak писал(а):только от R4 и R2
Нет.. R2 тут вообще не при чём..
LawManiak писал(а):что определяет сопротивление коллектора... По идее оно задает ток питания транзистора, но как его рассчитать...
Нет понятия "ток питания транзистора", есть - ток коллектора..
Он не расчитывается, а при расчётах его просто задают..
Вот смотри:
Входной уровень единицы для микросхемы максимальный, берём 3 вольта, это напряжение нам надо получить когда на вход усилителя ничего не подаётся../измеряемый сигнал в смысле/
Т.е. на коллекторе транзистора относительно корпуса мы должны получить 3 вольта../этот уровень устанавливается подбором R4/
На R5 тогда будет 5-3=2 вольта, ток коллектора транзистора будет 2/470=4.25мА
Когда у нас будет подаваться входной сигнал, то на коллекторе напряжение будет относительно 3-х вольт туда-сюда колебаться, например от 0.5 до 5 вольт...
Re: Цифровой частотомер на x51 (AT89S51)
Добавлено: Чт июн 02, 2011 13:48:22
LawManiak
так... теперь я снова в тупике...
как же мне рассчитать коэффициент усиления для этого упт?
просто мне нужно сделать расчет всех элементов этой схемы и указать почему они тут стоят и для чего...
Re: Цифровой частотомер на x51 (AT89S51)
Добавлено: Чт июн 02, 2011 14:23:54
МитяРа
LawManiak писал(а):просто мне нужно сделать расчет всех элементов этой схемы и указать почему они тут стоят и для чего..
Для чего мя те вроде про всё написал, а насчёт расчётов - ищи расчёт этой схемы включения транзистора..
Блин, даже щас и не вспомню, как это включение называется..

Re: Цифровой частотомер на x51 (AT89S51)
Добавлено: Чт июн 02, 2011 15:06:52
LawManiak
Вообще я предполагал что здесь вот эта схема включения:

но ты говоришь что по другому, так что я даже не знаю...