сигнализатор наличия материала

Обсуждаем цифровые устройства...
Ответить
Аватара пользователя
fill31
Первый раз сказал Мяу!
Сообщения: 32
Зарегистрирован: Пт фев 18, 2011 17:53:20
Откуда: Мариуполь

сигнализатор наличия материала

Сообщение fill31 »

Добрый вечер всем!
На предприятии попросили сделать прибор наличия материала в бункере.
Решил собрать сее устройство на tiny 2313, так как этот контроллер самый распространённый
в программировании я новичёк.
Принцип работы такой
Кода на PD0 приходит 1 то на PC4 будет 1 а на PB5 будет 0.
и наоборот Когда на PD0 будет 0 то на PC4 будет 0 а на PB5 будет 1.\
Схему прилагаю
Вложения
clip_image002.jpg
(10.17 КБ) 344 скачивания
ЛУЧШЕ ГНАТЬ ЧЕМ БЫТЬ ГОНИМЫМ!!!
Реклама
Аватара пользователя
fill31
Первый раз сказал Мяу!
Сообщения: 32
Зарегистрирован: Пт фев 18, 2011 17:53:20
Откуда: Мариуполь

Re: сигнализатор наличия материала

Сообщение fill31 »

Пишу в Code vision 4
если можна то с коментариями к коду,
за ранее спасибо
ЛУЧШЕ ГНАТЬ ЧЕМ БЫТЬ ГОНИМЫМ!!!
Реклама
Аватара пользователя
fill31
Первый раз сказал Мяу!
Сообщения: 32
Зарегистрирован: Пт фев 18, 2011 17:53:20
Откуда: Мариуполь

Re: сигнализатор наличия материала

Сообщение fill31 »

Я понимаю что не правильно, но подскажите где косяки

void main (void)
{
PORTD=0x00;
DDRD=0x00;

PORTC=0xFF;
DDRC=0xFF;

PORTB=0xFF;
DDRC=0xFF;
while (1)
{
if (PIND==1)
{
PORTC.4=1;
PORTB.5=0;
}
else
{
PORTC.4=0;
PORTB.5=1;

};

}
}
ЛУЧШЕ ГНАТЬ ЧЕМ БЫТЬ ГОНИМЫМ!!!
orinoko

Re: сигнализатор наличия материала

Сообщение orinoko »

Но зачем для такой задачи целый МК ? Вот не понимаю. Тут достаточно одного элемента НЕ, ну двух (одним сформировать сигнал с оптрона) - всё равно в одном корпусе их шесть.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
fill31
Первый раз сказал Мяу!
Сообщения: 32
Зарегистрирован: Пт фев 18, 2011 17:53:20
Откуда: Мариуполь

Re: сигнализатор наличия материала

Сообщение fill31 »

это проверочная модель. Смысл в чём:
Я хочу посмотреть как контроллер будет работать с щуповым датчиком, если всё ок то можно их будет нацеплять на все порты
ЛУЧШЕ ГНАТЬ ЧЕМ БЫТЬ ГОНИМЫМ!!!
Реклама
orinoko

Re: сигнализатор наличия материала

Сообщение orinoko »

И всё равно при такой логике работы целесообразнее использовать цифровые микросхемы, даже если предположить, что каналов будет десяток.Надёжность схем на жёсткой логике всегда выше, чем на МК.
Реклама
Аватара пользователя
fill31
Первый раз сказал Мяу!
Сообщения: 32
Зарегистрирован: Пт фев 18, 2011 17:53:20
Откуда: Мариуполь

Re: сигнализатор наличия материала

Сообщение fill31 »

В принципе наверно лучше сделать на логике.

А сам код правильно написан?
ЛУЧШЕ ГНАТЬ ЧЕМ БЫТЬ ГОНИМЫМ!!!
orinoko

Re: сигнализатор наличия материала

Сообщение orinoko »

fill31 писал(а):В принципе наверно лучше сделать на логике.

А сам код правильно написан?
Похоже что да. Но я не сишник, пишу на асме.
Аватара пользователя
fill31
Первый раз сказал Мяу!
Сообщения: 32
Зарегистрирован: Пт фев 18, 2011 17:53:20
Откуда: Мариуполь

Re: сигнализатор наличия материала

Сообщение fill31 »

А то чёто не работает
ЛУЧШЕ ГНАТЬ ЧЕМ БЫТЬ ГОНИМЫМ!!!
Аватара пользователя
fill31
Первый раз сказал Мяу!
Сообщения: 32
Зарегистрирован: Пт фев 18, 2011 17:53:20
Откуда: Мариуполь

Re: сигнализатор наличия материала

Сообщение fill31 »

Ребята ,помогите дописать прогу,реально замучался
ЛУЧШЕ ГНАТЬ ЧЕМ БЫТЬ ГОНИМЫМ!!!
Аватара пользователя
DimanVIP
Мучитель микросхем
Сообщения: 474
Зарегистрирован: Вт июн 01, 2010 22:12:07
Откуда: Тольятти
Контактная информация:

Re: сигнализатор наличия материала

Сообщение DimanVIP »

А что там может не работать?

