Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С
Шрифт:
7.2.6. Программный код
//********************************************************************
//имя файла: laser.с
//функции: программа для управления лазерным проектором
//контроллер: отладочная плата 68HC12B32 фирмы Motorola
//Выводы отладочной платы микроконтроллера 68HC12B32 фирмы Motorola:
//Port A: Конфигурирован как входной порт, активируемый нажатием
//
бездребезговых переключателей на каждом входе
//Port B: Конфигурирован как выходной порт для управления светодиодным
// индикатором
//Port S: Конфигурирован как выходной порт, создающий двоичный код
// на канале X ЦАП
//Port T: Конфигурирован как выходной порт, создающий двоичный код
// на канале Y ЦАП
//Port P[0]: Конфигурирован как выходной порт, создающий TTL совместимый
// сигнал для управления затвором
//авторы: Steve Barrett and Daniel Pack
//создан: февраль 20, 2003
//последняя редакция: март 3, 2004
//********************************************************************
//включенные файлы
//********************************************************************
#include <912b32.h>
//функции прототипов
void initialize_ports(void); //инициализация портов
void shutter(int); //открытие/закрытие створок
void position_laser(unsigned char, unsigned char); // положение лазера
void delay(void);
#define open 1
#define close 0
//main program*************************************************************
//global variables
unsigned char new_PORTA, old_PORTA = 0xFF;
int i;
int go;
void main(void) {
//инициализировать вектор reset B32
asm(".area vectors(abs)\n"
".org 0xFFF8\n"
".word 0x8000, 0x8000, 0x8000, 0x8000\n"
".text");
go = 1; //начало цикла while
initialize_ports; //инициализировать порты
shutter(close); //закрыть створки
position_laser(0x80,0x80); //расположить
луч в центре
while(go) { //продолжать, пока не нажмут кнопку Stop
new_PORTA = PORTA; //read PORTA input switches
if (new_PORTA != old_PORTA) switch(new_PORTA){ //формировать образ по значению
//нажатой клавиши
case 0x7F: //PA7 - Точка в центре экрана
PORTB = 0x80;// подсвечивает светодиод порта PORTE
position_laser(0x80,0x80);
shutter(open);
delay;
shutter(close);
PORTB=0x00; //включает красные светодиоды индикатора
break;
case 0xBF: //PA6- горизонтальная линия
position_laser(0x00,0x80);
shutter(open);
for{i=0; i<=255; i++) {
i = (unsigned char)(i);
position_laser(i, 0x80);
delay;
}
shutter(close);
PORTB=0x00; //включает красные светодиоды индикатора
break;
case 0xDF: //PA5 - Вертикальная линия
PORTB = 0x20; // подсвечивает светодиод порта PORTB
position_laser(0x80,0x00);
shutter(open);
for(i=0; i<=255;i++) {
i=(unsigned char)(i);
position_laser(0x80,i);
delay;
}
shutter(close);
PORTB=0x00; //включает красные светодиоды индикатора
break;
case 0xFF: //PA4 - Правая пила под углом 45 градусов
// с Юго-Запада на СВ
PORTB = 0x10; // подсвечивает светодиод порта PORTB
position_laser(0x00,0x00);
shutter(open);
for(i=0; i<=255; i++) {
i = (unsigned char)(i);
position_laser(i, i);
delay;
}
shutter(close);
PORTB=0x00; //включает красные светодиоды индикатора
break;
case 0xF7: //PA3 - Левая пила под углом 45 градусов
Поделиться:
Популярные книги
Неудержимый. Книга VIII
8. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
6.00
рейтинг книги
Законы Рода. Том 6
6. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Восход. Солнцев. Книга I
1. Голос Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Попаданка
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Возлюби болезнь свою
Научно-образовательная:
психология
7.71
рейтинг книги

Кодекс Крови. Книга III
3. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Ротмистр Гордеев 2
2. Ротмистр Гордеев
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Идеальный мир для Лекаря 5
5. Лекарь
Фантастика:
фэнтези
юмористическая фантастика
аниме
5.00
рейтинг книги
Адвокат Империи 3
3. Адвокат империи
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Жребий некроманта 3
3. Жребий некроманта
Фантастика:
боевая фантастика
5.56
рейтинг книги
Город драконов
1. Город драконов
Фантастика:
фэнтези
6.80
рейтинг книги
Убивать, чтобы жить
1. УЧЖ
Фантастика:
героическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Инквизитор Тьмы 2
2. Инквизитор Тьмы
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Беглец
1. Совсем не герой
Фантастика:
фэнтези
попаданцы
8.94