62174 (611441), страница 5

Файл №611441 62174 (Автомобильные часы-термометр-вольтметр на базе микроконтроллера) 5 страница62174 (611441) страница 52016-07-30СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 5)

RETURN

CLRFHL;

INCFHH,1;

RETURN

HL4

MOVFWHL;ЕСЛИ ЕДИНИЦЫ ЧАСОВ

ADDLW-3H;РАВНЫ 3,

BZHOH;ИДЕМ ОБНУЛЯТЬ.

INCFHL,1;ИЛИ ПРИБАВИМ ЕДИНИЦУ.

RETURN

HOH

CLRFHL;

CLRF HH;ОБНУЛИМ ДЕСЯТКИ ЧАСОВ.

RETURN;

;=============================================

; 14. ТАЙМЕР.

;=============================================

TAIM

BSFFLAG,5;СЛЕДУЮЩАЯ ОСТАНОВКА ТАЙМЕРА.

MOVLW.9;ЕСЛИ УЖЕ 9 СЕКУНД,

SUBWFTCL,0;

BC$+3;ИДЕМ НА СРАВНЕНИЕ ДЕСЯТКОВ СЕКУНД.

INCFTCL,1;ИНАЧЕ ПРИБАВИМ ЕДИНИЦУ.

RETURN

CLRFTCL;ОБНУЛИМ СЕКУНДЫ.

MOVFWTCH;ЕСЛИ ДЕСЯТКИ СЕКУНД

ADDLW-5H;РАВНЫ 5,

BZ$+3;ИДЕМ СРАВНИВАТЬ МИНУТЫ.

INCFTCH,1;ИНАЧЕ УВЕЛИЧИМ ДЕСЯТКИ СЕКУНД.

RETURN

CLRFTCH;ОБНУЛИМ ДЕСЯТКИ СЕКУНД.

MOVFWTML;ЕСЛИ ЕДИНИЦЫ МИНУТ

ADDLW-9H;РАВНЫ 9,

BZ$+3;ИДЕМ СРАВНИВАТЬ ДЕСЯТКИ.

INCFTML,1;ИНАЧЕ УВЕЛИЧИМ МИНУТЫ.

RETURN

CLRFTML;ОБНУЛИМ ЕДИНИЦЫ МИНУТ.

MOVFWTMH;ЕСЛИ ДЕСЯТКИ МИНУТ

ADDLW-5H;РАВНЫ 5,

BZ$+3;УВЕЛИЧИМ ЧАСЫ.

INCFTMH,1;ИЛИ УВЕЛИЧИМ ДЕСЯТКИ МИНУТ.

RETURN

CLRFTMH;ОБНУЛИМ ДЕСЯТКИ МИНУТ.

MOVFWTHL;ЕСЛИ ЕДИНИЦЫ ЧАСОВ РАВНЫ 9,

ADDLW-9H;

BZ$+3;УВЕЛИЧИМ ДЕСЯТКИ ЧАСОВ.

INCFTHL,1;ИЛИ УВЕЛИЧИМ ЕДИНИЦЫ ЧАСОВ.

RETURN

CLRFTHL;ОБНУЛИМ ЧАСЫ.

MOVFWTHH;ЕСЛИ ДЕСЯТКИ ЧАСОВ РАВНЫ 9,

ADDLW-9H;

BZ$+3;ОБНУЛИМ.

INCFTHH,1;ИЛИ УВЕЛИЧИМ ДЕСЯТКИ ЧАСОВ.

RETURN

CLRFTHH;

RETURN

T00

BTFSSFLAG,5;

GOTO$+4;

BCFFLAG,2;ТАЙМЕР ВЫКЛЮЧЕН.

BCFFLAG,5;СЛЕДУЮЩЕЕ ВКЛЮЧЕНИЕ ТАЙМЕРА.

RETURN;

CLRFTCL;ВСЕ ОБНУЛЯЕМ.

