Рис.6.1 - Устройство инициализировано, готово к работе
Рис. 6.2 - Обработка прерывания при нажатии кнопки «MENU», установка в ноль текущего угла поворота антенны
Рис. 6.3 - Поворот антенны на право на 1 градус
Рис. 6.4 - Поворот антенны на лево в случае, когда кнопка «LEFT» нажата более 0,3 с
ЗАКЛЮЧЕНИЕ
Разработан контроллер опорно-поворотного устройства антенны. Написана программа для микроконтроллера ATmega8535 на языке Assembler AVR и СИ. Произведено моделирование синтезированного устройства в среде Proteus.
ПРИЛОЖЕНИЕ
Листинг
программы
инициализации
устройства
// прерывания кнопок
// меню
#define MENUPORT PORTB
#define MENUDDR DDRB
#define MENUBIT 2
#define INT_MENU EXT_INT2
// лево
#define LEFTPORT PORTD
#define LEFTDDR DDRD
#define LEFTPIN PIND
#define LEFTBIT 2
#define INT_LEFT EXT_INT0
// право
#define RIGHTPORT PORTD
#define RIGHTDDR DDRD
#define RIGHTPIN PIND
#define RIGHTBIT 3
#define INT_RIGHT EXT_INT1
// двигатель
#define MOTORPORT PORTC
#define MOTORDDR DDRC
char nSteps[4], nCurrentStep;
/*****************************************************
*** Функция InitButtons ***
*** Инициализация прерывания кнопок ***
*****************************************************/InitButtons(void)
{
// настройка портов.MENUBIT = 1;
MENUDDR.MENUBIT = 1;
LEFTPORT.LEFTBIT = 1;.LEFTBIT = 1;.RIGHTBIT = 1;.RIGHTBIT = 1;
// Настройка прерываний
// INT0: On
// INT0 Mode: Falling Edge
// INT1: On
// INT1 Mode: Falling Edge
// INT2: On
// INT2 Mode: Falling Edge|=0xE0;=0x0A;=0x00;=0xE0;
}
/*****************************************************
*** Функция InitMotor ***
*** Инициализация двигателя ***
*****************************************************/InitMotor(void)
{= 0x00;= 0xFF;
[0] = 0x09;[1] = 0x03;[2] = 0x06;[3] = 0x0C;
= 0;
}
Листинг программы контроллера опорно-поворотного устройства антенны
/*****************************************************: Контроллер опорно-поворотного устройства антенны
Chip type : ATmega8535
*****************************************************/
#include <mega8535.h>
// Alphanumeric LCD Module functions
#asm
.equ lcd_port=0x1B ;PORTA
#endasm
#include <lcd.h>
// Standard Input/Output functions
#include <stdio.h>
#include <delay.h>
// настройки платы
#include <BoardConfig.h>
// прототипы фунцийRotateLeft(unsigned short nCount);RotateLeftStep(unsigned short nCount);RotateRight(unsigned short nCount);RotateRightStep(unsigned short nCount);ShowCurrentAngle(void);Initialization(void);
Самое читаемое:
Модернизация канала формирования импульсов запуска блока Т-17М
Постоянное совершенствование средств воздушного нападения,
опыт войн и вооруженных конфликтов последних десятилетий предъявляют повышенные
требования к возможностям зенитных комплексов ближнего действия по обнаружению,
сопровождению и поражению воздушных целей в различных условиях обстановки.
Однако подавляющее большинство зенитны ...