ПЗ (1230212), страница 7
Текст из файла (страница 7)
На контроллер непосредственно подводится питание плюс 5 В на вывод Vсс. Вывод GND подключается к нулю схемы. Для использования схемы внутреннего аппаратного сброса на вход сброса программирования RESET через резистор сопротивлением 10 кОм подводится высокий уровень (соединен с Vсс). Кнопка обнуления индикатора подключена между выводом RESET и GND. Когда кнопка отпущена на выводе RESET высокий уровень сигнала, прибор ведет подсчет дальше. Когда кнопка сброса нажата, на выводе RESET низкий уровень, происходит обнуление внутреннего счетчика.
Входная тактовая частота задается при помощи внутреннего генератора в режиме ХТ малого энергопотребления, настроенного на частоту 4,096 МГц. Для этого используется резонатор с параллельным резонансом. Резистор RS использоваться не будет, считая, что резонатор не будет само возбуждаться. Конденсаторы С1 и С2 берутся по 15 пФ, так как более высокая емкость, увеличивая стабильность частоты генератора, увеличивает и время запуска, что не желательно. Схем подключения резонатора приведена на рисунке 3.7.
Кнопка “Включение/Выключение” подключается непосредственно после батареек, при ее включении подается питание через повышающий усилитель на микроконтроллер.
К выводу 14 подключается сигнальный провод, по которому будет приходить импульс от аппаратов защиты. Длина этого импульса и будет измерена, и высвечена на индикатор.
Электрическая принципиальная схема, спецификация элементов переносного миллисекундомера приведены на рисунке 3.23.
Рисунок 3.23 – Принципиальная электрическая схема переносного миллисекундомера
3.9 Разработка алгоритма управляющей программы
Схема алгоритма – одна из важнейших частей задачи, она состоит из отдельных операторов. Различают четыре вида операторов, каждый из которых имеет вход и выход показано на рисунке 3.24. Стрелками обозначаются направление хода вычислений.
Рисунок 3.24 – Виды операторов: а – оператор описание процесса обработки; б – оператор проверки условий; в – оператор начала (конца); г – оператор вызова подпрограммы
Работа управляющей программы начинается с инициализации используемых регистров и портов. Затем производится настройка портов, очистка ячеек памяти, задаются временные циклы, используемые для формирования прерывания при работе основной программы. Далее идет опрос выводов PC6 и PB0 микроконтроллера для сброса либо подсчета миллисекунд. После этого подсчитанное значение преобразуется в BCD – код и при наступлении прерывания отображается на индикаторе устройства.
Алгоритм управляющей программы переносного миллисекундомера приведён на рисунке 3.25.
3.10 Разработка управляющей программы
Возможные стадии процесса разработки программы для простого проекта встроенной системы иллюстрируются рисунке 3.26.
Сначала необходимо выбрать элементную базу разрабатываемого устройства, поскольку от этого зависит и качество аппаратуры (надежность, стабильность, быстродействие), и объем разрабатываемого программного обеспечения. Выбор элементной базы должен быть тщательно продуман и обоснован до начала разработки программного обеспечения, так как в некоторых случаях дальнейшие замены компонентов могут привести к полной переделке программы.
Как только выбор сделан, нужно определить структуру программного обеспечения. В результате этой работы может оказаться, что в элементную базу требуется внести какие-либо изменения.
Рисунок 3.25 – Алгоритм управляющей программы прибора
Рисунок 3.26 – Последовательность разработки приложения
Когда структура программного обеспечения составлена, приходит время написания программы. Чтобы облегчить последующее тестирование и отладку, нужно разделить ее на несколько модулей, каждый из которых выполняет определенные функции. Эти модули нужно писать поочередно и тестировать один за другим, что особенно важно для модулей драйверов, управляющих портами ввода/вывода.
Программа, обеспечивающая работу проектируемого миллисекундомера, написана на языке Си и построена в виде основной программы и подпрограмм. В соответствии с алгоритмом управляющей программы, приведенным на рисунке 3.25, составляется управляющая программа, текст которой приведен в листинге 3.1.
Листинг 3.1 – Управляющая программа проектируемого переносного миллисекундомера
#include <mega8.h>
#include <alcd.h>
#include <delay.h>
#include <stdio.h>
unsigned char OVF_counter, zamer_T; // Счётчик переполнений для таймера и определение длительности импульса
unsigned int rising, falling; // Время переднего фронта и заднего фронта
unsigned long PulseClocks; // Количество тактовых импульсов внутри импульса на входе ICP
// Прерывание по переполнению Таймера/счетчика 0
ISR(TIMER1_OVF_vect)
{
OVF_counter++; // Увеличиваем счетчик переполнений
}
// Прерывание по захвату Таймера/счетчика 0
ISR(TIMER1_CAPT_vect)
{
switch(zamer_T)
{
case 0: // Вычисляем ширину импульса
rising = ICR1; // Запоминаем значение счётчика
TCCR1B &= ~(1 << ICES1); // Устанавливаем прерывание по спадающему фронту импульса
OVF_counter = 0; // Обнуляем количество переполнений счётчика
zamer_T = 1; // Переходим к следующему вычислению
break;
case 1:
falling = ICR1; // Запоминаем значение счётчика
TCCR1B |= (1 << ICES1); // Устанавливаем прерывание по нарастающему фронту импульса
// Приводим все переменные к одному типу и вычисляем длительность импульса
T = (unsigned long)falling - (unsigned long)rising + ((unsigned long)OVF_counter * 65536);
// Функции работы с LCD
#define RS PD0
#define EN PD2
// Функция передачи команды
void lcd_com(unsigned char p)
{
PORTD &= ~(1 << RS); // RS = 0 (запись команд)
PORTD |= (1 << EN); // EN = 1 (начало записи команды в LCD)
PORTD &= 0x0F; PORTD |= (p & 0xF0); // старший нибл
_delay_us(100);
PORTD &= ~(1 << EN); // EN = 0 (конец записи команды в LCD)
_delay_us(100);
PORTD |= (1 << EN); // EN = 1 (начало записи команды в LCD)
PORTD &= 0x0F; PORTD |= (p << 4); // младший нибл
_delay_us(100);
PORTD &= ~(1 << EN); // EN = 0 (конец записи команды в LCD)
_delay_us(100);
}
// Функция передачи данных
void lcd_data(unsigned char p)
{ PORTD |= (1 << RS)|(1 << EN); // RS = 1 (запись данных), EN - 1 (начало записи команды в LCD)
PORTD &= 0x0F; PORTD |= (p & 0xF0); // Старший бит
_delay_us(100);
PORTD &= ~(1 << EN); // EN = 0 (конец записи команды в LCD)
_delay_us(100);
PORTD |= (1 << EN); // EN = 1 (начало записи команды в LCD)
PORTD &= 0x0F; PORTD |= (p << 4); // Младший бит
_delay_us(100);
PORTD &= ~(1 << EN); // EN = 0 (конец записи команды в LCD)
_delay_us(100); }
// Функция инициализации LCD
void lcd_init(void)
{ PORTD = 0x00;
DDRD = 0xFF;
_delay_ms(50); // Ожидание готовности ЖК-модуля
// Конфигурирование четырехразрядного режима
PORTD |= (1 << PD5);
PORTD &= ~(1 << PD4);
// Активизация четырехразрядного режима
PORTD |= (1 << EN);
PORTD &= ~(1 << EN);
_delay_ms(5);
lcd_com(0x28); // Шина 4 бит, LCD - 2 строки
lcd_com(0x08); // Полное выключение дисплея
lcd_com(0x01); // Очистка дисплея
_delay_us(100);
lcd_com(0x06); // Сдвиг курсора вправо
lcd_com(0x0C);} // Включение дисплея, курсор не видим
\\ Начало основной програмы
int main(void)
{ TIMSK |= (1 << TICIE1)|(1 << TOIE1); // Разрешаем прерывание по захвату и переполнению
lcd_init(); // Инициализация дисплея
_delay_ms(50);
lcd_gotoxy(0, 0);
lcd_putsf("start");
delay_ms(500);
lcd_clear();
sei(); // Глобально разрешаем прерывания
while (1) // Цикл
{
lcd_clear();
lcd_gotoxy(0,0);
lcd_putchar('T');
lcd_putchar('1');
lcd_putchar(':');
lcd_putchar((PulseClocks/1000000)+0x30);
lcd_putchar(',');
lcd_putchar(((PulseClocks%1000000)/100000)+0x30);
lcd_putchar(((PulseClocks%100000)/10000)+0x30);
lcd_putchar(0x20);
lcd_putchar('s');
delay_ms(500);
}
}
4 ЭКОНОМИЧЕСКАЯ ЭФФЕКТИВНОСТЬ МЕРОПРИЯТИЙ ПО ЦЕЛЕСОБРАЗНОСТИ ВНЕДРЕНИЯ ТЕХНИКИ
Экономический процесс, в настоящее время в России это развитие рынка и рыночных отношений, сокращение объемов производства, рост числа неплатежеспособных предприятий и организаций изменили механизм управления научно-техническим прогрессом, повлияли на темпы и характер научно-исследовательских, опытно-конструкторских и проектно-изыскательских работ, на разработку и внедрение инноваций, как основы экономического роста, повышения конкурентоспособности организации и экономики в целом.
Одним из основных условий формирования конкурентоспособной стратегической перспективы промышленного предприятия может стать его инновационная активность. Во всем мире инновации сегодня – это не прихоть, а необходимость выживания, сохранения конкурентоспособности и дальнейшего процветания. Именно потому проблема внедрения новой техники и технологии на предприятии актуальна и чрезвычайно значима в наши дни. Эффективность – относительный показатель результативности и может быть только положительной величиной. Эффект – абсолютный показатель результата какого-либо действия или деятельности. Он может быть, как положительным, так и отрицательным.
Главная цель оценки эффективности применения новой техники – обоснование ее коммерческой состоятельности. Качество технологического процесса реализуется в его способности создать новшество. Оно оценивается как с позиций технико-технологических характеристик, так и системой экономических показателей.
Для того, чтобы внедрение новой техники и технологии было эффективным, необходимы такие их качества как адаптивность, гибкость, возможности синергизма, чёткая стратегия, наличие патентов и лицензий на технологию, высококвалифицированный персонал, адекватные организационно-управленческие структуры. Все эти понятия невозможно свести к какому-то единому показателю, поэтому качество технологии определяет непосредственно рынок, а критерием всего многообразия свойств выступает экономическая эффективность.
При проектировании, разработке и внедрении новой техники и технологии процедура определения экономической эффективности этих мероприятий состоит из четырёх этапов. Первый этап – определение необходимых затрат для реализации инновационных мероприятий. Второй – определение возможных источников финансирования. Третий – оценка экономического эффекта от внедрения новой техники и технологии. Четвёртый – оценка сравнительной эффективности новшества путём сопоставления экономических показателей. Таким образом, экономическая эффективность характеризуется соотношением экономического эффекта, полученного в течение года, и затрат на внедрение данного мероприятия.
Широко применяемые технико-экономические и функционально-стоимостные метода анализа позволяют установить зависимость между техническими и экономическими показателями процессов и найти алгоритм оптимального функционирования производственных систем. В отдельности решить проблему качества и экономической эффективности новой техники и технологии невозможно.
Наиболее целесообразно применить обобщённую технико-экономическую модель, которая выявляет воздействие показателей технического уровня на обобщающие технико-экономические показатели: себестоимость, производительность, приведённые затраты и т.д. Для этого необходимо на самом начале проектирования новшества избрать альтернативный вариант. Оптимальные свойства новшества при максимальной экономической эффективности или максимально совершенный уровень новшества при удовлетворительной экономической эффективности.
Эффективность любого инновационного проекта оценивается на основании "Методических рекомендаций по оценке эффективности инновационных проектов и их отбору для финансирования", утверждённых Госстроем, Министерством экономики, Министерством финансов и Госкомпромом РФ от 31 марта 1994 г. Установлены следующие основные показатели эффективности инновационного проекта:
- финансовая эффективность, учитывающая финансов последствия для бюджетов всех уровней;
- бюджетная эффективность, учитывающая финансовые последствия реализации проекта для его непосредственных участников;