CLRFTCH;

CLRFTML;

CLRFTMH;

CLRFTHL;

CLRFTHH;

BSFFLAG,2;ВКЛЮЧИМ ТАЙМЕР.

RETURN

;===================================================

; 15. АЦП - ПРЕОБРАЗОВАНИЯ (ИЗМЕРЕНИЕ ВХОДНЫХ ВЕЛИЧИН).

;===================================================

ADP

MOVLWB'10000001';СИНХРОНИЗАЦИЯ ОТ RC

MOVWFADCON0;ГЕНЕРАТОРА, ВХОД 0, ВКЛЮЧЕНИЕ АЦП (YBX).

CALLZAD;

BSFADCON0,1;ВКЛЮЧИМ ПРЕОБРАЗОВАНИЕ.

BTFSCADCON0,1;ОЖИДАЕМ ЗАВЕРШЕНИЯ

GOTO$-1 ;ПРЕОБРАЗОВАНИЯ.

MOVFWADRESH ;ПЕРЕПИШЕМ РЕЗУЛЬТАТ ПРЕОБРАЗОВАНИЯ

MOVWFTEKH;В СТАРШИЙ ТЕКУЩИЙ РЕГИСТР.

BSFSTATUS,5;ПЕРЕХОДИМ В БАНК 1.

MOVLW58;

MOVWFFSR;ПО КОСВЕННОЙ АДРЕСАЦИИ

MOVFWADRESL;ЗАПИСЬ МЛ. РЕГИСТРА АЦП

MOVWFINDF;В РЕГИСТР TEKL.

BCFSTATUS,5;ПЕРЕХОДИМ В БАНК 0.

CALLCOMPA;

GOTOBINDEC;ПЕРЕКОДИРУЕМ В 2_10 КОД.

ZAD

MOVLW.5;ЗАДЕРЖКА 20 МКС.

ADDLW-1;

BTFSSSTATUS,2;

GOTO$-2;

RETURN

;===========================

; 16. СРАВНЕНИЕ С УСТАНОВКОЙ.

;===========================

COMPA

TSTFTEKL;

BTFSCSTATUS,2;

GOTOVUKL;

MOVFWYCTL;УСТАНОВКА МАКСИМУМА.

SUBWFTEKL,0;ИЗМЕРЕНИЕ,

BTFSCSTATUS,0;ЕСЛИ БОЛЬШЕ ИЛИ РАВНО,

GOTOVUKL;ТО ВКЛЮЧАЕТСЯ ЗУММЕР.

MOVFWYCTLI;УСТАНОВКА МИНИМУМА.

SUBWFTEKL,0;ИЗМЕРЕНИЕ,

BTFSSSTATUS,0;ЕСЛИ МЕНЬШЕ,

GOTOVUKL;ТО ВКЛЮЧАЕТСЯ ЗУММЕР.

BTFSCSTATUS,2;ЕСЛИ РАВНО,

GOTOVUKL;ТО ВКЛЮЧАЕТСЯ ЗУММЕР.

BCFFLAG1,4;ЗУММЕР ВЫКЛЮЧЕН.

BCFFLAG1,5;ЗУММЕР ВЫКЛЮЧЕН.

BCFPORTC,0;ВЫКЛЮЧИМ СИГНАЛ.

RETURN

VUKL

BTFSCPORTA,KY;

GOTO$+5;

BSFFLAG1,5;ПОСТАВИМ СТОРОЖОК НА 1 ЧАС.

BCFPORTC,0;ВЫКЛЮЧИМ СИГНАЛ.

BTFSCFLAG1,5;ЕСЛИ 1 ЧАС ПРОШЕЛ, ТО ВКЛЮЧИМ СИГНАЛ.

RETURN

BTFSCFLAG1,4;ЕСЛИ ВЫХОД УЖЕ ВЫКЛЮЧЕН,

RETURN;СРАВНЕНИЙ НЕТ.

