Электроника - это просто Теоретические и практические вопросы для начинающих электронщиков. |
12.04.2008, 11:18
|
|
Частый гость
Регистрация: 03.03.2008
Сообщений: 20
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
а если я не ошибаюсь в оптопаре 3 выхода а на схеме их 5 должно быть я правл или у меня глюки?
|
|
|
|
13.04.2008, 20:27
|
|
Частый гость
Регистрация: 03.03.2008
Сообщений: 20
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
да всетаки у меня Глюки )
|
|
|
|
13.04.2008, 21:14
|
|
Частый гость
Регистрация: 03.03.2008
Сообщений: 20
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Вот окончательный пример схемы!
Вот программа к МК может ктото глянуть правильно?
Код:
|
#include ‹mega16.h› // Файл с командами для МК
#define PA_IN DDRA = 0x00 // Замена PA_IN на DDRA = 0x00
#define PD_OUT DDRD = 0xFF // Замена PD_IN на DDRD = 0xFF
// ++++ функция инициализации МК ++++
void initialization(void){
PA_IN;//сделать PORTA входом
PD_OUT;//сделать PORTD выходом
}
// ++++ Главная функция ++++
void main (void){
initialization(); /* Вызвать (== выполнить) функцию инициализации МК */
PORTD--;
//Бесконечный цикл
while (1){
if(PORTA==0x80){ // Если на ножке PА0 есть сигнал то на ножку PD0 послать 1
PORTD=0x80;
PORTD=0x00;
}
if(PORTA==0x40){ // Если на ножке PA1 есть сигнал то на ножку PD1 послать 1
PORTD=0x40;
PORTD=0x00;
}
if(PORTA==0x20){ // Если на ножке PA2 есть сигнал то на ножку PD2 послать 1
PORTD=0x20;
PORTD=0x00;
}
if(PORTA==0x10){ // Если на ножке PA3 есть сигнал то на ножку PD3 послать 1
PORTD=0x10;
PORTD=0x00;
}
if(PORTA==0x8){ // Если на ножке PA4 есть сигнал то на ножку PD4 послать 1
PORTD=0x8;
PORTD=0x00;
}
if(PORTA==0x4){ // Если на ножке PA5 есть сигнал то на ножку PD5 послать 1
PORTD=0x4;
PORTD=0x00;
}
}
} |
-- Прилагается рисунок: --
|
|
|
|
14.04.2008, 15:32
|
|
Вид на жительство
Регистрация: 27.07.2006
Сообщений: 308
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
По программе, вроде все правильно, по схеме не берусь сказать. Если время есть, промоделируй в симуляторе.
Зачем " PORTD--; " вот это?
Вот сюда глянь: avr123.nm.ru, может на мысли наведет.
|
|
|
|
14.04.2008, 17:21
|
|
Частый гость
Регистрация: 03.03.2008
Сообщений: 20
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
PortD-- Сделать все дешные ножки нулем! ) или ненадо?
|
|
|
|
14.04.2008, 18:12
|
|
Почётный гражданин KAZUS.RU
Регистрация: 12.11.2004
Адрес: Москва
Сообщений: 8,535
Сказал спасибо: 698
Сказали Спасибо 4,313 раз(а) в 1,977 сообщении(ях)
|
Делай проще:
while (1)
{
PORTD=PORTA;
}
и не слушай этого двоечника.
|
|
|
|
15.04.2008, 12:04
|
|
Вид на жительство
Регистрация: 27.07.2006
Сообщений: 308
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
zim2008, не надо. Тут такой момент может получится, у тебя значение в порту D: 00000000. И ты отнимаешь еденицу. Что будет, даже Kabron не скажет. Вот так сделай: PORTD=0x00; - на всякий случай.
У тебя же все равно вся работа будет вестись в бесконечном цикле.
Kabron,
|
|
|
|
15.04.2008, 17:52
|
|
Частый гость
Регистрация: 03.03.2008
Сообщений: 20
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
оо спасибо за совет ) а по схеме все парвильно? или может мне между ЛПТ и МК влепить резистор ?? там я читал можно от 150 Ом до 270 ?
|
|
|
|
16.04.2008, 07:52
|
|
Почётный гражданин KAZUS.RU
Регистрация: 17.05.2005
Адрес: Украина
Сообщений: 1,963
Сказал спасибо: 295
Сказали Спасибо 496 раз(а) в 361 сообщении(ях)
|
Сообщение от zim2008
|
оо спасибо за совет ) а по схеме все парвильно? или может мне между ЛПТ и МК влепить резистор ?? там я читал можно от 150 Ом до 270 ?
|
Нужно. И, на всякий случай, диодные сборочки типа BAV 99 - для фиксации уровня.
|
|
|
|
16.04.2008, 17:53
|
|
Частый гость
Регистрация: 03.03.2008
Сообщений: 20
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
А как насчет самой схемы правильно ? так Мк работать будет?
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 23:56.
|
|