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

 
 
5 страниц V  < 1 2 3 4 > »   
Reply to this topicStart new topic
> Счетчик импульсов с выводом на 7-ми сегментный индикатор, Помогите, пожалуйста, создать схему
rx3apf
сообщение Dec 7 2011, 11:11
Сообщение #16


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(shadow86 @ Dec 7 2011, 15:04) *
Вы совершенно правы, Tanya, индикация должна хорошо читаться и при дневном свете и в темноте, а яркость (и как следствие, потребление тока индикатором) будет меняться ).

Подсветка сожрет много, вряд ли это имеет смысл для портативного прибора. Мелкие LED тоже жрут, а при прямом солнечном свете, наоборот, будут читаться плохо. Дело хозяйское, конечно, но я бы поставил сегментный LCD без подсветки...
Go to the top of the page
 
+Quote Post
shadow86
сообщение Dec 7 2011, 11:28
Сообщение #17


Участник
*

Группа: Участник
Сообщений: 64
Регистрация: 12-11-09
Из: украина, г. харьков
Пользователь №: 53 585



Есть возможность купить TIC71, Вы такой наподобие имеете ввиду? можно и с этим поэкспериментировать ))
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Dec 7 2011, 11:38
Сообщение #18


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(shadow86 @ Dec 7 2011, 15:28) *
Есть возможность купить TIC71, Вы такой наподобие имеете ввиду? можно и с этим поэкспериментировать ))

Ну типа да. Мелковат, правда. Зато жрет около 1 uA (за счет внешней регенерации - но ее придется делать). Да и вряд ли нужно столько разрядов. Может быть, стоило бы поглядеть в сторону микроконтроллеров с контроллером LCD (и у Atmel такие есть, много дешевых у Microchip, или что-то из MSP430). И к такому - стекляшку на три-четыре знакоместа. А, есть еще сделанный по нашему заказу TIC279.
Go to the top of the page
 
+Quote Post
shadow86
сообщение Dec 7 2011, 13:54
Сообщение #19


Участник
*

Группа: Участник
Сообщений: 64
Регистрация: 12-11-09
Из: украина, г. харьков
Пользователь №: 53 585



Аааааа!!! Собрал свою схему и Uniprof мне показала наличие моего МК и его содержимое!!! ))))))))
Теперь я непобедЮм!!! 08.gif
Столько эмоций испытал, сродни тому, как запустил свой первый УНЧ ))))).
Так теперь можно приниматься за реализацию задуманного!
Уверен, будет еще оооочень большая куча вопросов. Спасибо всем за советы! Теперь только тема по-настоящему открывается!

Сообщение отредактировал shadow86 - Dec 7 2011, 13:54
Go to the top of the page
 
+Quote Post
VCO
сообщение Dec 7 2011, 16:37
Сообщение #20


Voltage Control Output
******

Группа: Свой
Сообщений: 4 598
Регистрация: 21-07-09
Из: Kursk
Пользователь №: 51 436



Цитата(rx3apf @ Dec 7 2011, 13:15) *
"Выигрыш по точности" - это в сравнении с чем ?

Это в сравнении со стандартной логикой
Цитата
Дальше - стоимость кристалла.

Теперь для CPLD - весьма невысока. Я бы даже сказал - соразмерна c МК
Цитата
И - потребление.

Полностью зависит от схемы проекта. Если часы вытащить наружу и применить КулРаннер, то соразмерно с МК+ДрайверЖКИ.
Цитата
К тому же у микроконтроллера типично есть встроенный ADC и PWM, и реализовать стабилизированный источник высокого напряжения - раз плюнуть.

Согласен, но тут АЦП и БП уже не нужны...

...Ну и потом, топикстартер не указал требований по энергосбережению и цене в начале теме, поэтому и предложил этот вариант. Теперь согласен, что МК - много актуальнее.


--------------------
Слово - не воробей, вылетит - не пощадит
Go to the top of the page
 
+Quote Post
shadow86
сообщение Dec 7 2011, 18:49
Сообщение #21


Участник
*

Группа: Участник
Сообщений: 64
Регистрация: 12-11-09
Из: украина, г. харьков
Пользователь №: 53 585



Рас уж буду применять МК, то накачку датчика также попробую выполнить на нем )). только пока еще совсем-совсем не представляю как это осуществить. Понимаю, что с помощью МК могу управлять скважностью импульсов через повышающий трансформатор, но не представляю как осуществить контроль за выходным напряжением, чтоб МК начал изменять эту самую скважность ((.
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Dec 7 2011, 19:13
Сообщение #22


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(shadow86 @ Dec 7 2011, 22:49) *
Рас уж буду применять МК, то накачку датчика также попробую выполнить на нем )). только пока еще совсем-совсем не представляю как это осуществить. Понимаю, что с помощью МК могу управлять скважностью импульсов через повышающий трансформатор, но не представляю как осуществить контроль за выходным напряжением, чтоб МК начал изменять эту самую скважность ((.

Делитель на вход ADC.
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Dec 7 2011, 19:32
Сообщение #23


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(rx3apf @ Dec 7 2011, 23:13) *
Делитель на вход ADC.

Ох , не надо ему пока этого . Тем более
Цитата
Источник 400В получился, им я доволен


Сначала сделать вывод , а уж потом убрать источник и подключать ADC, таймер и прерывания


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
shadow86
сообщение Dec 7 2011, 19:51
Сообщение #24


Участник
*

Группа: Участник
Сообщений: 64
Регистрация: 12-11-09
Из: украина, г. харьков
Пользователь №: 53 585



ATtiny26 - его же можно перепрограммировать много раз? не один и на всю жизнь? И когда я закончу его прошивать, мне нужно будет лишь отключить +5В и можно выковыривать микросхему из гнезда? или нужно еще и удлиннительный шнур вынуть из COM? Вот эти вопросы меня всегда волновали, а ответ на них Google мне так и не дал (. Поясните, пожалуйста, начинающему ).
P.S.: а втыкать МК в гнездо программатора можно, если программатор подключен к COM порту, или сначала вынуть из COM, а потом втыкать МК?

Сообщение отредактировал shadow86 - Dec 7 2011, 19:53
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Dec 7 2011, 20:18
Сообщение #25


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата
не один и на всю жизнь?
Это как захотите

Цитата
мне нужно будет лишь отключить +5В и можно выковыривать микросхему из гнезда?
или нужно еще и удлиннительный шнур вынуть из COM?

Лучше всего всегда полностью "обесточить" MC , а потом проводить с ним "втыкание - вытыкание"


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
shadow86
сообщение Dec 7 2011, 21:11
Сообщение #26


Участник
*

Группа: Участник
Сообщений: 64
Регистрация: 12-11-09
Из: украина, г. харьков
Пользователь №: 53 585



Спасибо! Я так и предпологал, но теперь знаю точно )
Go to the top of the page
 
+Quote Post
shadow86
сообщение Dec 8 2011, 08:26
Сообщение #27


Участник
*

Группа: Участник
Сообщений: 64
Регистрация: 12-11-09
Из: украина, г. харьков
Пользователь №: 53 585



ААААА! У меня сейчас взорвется мосК!
Объясните дураку:
Пример 4. Вывод цифр от 0 до 99.
Преобразование двоичных чисел в двоично-десятичные (BCD)
________________________________________
#include <ioavr.h>
#include <intrinsics.h>

unsigned char number[] =
{
0x3f, //0
0x06, //1
0x5b, //2
0x4f, //3
0x66, //4
0x6d, //5
0x7d, //6
0x07, //7
0x7f, //8
0x6f //9
};

//числа для вывода на индикатор
volatile unsigned char data1 = 0;
volatile unsigned char data2 = 0;

//программный счетчик секунд
unsigned char counterProg = 0;

int main( void )
{
//порт, к которому подкл. сегменты
PORTB = 0xff;
DDRB = 0xff;

//порт, к которому подкл. катод
PORTD = 0;
DDRD |= (1<<1)|(1<<0);

//инициализация таймера Т0
TIMSK = (1<<TOIE0);
TCCR0 = (1<<CS02)|(0<<CS01)|(1<<CS00);
TCNT0 = 0xb2;

__enable_interrupt();
while(1){
//программный счетчик секунд
counterProg++;
if (counterProg == 100) counterProg = 0;
data1 = counterProg % 10;
data2 = counterProg/10;
__delay_cycles(8000000);
}
return 0;
}

//прерывания таймера Т0 - вывод на индикатор
#pragma vector = TIMER0_OVF_vect
__interrupt void Timer0_Ovf(void)
{
static unsigned char count = 0;
TCNT0 = 0xb2;

//гасим оба разряда
PORTD &= ~((1<<1)|(1<<0));

//выводим код цифры в порт
//и зажигаем следующий разряд
if (count == 0) {
PORTB = number[data2];
PORTD |= (1<<1);
}
if (count == 1) {
PORTB = number[data1];
PORTD |= (1<<0);
}

count++;
if (count == 2) count = 0;
}

Никак не пойму:
int main( void )
{
//порт, к которому подкл. сегменты
PORTB = 0xff;
DDRB = 0xff - это тут все порта задействуются или один порт В? как тогда указать, чтобы включились нужные мне 7 портов под сегменты? и как указать номера выводов микросхемы, которые должны соответствовать этим портам (сегментам).
И что это значит? :
unsigned char number[] =
{
0x3f, //0
0x06, //1
0x5b, //2
0x4f, //3
0x66, //4
0x6d, //5
0x7d, //6
0x07, //7
0x7f, //8
0x6f //9
};
это какая-то встроенная функция для разбивания цыфр на сегменты? применима ли она к ATtiny26 ?

Сообщение отредактировал shadow86 - Dec 8 2011, 08:28
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Dec 8 2011, 09:32
Сообщение #28


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(shadow86 @ Dec 8 2011, 12:26) *
//порт, к которому подкл. сегменты
PORTB = 0xff;
DDRB = 0xff - это тут все порта задействуются или один порт В?

Порт - это типично 8 (или меньше) линий ввода-вывода. В данном случае восемь линий настраиваются на вывод.

Цитата
И что это значит? :
unsigned char number[] =
{
0x3f, //0
0x06, //1
....

Таблица преобразования десятичной цифры в ее "семисегментное" представление. Делается, исходя из необходимого соответствия бита порта и сегмента.
Go to the top of the page
 
+Quote Post
shadow86
сообщение Dec 8 2011, 21:01
Сообщение #29


Участник
*

Группа: Участник
Сообщений: 64
Регистрация: 12-11-09
Из: украина, г. харьков
Пользователь №: 53 585



Насчет порта и входов-выводов понял и осознал, а вот как указать на какой ножке порта какой сегмент выводится будет? и
Цитата
Таблица преобразования десятичной цифры в ее "семисегментное" представление. Делается, исходя из необходимого соответствия бита порта и сегмента.
- эта таблица одна для всех МК? Подойдет ли она мне для ATtiny26?

Сообщение отредактировал shadow86 - Dec 8 2011, 21:02
Go to the top of the page
 
+Quote Post
toweroff
сообщение Dec 9 2011, 01:38
Сообщение #30


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Это - массив байтов, каждый байт содержит 7 значащих бит (начиная с младшего - судя по всему, старший не используется. Его обычно на точку сажают), в которых единица "зажигает" соответствующий сегмент (хотя странно... обычно катод к земле коммутируют... или я так привык? sm.gif )
соответственно, команда
Код
PORTB = number[data2];

запишет в порт значение элемента массива number с индексом data2
нумерация элементов с нуля


Цитата(shadow86 @ Dec 9 2011, 01:01) *
эта таблица одна для всех МК? Подойдет ли она мне для ATtiny26?

она подойдет для любого biggrin.gif
А там уж как ножки порта B подключите sm.gif разберитесь, какой бит за какой сегмент отвечает и все станет просто
Go to the top of the page
 
+Quote Post

5 страниц V  < 1 2 3 4 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 20:13
Рейтинг@Mail.ru


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