BSFPORTC,0;ВКЛЮЧИМ СИГНАЛ.

BSFFLAG1,4;ЗУММЕР ВКЛЮЧЕН.

RETURN

;======================================================

; 17. ПЕРЕКОДИРОВКА ИЗ 16-И РАЗРЯДНОГО 2-ГО В 5- РАЗРЯДНОЕ 2-10-Е.

; АЛГОРИТМ ПЕРЕКОДИРОВКИ ОСНОВЫВАЕТСЯ НА ПРИБАВЛЕНИИ 3 В МЛАДШИЙ

; И СТАРШИЙ ПОЛУБАЙТЫ. ЕСЛИ РЕЗУЛЬТАТ СПЕРЕНОСОМ 1 В 3 РАЗРЯД (10=7+3), ТО ЗАПИСЫВАЕМ

; НОВОЕ ЗНАЧЕНИЕ В РЕГИСТР. ВЫПОЛНЯЕМ 16 РАЗ СДВИГАЯ БИТЫ РЕГИСТРОВ.

;======================================================

BINDEC

MOVLW .16 ;ЗАПИШЕМ ЧИСЛО СДВИГОВ

MOVWF COU ;В СЧЕТЧИК.

BIDE

BCF STATUS,0 ;ОБНУЛИМ БИТ "С".

RLF TEKL,1 ;СДВИНЕМ ПЕРЕКОДИРУЕМОЕ

RLF TEKH,1 ;ЧИСЛО ПЕРЕМЕЩАЯ ЕГО СТАРШИЙ БИТ

RLF EDA,1 ;В МЛАДШИЙ БИТ РЕГИСТРОВ

RLF DEA,1 ;РЕЗУЛЬТАТА.

DECFSZ COU,1 ;ЗАФИКСИРУЕМ СДВИГ В СЧЕТЧИКЕ.

GOTO RASDEC ;ПРОВЕРИМ ПОЛУБАЙТЫ НА СЕМЕРКУ.

GOTO MESTO ;ЕСЛИ СЧЕТЧИК ПУСТ, ЗАПОЛНИМ РЕГИСТРЫ ИНДИКАЦИИ.

RASDEC

MOVLW EDA ;ЗАПИШЕМ АДРЕС РЕГИСТРА

MOVWF FSR ;В РЕГИСТР КОСВЕННОЙ АДРЕСАЦИИ.

CALL BCD ;ПРОВЕРИМ ЗНАЧЕНИЕ РЕГИСТРА НА 7.

MOVLW DEA ;АНАЛОГИЧНЫЕ ОПЕРАЦИИ ПРОДЕЛАЕМ

MOVWF FSR ;С ДРУГИМИ РЕГИСТРАМИ.

CALL BCD ;

GOTO BIDE ;ПОЙДЕМ ПОВТОРЯТЬ СДВИГ.

BCD

MOVLW 3 ;0000 0011

ADDWF 0,0 ;ПРИБАВИМ 3 К РЕГИСТРУ И РЕЗУЛЬТАТ

MOVWF TEMP ;ЗАПИШЕМ ВО ВРЕМЕННЫЙ РЕГИСТР.

BTFSC TEMP,3 ;ПРОВЕРИМ 3 БИТ И ЕСЛИ ОН РАВЕН НУЛЮ,

MOVWF 0 ;ПРОПУСКАЕМ ЗАПИСЬ РЕЗУЛЬТАТА В РЕГИСТР.

MOVLW 30 ;48=0011 0000

ADDWF 0,0 ;ПРИБАВИМ 3 К СТАРШЕМУ ПОЛУБАЙТУ РЕГИСТРА И РЕЗУЛЬТАТ

MOVWF TEMP ;ЗАПИШЕМ ВО ВРЕМЕННЫЙ РЕГИСТР.

BTFSC TEMP,7 ;ЕСЛИ БИТ ЕДИНИЧНЫЙ,

