|
jakim91
|
|
Программа для жизни17.04.2011, 19:10. Показов 817. Ответов 0
Метки нет (Все метки)
Умоляю, помогите товарищи программисты!
Для курсача надо сделать прогу на ассемблере, и есть алгоритм работы в тексте, но как этот алгоритм работы перевести хотябы в текст программы не имею ни малейшего понятия, т.к. на ассемблере (по нашей специальности) проходили просто как запихнуть в N-ый регистр чтото...помогите пожалуйста...вот текст алгоритма: Инициализация: • RESET: 10 – вход сброса; • Y1 – Y7: – выходы на индикаторы ; • Y15: – выход на обогреватель; • Y14: – выход на вентилятор; • Y12: вход с датчика температуры; • Y13: – вход с датчика влажности; • Y8-Y11: входы с кнопок; • Тактовая частота АЦП 400 кГц (коэффициент деления = 4); • Частота внутреннего тактового генератора = 1,6 МГц; • Разрешить прерывание по нажатию кнопок (ввод данных с пульта); • Разрешить прерывание по нажатию кнопки вкл/выкл на вентиляторе; • Разрешить прерывание по нажатию кнопки вкл/выкл на нагревателе; • Разрешить прерывание от часов реального времени; • Разрешить прерывание по переполнению счетчиков; • Текущее_влажность = влажность измеренная датчиком влажности; • Текущее_ температура = температура измеренная датчиком температуры • Кнопка_ нагреватель = = 0; • Кнопка_ вентилятор = = 0; • Текущее_время = = текущее время; • Счетчик_день = = 0; • Счетчик_ночь = = 0; • Период_День = = 8.01 – 20.00 • Период_Ночь = = 20.01 – 8.00 Тело основного цикла: • Переходим на метку TEST; • Вечный цикл { МК уходит в режим пониженного энергопотребления, пока не придет какое – нибудь прерывание. } Описание прерываний: INT_NIGHTTEMP (прерывание от кнопки_ температура ночью) • i = 1; • переходим на метку BUTTON; • регистр_ночь = счетчик_i*5. INT_DAYTEMP (прерывание от кнопки_ температура днём) • i = 2; • переходим на метку BUTTON; • регистр_утро = счетчик_i*5. INT_NIGHTHUM (прерывание от кнопки_ влажность ночью) • i = 3; • переходим на метку BUTTON; • регистр_день = счетчик_i*5 INT_ DAYHUM (прерывание от кнопки_ влажность днём) • i = 4; • переходим на метку BUTTON; • регистр_вечер = счетчик_i*5. INT_CURTIME (прерывание от блока сравнения текущего времени с одним из заданных периодов (ночь, утро, день, вечер)) • регистр = введенное значение в данный период; • переход на метку COMPARE. INT_WIND (прерывание от кнопки вентилятора) • Переход на метку WIND. INT_WARM (прерывание от кнопки нагревателя) • Переход на метку WARM. Процедуры: TEST: • подается сигнал на устройство контроля подключения вентилятора/нагревателя и на устройство подачи питания вентилятора/нагревателя. Последнее последовательно подает питание на вентилятор и на нагреватель, а первое следит, течет ли в этот момент через него ток. Если какое-либо из внешних устройств не подключено в момент подачи питания, то через устройство контроля не потечет ток, соответственно последнее выдаст сигнал ошибки на табло: Е0 – не подключен вентилятор, Н0 – не подключен нагреватель. Код ошибки вентилятора – 0, код ошибки нагревателя – 11. BUTTON: • Счетчик_i = = Счетчик_i +1; • Если Счетчик_i = 1, то Y2 = Y3 = =1; • Если Счетчик_i = 2, то Y1 = Y2 = Y7 = Y5 = Y4 = =1; • Если Счетчик_i = 3, то Y1 = Y2 = Y3 = Y4 = Y7 = =1; • Если Счетчик_i = 4, то Y6 = Y7 = Y2 = Y3 = =1; • Если Счетчик_i = 5, то Y1 = Y6 = Y7 = Y3 = Y4 = =1; • Если Счетчик_i = 6, то Y1 = Y6 = Y5 = Y4 = Y3 = Y7 = =1; • Если Счетчик_i = 7, то Y1 = Y2 = Y3 = =1; • Если Счетчик_i = 8, то Y1 = Y2 = Y3 = Y4 = Y5 = Y6 = Y7 = =1; • Если Счетчик_i = 9, то Y1 = Y2 = Y3 = Y4 = Y6 = Y7 = =1; • Если Счетчик_i = 10, то { Y1 = Y2 = Y3 = Y4 = Y5 = Y6 = = 1, Y7 = =0; SLEEP; } • Возврат назад. COMPARE: • если регистр < Текущее_влажность, то Y14 = 1 и Кнопка_ вентилятор = 1; • если регистр > Текущее_ влажность, то Y15 = 1 и Кнопка_ нагреватель = 1; • если регистр = = Текущее_ влажность, то (Y14 = 0 и Кнопка_ нагреватель = 0) и (Y15 = 0 и Кнопка_ вентилятор = 0); • если регистр > Текущее_ температура, то Y15 = 1 и Кнопка_ вентилятор = 1 • если регистр < Текущее_температура, то Y14 = 1 и Кнопка_ нагреватель = 1 • если регистр = = Текущее_ температура, то (Y14 = 0 и Кнопка_ нагреватель = 0) и (Y15 = 0 и Кнопка_ вентилятор = 0); • Возврат назад. WIND: • Если Кнопка_вентилятор = = 1, то Кнопка_вентилятор = 0 и Y15 = 0 и МК уходит в режим сохранения энергии; • Если Кнопка_вентилятор = = 0, то Кнопка_вентилятор = 1 и Y15 = 1 и МК выходит из режима сохранения энергии; • Возврат назад. WARM: • Если Кнопка_нагреватель = = 1, то Кнопка_нагреватель = 0 и Y14 = 0 и МК уходит в режим сохранения энергии; • Если Кнопка_ нагреватель = = 0, то Кнопка_ нагреватель = 1 и Y14 = 1 и МК выходит из режима сохранения энергии; • Возврат назад. ---------------------------------------------------- ПОМОГИТЕ ПОЖАЛУЙСТА Отвечаю кто поможет бабло на тел кину |
|
| 17.04.2011, 19:10 | |
|
Ответы с готовыми решениями:
0
OpenSource проект - программа симуляции жизни Программа, типа жизни колонии: нужно сделать меньше отступы (или убрать их) Ноут для жизни |
| 17.04.2011, 19:10 | |
|
Помогаю со студенческими работами здесь
1
Ноутбук для повседневной жизни
Framework для облегчения жизни! Программа вычисления текущего дня вашей жизни, с дня рождения Земля будет непригодной для жизни? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|