Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЗ_МиМСУ_новая.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
1.99 Mб
Скачать

3.2 Принцип работы устройства

Схема электрическая принципиальная устройства дана в приложении (КНФУ.403ХХХ.001Э3). Основой устройства является микроконтроллер DD3. Микроконтроллер тактирован кварцем ZQ3 на частоту 6 МГц по стандартной схеме подключения с конденсаторами С10, С11. Переключение режимов устройства осуществляется кнопками SB1…SB4, которые подключают соответствующие входы DD3 либо на шину +5В, либо на 0В (т.е. логические 0 и 1). Подавление дребезга контактов на входах микроконтроллера встроенное. Состояние работы микроконтроллера индицируется двумя светодиодами HL1 и HL2. Проигрывание музыкальной мелодии будильника осуществляется динамической головкой BA1, подключенной на один из выходов микроконтроллера через буфер на транзисторе VT1. Микросхема DA1 обеспечивает запуск микроконтроллера после подключения питания с некоторым запаздыванием, чтобы исключить сбой микроконтроллера из-за наводок по питанию в момент включения. Программирование микроконтроллера внутрисхемное с помощью программатора через штырьковую колодку XP1.

Подключение к персональному компьютеру осуществляется через специализированную микросхему USB-интерфейса DD2. Микросхема тактирована кварцем ZQ2 на частоту 6 МГц по обычной схеме. HS1 – это разъем USB. R1…R5,C1,C3,C4,С8,С9- обвес микросхемы DD2.Схема подключения DD2 типовая, взята из Datasheet на микросхему. Связь с микроконтроллером по интерфейсу UART.

Температура среды измеряется микросхемой цифровым датчиком температуры BK1. Время задается микросхемой часов реального времени с памятью DD1, тактируемой часовым кварцем ZQ1 на частоту 32768 Гц. Сохранение памяти микросхемы обеспечивается литиевой батарейкой G1 на напряжение +3 В. Данные с BK1 и DD1 передаются на микроконтроллер по шине интерфейса TWI.

Индикаторами управляет специализированная микросхема драйвер динамической индикации DD4. Она управляет 4 семисегментными индикаторами HG1…HG4, образующими табло часов, и маленьким вспомогательным индикатором HG5, предназначенным для отображения режимов настройки часов. Получение данных для DD4 от микроконтроллера осуществляется по интерфейсу SPI.

Напряжение питания +5В подается на устройство через розетку XS2 от внешнего стабилизированного источника питания.

3.3 Блок питания

В качестве внешнего блока питания можно применить любой стабилизированный промышленный блок питания на +5В обеспечивающий выходной ток не менее 500 мА.

  1. Описание программной части

    1. 4.1 Описание языка программирования Си.

Си(англ. C) — стандартизированный процедурный язык программирования, разработанный в начале 1970-х годов сотрудниками Bell Labs Кеном Томпсоном и Деннисом Ритчи для использования в операционной системе UNIX. С тех пор он был перенесён на многие другие операционные системы и стал одним из самых используемых языков программирования.

Язык программирования Си отличается минимализмом. Авторы языка хотели, чтобы программы на нём легко компилировались с помощью однопроходного компилятора, чтобы каждой элементарной составляющей программы после компиляции соответствовало весьма небольшое число машинных команд, а использование базовых элементов языка не задействовало библиотеку времени выполнения. Однопроходный компилятор компилирует программу, не возвращаясь назад, к уже обработанному тексту. Поэтому использованию функции и переменных должно предшествовать их объявление. Компиляторы Си разрабатываются сравнительно легко благодаря простоте языка и малому размеру стандартной библиотеки. Поэтому данный язык доступен на самых различных платформах.

Си создавался с одной важной целью: сделать более простым написание больших программ с минимумом ошибок по правилам процедурного программирования, не добавляя в итоговый код программ лишних сложностей для компилятора, как это всегда делают языки высокого уровня. С этой стороны Си предлагает следующие важные особенности:

• простую языковую базу, из которой вынесены в библиотеки многие существенные возможности, вроде математических функций или функций управления файлами;

• ориентацию на процедурное программирование, обеспечивающую удобство применения структурного стиля программирования;

• систему типов, предохраняющую от бессмысленных операций;

• использование препроцессора для, например, определения макросов и включения файлов с исходным кодом;

• непосредственный доступ к памяти компьютера через использование указателей;

• минимальное число ключевых слов;

• передачу параметров в функцию по значению, а не по ссылке (при этом передача по ссылке эмулируется с помощью указателей);

• указатели на функции и статические переменные;

• области действия имён;

• структуры и объединения — определяемые пользователем собирательные типы данных, которыми можно манипулировать как одним целым;

Вместе с тем, в языке Си отсутствуют некоторые полезные возможности:

• автоматическое управление памятью;

• поддержка объектно-ориентированного программирования;

• замыкание;

• вложенные функции;

• полиморфизм функций и операторов;

• поддержка многозадачности и сетевые функции;

• функции высшего порядка;

• сопрограммы;

• карринг.

Часть отсутствующих возможностей можно сымитировать встроенными средствами (например, сопрограммы можно имитировать с помощью функций setjmp и longjmp), часть добавляется с помощью сторонних библиотек (например, для поддержки многозадачности и для сетевых функций можно использовать библиотеки pthreads, sockets и т. п.), часть реализуется в некоторых компиляторах в виде расширений языка.

Язык Си позволяет писать программы на низком уровне, максимально близко к реальным устройствам, почти на уровне ассемблера. Поэтому программы на Си исполняются очень быстро, уступая лишь ассемблерному коду, оптимизированному вручную.