MOVWF 0 ;ТО ЗАПИШЕМ НОВОЕ ЗНАЧЕНИЕ В РЕГИСТР.

RETURN ;ВЕРНЕМСЯ ДЛЯ ЗАГРУЗКИ НОВОГО ЗНАЧЕНИЯ РЕГИСТРА.

;======================================================

; 18. ИЗВЛЕКАЕМ ПОЛУБАЙТЫ ИЗ РЕГИСТРОВ СЧЕТА В РЕГИСТРЫ ИНДИКАЦИИ.

;======================================================

MESTO

MOVLWB'00001111';ИЗВЛЕКАЕМ ПОЛУБАЙТЫ

ANDWFDEA,0;В РЕГИСТРЫ ИНДИКАЦИИ.

MOVWFCOI;

MOVLWB'11110000';

ANDWFEDA,0 ;

MOVWFDEI ;

SWAPFDEI,1 ;

MOVLWB'00001111';

ANDWFEDA,0;

MOVWFEDI;

CLRFEDA;

CLRFDEA;

RETURN;

;==================================================

; 19. СМЕНА ИНДИКАЦИИ ПРИ СМЕНЕ РЕЖИМА.

;==================================================

INDH

BTFSCFLAG,7;ЕСЛИ КУРСОР ЕСТЬ,

CALLYCT;ТО ИДЕМ НА УСТАНОВКУ.

MOVLW.10;ПУСТО.

CALLSEG;ЗАПОЛНИМ РЕГИСТРЫ ИНДИКАЦИИ.

MOVWFR1;

MOVWFR2;

MOVWFR8;

BTFSSFLAG,6;

GOTO$+6;

MOVLW.11;ПРОЧЕРК СРЕДНИЙ.

CALLSEG;

MOVWFR5;

BCFFLAG,6;

GOTO$+5;

MOVLW.12;ПРОЧЕРК НИЖНИЙ.

CALLSEG;

MOVWFR5;

BSFFLAG,6;

MOVFWML;

CALLSEG;

MOVWFR3;

MOVFWMH;

CALLSEG;

MOVWFR4;

MOVFWHL;

CALLSEG;

MOVWFR6;

MOVFWHH;

CALLSEG;

MOVWFR7;

BSFFLAG,1;ВКЛЮЧИМ РЕЖИМ ЧАСОВ.

CLRFZPT;

RETURN;

INDT

BTFSSPORTA,KY;ЕСЛИ КНОПКА НАЖАТА,

CALLT00;ТО ИДЕМ ОБНУЛЯТЬ ТАЙМЕР.

MOVFWTCL;ЗАПОЛНИМ РЕГИСТРЫ ИНДИКАЦИИ

CALLSEG;МИНУТ И СЕКУНД ПРАВЫХ ЧАСОВ.

MOVWFR1;

MOVFWTCH;

CALLSEG;

MOVWFR2;

MOVFWTML;

CALLSEG;

MOVWFR4;

MOVFWTMH;

CALLSEG;

MOVWFR5;

MOVLW.11;ПРОЧЕРК.

CALLSEG;

MOVWFR3;

MOVWFR6;

MOVFWTHL;

CALLSEG;

MOVWFR7;

MOVFWTHH;

CALLSEG;

MOVWFR8;

BCFFLAG,1;РЕЖИМ ЧАСЫ ВЫКЛЮЧЕН.

BCFFLAG,7;НЕТ УСТАНОВКИ.

RETURN;

INDU

MOVLW.10;ПУСТО.

CALLSEG;ЗАПОЛНИМ РЕГИСТРЫ ИНДИКАЦИИ.

MOVWFR1;

MOVWFR2;

MOVWFR3;

MOVWFR7;

MOVWFR8;

MOVFW COI;

CALLSEG;

MOVWFR6;

MOVFW DEI;

CALLSEG;

MOVWFR5;

MOVFW EDI;

CALLSEG;