Опишите конкретнее.
[img]http://nekuru.com/images/DimanVIP/t2.png[/img]
Аватара пользователя
fill31
Первый раз сказал Мяу!
Сообщения: 32
Зарегистрирован: Пт фев 18, 2011 17:53:20
Откуда: Мариуполь

Re: сигнализатор наличия материала

Сообщение fill31 »

Да вот моделирую в протеусе ,а оно не так как нада работает. нажимаю кнопку раз оно срабатывает,отпускаю кнопку оно сотаётся без изменений. нажимаю ещё раз оно меняется. как сделать что бы при отпуске кнопки оно срабатывало?
вот код

//сушка новая
#include <tiny2313.h>
#include <delay.h>

void main(void) {

DDRD=0b00000000;
PORTD=0b00000001;
DDRB=0b11111111;
PORTB=0b00100000;


while(1)
{
while (PIND.0==0){}
delay_us(200);

if (PINB.4==1)
{ PORTB.4=0;PORTB.5=1;}
{ PORTB.4=1;PORTB.5=0;}
delay_us(200);

};
}
ЛУЧШЕ ГНАТЬ ЧЕМ БЫТЬ ГОНИМЫМ!!!
Аватара пользователя
DimanVIP
Мучитель микросхем
Сообщения: 474
Зарегистрирован: Вт июн 01, 2010 22:12:07
Откуда: Тольятти
Контактная информация:

Re: сигнализатор наличия материала

Сообщение DimanVIP »

Код: Выделить всё

#include <tiny2313.h>
void main(void)
{
// Input/Output Ports initialization
// Port A initialization
// Func2=Out Func1=Out Func0=Out 
// State2=0 State1=0 State0=0 
PORTA=0x00;
DDRA=0x07;

// Port B initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out 
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 
PORTB=0x00;
DDRB=0xFF;

// Port D initialization
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
// State6=P State5=P State4=P State3=P State2=P State1=P State0=P 
PORTD=0x7F;
DDRD=0x00;

while (1){
  if (PIND.0 == 1){
    PORTB.4 = 1;
    PORTB.5 = 0; 
  }
  else{
    PORTB.4 = 0;
    PORTB.5 = 1;
  }
}
}
Этот код работает. Разве что для суровой реальности осталось анти дребезг добавить. И не забыть подтянуть необходимым образом входа (лучше внешними резюками).
[img]http://nekuru.com/images/DimanVIP/t2.png[/img]
Аватара пользователя
fill31
Первый раз сказал Мяу!
Сообщения: 32
Зарегистрирован: Пт фев 18, 2011 17:53:20
Откуда: Мариуполь

Re: сигнализатор наличия материала

Сообщение fill31 »

ага! понял, скорее это из за подтягивающих резисторов,



ПАСИБО
ЛУЧШЕ ГНАТЬ ЧЕМ БЫТЬ ГОНИМЫМ!!!
Аватара пользователя
fill31
Первый раз сказал Мяу!
Сообщения: 32
Зарегистрирован: Пт фев 18, 2011 17:53:20
Откуда: Мариуполь

Re: сигнализатор наличия материала

Сообщение fill31 »

почемуто при отпускании кнопки не срабатывает обратно
ЛУЧШЕ ГНАТЬ ЧЕМ БЫТЬ ГОНИМЫМ!!!
Аватара пользователя
fill31
Первый раз сказал Мяу!
Сообщения: 32
Зарегистрирован: Пт фев 18, 2011 17:53:20
Откуда: Мариуполь

Re: сигнализатор наличия материала

Сообщение fill31 »

как прописать что бы функция возвращала предыдущее состояние когда отсутствует единица на входе
ЛУЧШЕ ГНАТЬ ЧЕМ БЫТЬ ГОНИМЫМ!!!
Аватара пользователя
DimanVIP
Мучитель микросхем
Сообщения: 474
Зарегистрирован: Вт июн 01, 2010 22:12:07
Откуда: Тольятти
Контактная информация:

Re: сигнализатор наличия материала

Сообщение DimanVIP »

Все правильно, дело в резисторах.
Соберите модель так:
Изображение

При нажатии на кнопку, ножка МК оказывается подключенной к земле (лог 0).
При отпускании кнопки, ножка через подтягивающий резистор подключается к плюсу (лог 1).
[img]http://nekuru.com/images/DimanVIP/t2.png[/img]
Аватара пользователя
fill31
Первый раз сказал Мяу!
Сообщения: 32
Зарегистрирован: Пт фев 18, 2011 17:53:20
Откуда: Мариуполь

Re: сигнализатор наличия материала

Сообщение fill31 »

сёдня залил в железо, всё ок! видать протэус так эмулирует
ЛУЧШЕ ГНАТЬ ЧЕМ БЫТЬ ГОНИМЫМ!!!
Аватара пользователя
DimanVIP
Мучитель микросхем
Сообщения: 474
Зарегистрирован: Вт июн 01, 2010 22:12:07
Откуда: Тольятти
Контактная информация:

Re: сигнализатор наличия материала

Сообщение DimanVIP »

Такие банальные, простые вещи в Протосе эмулируются отлично.
Что собственно, у меня и происходило.

Пройдите для начала хоть какой-нибудь курс по МК. Хотя бы ЭТОТ.
[img]http://nekuru.com/images/DimanVIP/t2.png[/img]
Ответить

Вернуться в «Цифровая техника»