Сделайте за меня задание.
- Сообщения: 2
- Зарегистрирован: Ср июн 20, 2012 17:18:15
- Реклама
- Сообщения: 10
- Зарегистрирован: Пт июн 29, 2012 09:48:26
Здравствуйте.
Помогите пожалуйста реализовать работу триггеров имс K155TM2 на МК AT90S8515, точнее нужна программа на Си.
Сам ни черта в мпс не разбираюсь((
Заранее спасибо всем, кто чем то помог или хотя бы не потролил)
Помогите пожалуйста реализовать работу триггеров имс K155TM2 на МК AT90S8515, точнее нужна программа на Си.
Сам ни черта в мпс не разбираюсь((
Заранее спасибо всем, кто чем то помог или хотя бы не потролил)
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
открою "большую тайну" - для работы K155TM2 никакой МК не нужен, так что вопрос из серии "на хрена козе баян"....
- Сообщения: 10
- Зарегистрирован: Пт июн 29, 2012 09:48:26
хм.. это моя курсовая... надо вопрос этот преподавателю задать
Рискну предположить что надо на МК AT90S8515 сымитировать работу K155TM2
- Реклама
- Сообщения: 10
- Зарегистрирован: Пт июн 29, 2012 09:48:26
- Сообщения: 10
- Зарегистрирован: Пт июн 29, 2012 09:48:26
Мне друг пытался помочь но препод чет сказал что не правильно, может кто глянет что не так.
Файл номер 1
#include <avr/io.h>
#include <util/delay.h>
#define S 0
#define R 1
#define C 2
#define D 3
#define Q 4
#define Qi 5
int main()
{
// Установим бит 0 порта В как входы (для входа S)
DDRB &=~_BV(S);
// Установим бит 1 порта В как входы (для входа R)
DDRB &=~_BV(R);
// Установим бит 2 порта В как входы (для входа C)
DDRB &=~_BV(C);
// Установим бит 3 порта В как входы (для входа D)
DDRB &= ~_BV(D);
// Установим бит 4 порта В как выход (для выхода Q)
DDRB |=_BV(Q);
// Установим бит 5 порта В как выход (для выхода Qi)
DDRB |=_BV(Qi);
while(1)
{
//1Если S=0 R=0
if ((bit_is_clear(PINB,S))&&(bit_is_clear(PINB,R)))
//1.1
{
}
//2Если S=0 R=1
if ((bit_is_clear(PINB,S))&&(bit_is_set(PINB,R)))
{
//1.2
PORTB &=~_BV(Q);
}
//3Если S=1 R=0
if ((bit_is_set(PINB,S))&&(bit_is_clear(PINB,R)))
{
//1.3
PORTB |=_BV(Q);
}
//4Если S=1 R=1 C=1
if ((bit_is_set(PINB,S))&&(bit_is_set(PINB,R))&&(bit_is_set(PINB,C)))
{
//1.4
PORTB |=_BV(Q);
}
//5Если R=1 S=1 D=1
if ((bit_is_set(PINB,S))&&(bit_is_set(PINB,R))&&(bit_is_set(PINB,D)))
{
//1.5
PORTB |=_BV(Q);
}
//6Если S=1 R=1 D=0
if ((bit_is_set(PINB,S))&&(bit_is_set(PINB,R))&&(bit_is_clear(PINB,D)))
{
//1.6
PORTB &=~_BV(Q);
}
}
return 0;
}
Файл номер 2
# include <90s8515>
{
PORT C = PIN A
} // обработка INT.0
interrupt [ TIM 1 OVF ]
void timer 0_over flow (void)
{
TCNT0 = TCNT0+1
}
TCNT0 = TCNT0-1; // обработка INT.1
void main ( void )
{
DDRA =0x00;
DDRC=0xff;
DDRD=0x03;
DDRB=0x00;
PORT C =0x00;
PORT D =0x01;
asm ( "sei" );
while (1);
}
и блок схема
Файл номер 1
#include <avr/io.h>
#include <util/delay.h>
#define S 0
#define R 1
#define C 2
#define D 3
#define Q 4
#define Qi 5
int main()
{
// Установим бит 0 порта В как входы (для входа S)
DDRB &=~_BV(S);
// Установим бит 1 порта В как входы (для входа R)
DDRB &=~_BV(R);
// Установим бит 2 порта В как входы (для входа C)
DDRB &=~_BV(C);
// Установим бит 3 порта В как входы (для входа D)
DDRB &= ~_BV(D);
// Установим бит 4 порта В как выход (для выхода Q)
DDRB |=_BV(Q);
// Установим бит 5 порта В как выход (для выхода Qi)
DDRB |=_BV(Qi);
while(1)
{
//1Если S=0 R=0
if ((bit_is_clear(PINB,S))&&(bit_is_clear(PINB,R)))
//1.1
{
}
//2Если S=0 R=1
if ((bit_is_clear(PINB,S))&&(bit_is_set(PINB,R)))
{
//1.2
PORTB &=~_BV(Q);
}
//3Если S=1 R=0
if ((bit_is_set(PINB,S))&&(bit_is_clear(PINB,R)))
{
//1.3
PORTB |=_BV(Q);
}
//4Если S=1 R=1 C=1
if ((bit_is_set(PINB,S))&&(bit_is_set(PINB,R))&&(bit_is_set(PINB,C)))
{
//1.4
PORTB |=_BV(Q);
}
//5Если R=1 S=1 D=1
if ((bit_is_set(PINB,S))&&(bit_is_set(PINB,R))&&(bit_is_set(PINB,D)))
{
//1.5
PORTB |=_BV(Q);
}
//6Если S=1 R=1 D=0
if ((bit_is_set(PINB,S))&&(bit_is_set(PINB,R))&&(bit_is_clear(PINB,D)))
{
//1.6
PORTB &=~_BV(Q);
}
}
return 0;
}
Файл номер 2
# include <90s8515>
{
PORT C = PIN A
} // обработка INT.0
interrupt [ TIM 1 OVF ]
void timer 0_over flow (void)
{
TCNT0 = TCNT0+1
}
TCNT0 = TCNT0-1; // обработка INT.1
void main ( void )
{
DDRA =0x00;
DDRC=0xff;
DDRD=0x03;
DDRB=0x00;
PORT C =0x00;
PORT D =0x01;
asm ( "sei" );
while (1);
}
и блок схема
- Вложения
-
- Безимени-2.jpg
- (84.33 КБ) 342 скачивания
В программу сейчас вникать неохота. 
А по блок схеме есть реплика.
После состояний 1.* микросхема, что, работать перестаёт?

А по блок схеме есть реплика.
После состояний 1.* микросхема, что, работать перестаёт?
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
- Сообщения: 10
- Зарегистрирован: Пт июн 29, 2012 09:48:26
Сам не бум бум или тут уместней наверно не мяу мяу в этом, делал вроде человек с красным дипломом
, поэтому прошу помощи тут 
позволю себе заметить, что у ТМ2 есть 2 вывода, по лог 0 триггер перейдет любо в 0 (по R). любо в 1 (по S), независимо от сигналов на D,C, и будет удерживаться в этом состоянии до снятия сигнала с R/S,
что-то я не заметил такого ни в блок схеме (походу она вообще ни о чем), ни в программе.
что-то я не заметил такого ни в блок схеме (походу она вообще ни о чем), ни в программе.
- Сообщения: 10
- Зарегистрирован: Пт июн 29, 2012 09:48:26
Попрошайничать некрасиво
, но GP1 можешь помочь? если есть время конечно.
Я вот только одного не пойму, у вас что препод дебил и не поймет, что вы даже рядом не стояли?Andrey91 писал(а):Попрошайничать некрасиво, но GP1 можешь помочь? если есть время конечно.
Учиться, учиться, ...
помогать - это не мое, но дать пинка в нужном направлении, сколько угодно.
1 для начала представь работу К155ТМ2 (2 Д-триггера)
т.е. есть вход D на котором может быть 1 или 0
вход С, по нарастающему фронту на котором происходит переключение триггера (вот только не помню ТМ2 двухтактный или однотактный, посмотришь в доках) - сразу напрашивается внешнее прерывание по нарастающему фронту
входы R,S работающие по 0 уровню, опять же вн.прерывание по 0 уровню
2. рисуешь диаграмму работы ТМ2 по ней алгоритм - и в путь...
1 для начала представь работу К155ТМ2 (2 Д-триггера)
т.е. есть вход D на котором может быть 1 или 0
вход С, по нарастающему фронту на котором происходит переключение триггера (вот только не помню ТМ2 двухтактный или однотактный, посмотришь в доках) - сразу напрашивается внешнее прерывание по нарастающему фронту
входы R,S работающие по 0 уровню, опять же вн.прерывание по 0 уровню
2. рисуешь диаграмму работы ТМ2 по ней алгоритм - и в путь...
Последний раз редактировалось GP1 Пт июн 29, 2012 21:32:17, всего редактировалось 1 раз.
- Сообщения: 10
- Зарегистрирован: Пт июн 29, 2012 09:48:26
ds1307 писал(а):Я вот только одного не пойму, у вас что препод дебил и не поймет, что вы даже рядом не стояли?Andrey91 писал(а):Попрошайничать некрасиво, но GP1 можешь помочь? если есть время конечно.
Препод нормальный вроде, просто я на свободном посещении
Или я отстал от жизни... илиAndrey91 писал(а):Препод нормальный вроде, просто я на свободном посещении
Если это курсовая, то за нее оценку ставят. И препод имеет право спросить у вас, что вы написали в ней. А вариант: Я на свободном посещении и не знаю, что я написал, не прокатит.
Или обучение уже не так ведется?
Учиться, учиться, ...
- Сообщения: 10
- Зарегистрирован: Пт июн 29, 2012 09:48:26
Обучение давно так не ведетсяds1307 писал(а):Или я отстал от жизни... илиAndrey91 писал(а):Препод нормальный вроде, просто я на свободном посещении
Если это курсовая, то за нее оценку ставят. И препод имеет право спросить у вас, что вы написали в ней. А вариант: Я на свободном посещении и не знаю, что я написал, не прокатит.
Или обучение уже не так ведется?
- Сообщения: 1163
- Зарегистрирован: Ср янв 05, 2011 16:25:15
Andrey91 помочь и сделать за ... - две разные вещи. Задача простая, так что рекомендую скачать справочник ( например "Популярные цифровые микросхемы." Автор: Шило В.Л.) и разобраться ...
АфторуChipKiller писал(а):Andrey91 помочь и сделать за ... - две разные вещи. Задача простая, так что рекомендую скачать справочник ( например "Популярные цифровые микросхемы." Автор: Шило В.Л.) и разобраться ...
Сомневаюсь, что кто-то возмется за это бесполезное дело
Учиться, учиться, ...
- Сообщения: 10
- Зарегистрирован: Пт июн 29, 2012 09:48:26
Дело то не бесполезное, а доброе, давно добрые дела делал?ds1307 писал(а):АфторуChipKiller писал(а):Andrey91 помочь и сделать за ... - две разные вещи. Задача простая, так что рекомендую скачать справочник ( например "Популярные цифровые микросхемы." Автор: Шило В.Л.) и разобраться ...это не поможет, он код не умеет писать. Подойдет только вариант сделать за...
![]()
Сомневаюсь, что кто-то возмется за это бесполезное дело
А вот тут, Вы ошиваетесь. Это не доброе дело. Сделать все за Вас, так какой-же вы специалист будете?Andrey91 писал(а): Дело то не бесполезное, а доброе, давно добрые дела делал?
С совестью своей определитесь
Учиться, учиться, ...