MOVWFR4;

BSFZPT,4;

RETURN;

;===================================================

; 20. РАСПРЕДЕЛИТЕЛЬ.

;===================================================

PAC

BTFSSFLAG1,1;ЖДЕМ 1 СЕКУНДУ.

GOTO$-1;

CALLADP;

CALLKHOP;НА ПРОВЕРКУ КНОПОК.

CALLIND;НА ИНДИКАЦИЮ.

BCFFLAG1,1;

GOTOPAC;ПОВТОРИМ.

;=====================================================

; 21. УСТАНОВКА ВРЕМЕНИ.

;=====================================================

YC0

INCFML,1;УВЕЛИЧИМ ЕДИНИЦЫ МИНУТ.

MOVLW.10;НЕ БОЛЕЕ 9.

SUBWFML,0;

SKPNC;ЕСЛИ БОЛЬШЕ ИЛИ РАВНО 10,

CLRFML;ТО ОБНУЛИМ.

RETURN

YC1

INCFMH,1;УВЕЛИЧИМ ДЕСЯТКИ МИНУТ.

MOVLW.6;НЕ БОЛЕЕ 5.

SUBWFMH,0;

SKPNC;ЕСЛИ БОЛЬШЕ ИЛИ РАВНО 6,

CLRFMH;ТО ОБНУЛИМ.

RETURN

YC2

INCFHL,1;УВЕЛИЧИМ ЕДИНИЦЫ ЧАСОВ.

MOVLW.10;НЕ БОЛЕЕ 9.

SUBWFHL,0;

SKPNC;

CLRFHL;ЕСЛИ БОЛЬШЕ, ТО ОБНУЛИМ.

MOVFWHH;ПЕРЕКОДИРУЕМ В ДВОИЧНЫЙ

CALLDEBIN;КОД ДЕСЯТКИ.

ADDWFHL,0;ПРИБАВИМ ЕДИНИЦЫ

MOVWFHOU;ДВОИЧНОЕ ЗНАЧЕНИЕ НЕ ДОЛЖНО

ADDLW-18H;ПРЕВЫШАТЬ - 24.

SKPC;ЕСЛИ БОЛЬШЕ ИЛИ РАВНО 24,

RETURN

CLRFHOU;ТО ОБНУЛИМ ЧАСЫ ДВОИЧНЫЕ

CLRFHL;И РАЗРЯДЫ СТАРШИЙ

CLRFHH;И МЛАДШИЙ.

RETURN

YC3

INCFHH,1;УВЕЛИЧИМ ДЕСЯТКИ ЧАСОВ.

MOVLW.3;НЕ БОЛЕЕ 2.

SUBWFHH,0;

SKPNC;

CLRFHH;ЕСЛИ БОЛЬШЕ, ТО ОБНУЛИМ.

MOVFWHH;ПЕРЕКОДИРУЕМ В ДВОИЧНЫЙ

CALLDEBIN;КОД ДЕСЯТКИ.

ADDWFHL,0;ПРИБАВИМ ЕДИНИЦЫ

MOVWFHOU;И ПОЛУЧИМ ДВОИЧНОЕ ЧИСЛО.

ADDLW-18H;

SKPC;ЕСЛИ БОЛЬШЕ ИЛИ РАВНО 24,

RETURN

CLRFHOU;ТО ОБНУЛИМ ЧАСЫ ДВОИЧНЫЕ

CLRFHL;И РАЗРЯДЫ СТАРШИЙ

CLRFHH;И МЛАДШИЙ.

RETURN;ВЕРНЕМСЯ.

YCE

CLRFCL;ОБНУЛЕНИЕ.

CLRFCH;

CLRFML;

RETURN;

;=====================================================

END

;=====================================================

Характеристики

Тип файла
Документ
Размер
16,34 Mb
Тип материала
Учебное заведение
Неизвестно

Список файлов курсовой работы

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6418
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее