при кратностях развертки более х4 (ну еще х8) будет наблюдаться снижение яркости
Ну это смотря для каких индикаторов. Современные сверхяркие (например, красные Кингбрайт SA04-11EWA) имеют даже избыточную яркость, в режиме: кратность х8, питание 5В, токоограничительные резисторы 470 Ом. А есть еще SA04-11SRWA, они еще вдвое ярче.
С токоограничительными резисторами 470 Ом пиковый ток через сегменты будет около 6 мА, а это с большим запасом (для SA04-11EWA максиальный постоянный ток 30 мА, максимальный пиковый 160 мА)
Последний раз редактировалось SmarTrunk Вс фев 12, 2012 14:51:25, всего редактировалось 1 раз.
проблема в том что вход таймера/счетчика под номером 1 находится аккурат на этом порту. Используя его как вход, сегменты на этот порт уже не подключишь все - надо будет выводить отдельный сегмент через другой порт. А это уже программный изврат нужен и т.д. и т.п.
Понятно. А если выбрать вариант с регистрами, но без инвертора, тогда "программных извратов" не потребуется? И еще, если я подключу цепь от регистров к сегментам через буфер 74HC244, то его канал управления надо подключать к порту МК, или достаточно взять постоянный лог.уровень из цепи питания?
Достаточно его входы разрешения подцепить на общий, чтобы он постоянно работал. Ведь регистр будет нормально сбрасываться при переключении разряда, а значит никакого отключения не нужно.
К примеру этот простой термометр, с ним даже исходники есть, возможно они помогут...
судя по схеме там или позиционные порты "задымят" или вариация на тему "растрового" (посегментного) сканирования установлена - а это само по себе не очень ярко светить будет (4*8=32 кванта) кстати о яркости светодиодов в "перекальном(китайском)" режиме - обычно эти ребятки выдают за номинальные предельные режимы по току как результат - индикатор после 1-2 лет работы весьма в яркости теряет - но это уже тема обсуждений по светодиодному освещению (более разжевана)
Alexeyslav, а на Вашей плате, инвертор между регистрами как реализован? Простенькая микросхемка типа ЛА3 или собран на транзисторе? (на фото плохо видно)
смысла нет целую м/с ставить ради одного инвертора.
вот и я к тому же клоню... Вы можете подправить прошивку, чтобы эту функцию выполнял МК, а от инвертора можно было избавиться?
Alexeyslav писал(а):
Ну и собственно не забываем про необходимость подключения цепи сброса - для симулятора они не представляют интереса поэтому и не рисовал. Если в реальности не подключить цепь сброса - контроллер может сбрасываться от любого "шороха статики" рядом.
Вы имеете в виду сброс микропроцессора при включении питания, чтобы предохранить МК от сбоя при включении или при кратковременных провалах? что-то вроде этого?
Тогда за RESET у PIC16F628 принять вывод 4 - RA5/MCLR ?
исходник править нет времени, можете сами найти то место и исправить, это несложно. Надо только посмотреть в справочнике по фронту или спаду регистр фиксирует данные, так навскидку не скажу.
Вновь взялся за частотомер. На этот раз с самоучителем по ассемблеру в рук лапах... Нашел в исходнике подпрограмму, отвечающую за индикацию. На схеме инвертор подключен к каналу RB5. Допустим, Чтобы от него избавиться подключим вход второго регистра ИР9 к каналу RB4 МК. В коде есть команда установки в 1 и в 0 бита RB5. Я руководствовался логикой, что для того, чтобы эмитировать инвертор, нужно добавить сразу после этих команд прямо противоположенные.
Далее в отрывке кода мои поправки выделены бордовым цветом:
Цитата:
LOAD_COL ; RB5 - RB0-RB3 ; BCF STATUS,RP0 ;Выбор банка 0 MOVWF COL_DAT ;Выводимые данные сохраним для дальнейших действий MOVWF COL_DAT2 ;Сохранить хначение чтобы можно было временно погасить индикатор. MOVF PORTB,W ;Очищаем PB0-PB3 не трогая PB4-PB7 ANDLW B'11110000' MOVWF PORTB MOVF COL_DAT,W ANDLW B'00001111' ;В W - младший полубайт данных IORWF PORTB,F ;Устанавливаем PB0-PB3 соответственно младшему полубайту BSF PORTB,RB5 ;Загрузка RB0-RB3 в первый регистр BСF PORTB,RB4 ;Устанавливаем 0 в RB4 MOVF PORTB,W ;Очищаем PB0-PB3 не трогая PB4-PB7 ANDLW B'11110000' MOVWF PORTB SWAPF COL_DAT,W ;Загрузка в W выв.данных и замена полубайтов ANDLW B'00001111' ;В W - только старший полубайт данных IORWF PORTB,F ;Устанавливаем PB0-PB3 соответственно старшему полубайту BCF PORTB,RB5 ;Загрузка RB0-RB3 во второй регистр BSF PORTB,RB4 ;Устанавливаем 1 в RB4 RETURN
Правильно?
Alexeyslav писал(а):
...Надо только посмотреть в справочнике по фронту или спаду регистр фиксирует данные, так навскидку не скажу.
Если выводы используешь отдельные, тогда и чудить ничего не надо. Просто в начале оба на ноль сбрасываешь, при загрузке одного регистра перекидываешь RB4 в 1, при загрузке второго - RB5 в 1. и делов? Вобщем, идея такая - в момент когда нужно загрузить в регистр на соответствующем порту должен быть переход с 0 в 1.
Значит, теперь по поводу делителя... учесть просто - сначала учитываешь 64, сдвигая все многобайтное число на 5 бит влево, заполняя младшие разряды нулями, а оставшиеся 10 (чтобы не умножать огромное число, ведь вы правда не хотите учится умножать 32-битное число на 10) - просто переносом "запятой" или поразрядным сдвигом на одно знакоместо при выводе значения на индикатор.
Только при сдвиге... по-хорошему, надо следить за тем чтобы со старшего разряда не вылезла 1... если она вылезет - ахтунг, это будет означать о переполнении разрядной сетки и само число будет соответственно искажено. Но будем надеяться что таких частот на вход подавать не будем... или будем?
Но зато какие микрухи! контроллер + легкодоставаемые отечественные.
Вообще частотомер можно сделать на одной... но характеристики пострадают и контроллер надо будет многовыводный(8+8 выводов только под индикатор). Либо на ЖК который фиг где достанешь.
Во блин, я думал там два регистра... Но почему тогда U2 не обозначена как счетчик?
И сразу можно сказать что такая схема легко может поймать глюк рассинхронизации, счетчик знакомест никак не обнуляется - он просто считает... а если на него придет один лишний импульс в виде помехи? Вся дальнейшая индикация будет сдвинута, пока не выключишь питание схемы.
Или я чего-то не понимаю? неужели там есть какая-то синхронизация знакомест, чтобы можно было с уверенностью сказать что бы ни случилось со схемой, все данные будут выводится ровно на свои места, максимум последствия сбоя могут продолжаться 2-3 периода сканирования тогда это будет незаметно для глаза. Эта схема повидимому этому требованию не удовлетворяет...
Ага точно. Но тогда возникает вопрос про "в принципе не может быть выбрано более одного знакоместа" - а что может помешать записать в регистр последовательно два и более нулей?
Только программа... так что утверждение это все-таки неверное.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 25
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения