рефераты рефераты
Главная страница > Курсовая работа: Разработка микропроцессорной системы цифрового термометра на базе микроконтроллера  
Курсовая работа: Разработка микропроцессорной системы цифрового термометра на базе микроконтроллера
Главная страница
Банковское дело
Безопасность жизнедеятельности
Биология
Биржевое дело
Ботаника и сельское хоз-во
Бухгалтерский учет и аудит
География экономическая география
Геодезия
Геология
Госслужба
Гражданский процесс
Гражданское право
Иностранные языки лингвистика
Искусство
Историческая личность
История
История государства и права
История отечественного государства и права
История политичиских учений
История техники
История экономических учений
Биографии
Биология и химия
Издательское дело и полиграфия
Исторические личности
Краткое содержание произведений
Новейшая история политология
Остальные рефераты
Промышленность производство
психология педагогика
Коммуникации связь цифровые приборы и радиоэлектроника
Краеведение и этнография
Кулинария и продукты питания
Культура и искусство
Литература
Маркетинг реклама и торговля
Математика
Медицина
Реклама
Физика
Финансы
Химия
Экономическая теория
Юриспруденция
Юридическая наука
Компьютерные науки
Финансовые науки
Управленческие науки
Информатика программирование
Экономика
Архитектура
Банковское дело
Биржевое дело
Бухгалтерский учет и аудит
Валютные отношения
География
Кредитование
Инвестиции
Информатика
Кибернетика
Косметология
Наука и техника
Маркетинг
Культура и искусство
Менеджмент
Металлургия
Налогообложение
Предпринимательство
Радиоэлектроника
Страхование
Строительство
Схемотехника
Таможенная система
Сочинения по литературе и русскому языку
Теория организация
Теплотехника
Туризм
Управление
Форма поиска
Авторизация




 
Статистика
рефераты
Последние новости

Курсовая работа: Разработка микропроцессорной системы цифрового термометра на базе микроконтроллера

RETURN

WXO1

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

BSFTRISA^80H,DS1;НА ВХОД.

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

RETURN

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

; 21. ПРИЕМ 16 БИТ ОТ DS1.

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

PRIEM1

CALLHYL1;ПОСЫЛ ИМПУЛЬСА ОБНУЛЕНИЯ.

MOVLW0xCC;ПРОПУСК НОМЕРА.

CALLPOSIL1;ПОСЫЛ.

MOVLW0xBE;ЧТЕНИЕ ТЕМПЕРАТУРЫ ИЗ БЛОКНОТА.

CALLPOSIL1;ПОСЫЛ.

BCFINTCON,7;ЗАПРЕТ ПРЕРЫВАНИЙ.

 CALL PRIE1;НА ПРИЕМ.

MOVFWLSBH;ПЕРЕПИШЕМ ПРИНЯТЫЙ БАЙТ

MOVWFLSB;В МЛАДШИЙ РЕГИСТР.

BCFINTCON,7;ЗАПРЕТ ПРЕРЫВАНИЙ.

CALLPRIE1;И ПРИМЕМ СТАРШИЙ БАЙТ.

GOTOCXET1;НА ПЕРЕСЧЕТ.

PRIE1

MOVLW.8

MOVWFCOUN;ЗАПИШЕМ ЧИСЛО БИТ.

 CLRFLSBH;ОБНУЛИМ РЕГИСТР ПРИЕМА.

PRI1

CALLWUX1;ВЫДАЕМ КОРОТКИЙ НОЛЬ И ЖДЕМ ОТКЛИКА.

CALLWXO1;НА ПРИЕМ.

MOVLW.2;ЗАДЕРЖКА

CALLX4;8 МКС.

 MOVFWPORTA;ПЕРЕПИШЕМ

MOVWFTEMP;ЗНАЧЕНИЕ ПОРТА.

BTFSSTEMP,DS1;

BCFSTATUS,0;УСТАНОВИМ БИТ ПРИЕМА В НОЛЬ.

BTFSCTEMP,DS1;

BSFSTATUS,0;ИЛИ ЕДИНИЦУ.

 RRFLSBH,1;ЗАПИШЕМ В РЕГИСТР.

MOVLW.12;ОБЩАЯ ПАУЗА 60 МКС.

 CALLX4;

 DECFSZCOUN,1;УМЕНЬШИМ СЧЕТЧИК.

 GOTOPRI1;ПОВТОРИМ ПРИЕМ.

BSFINTCON,7;РАЗРЕШАЕМ ПРЕРЫВАНИЯ.

 RETURN;ВЕРНЕМСЯ.

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

; 22. ПОСЫЛ КОМАНДЫ В DS1.

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

POSIL1

BCFINTCON,7;ЗАПРЕТ ПРЕРЫВАНИЙ.

MOVWFTEMP;ПЕРЕПИШЕМ ВО ВРЕМЕННЫЙ.

MOVLW.8;ЗАПИШЕМ ЧИСЛО БИТ.

 MOVWFCOUN;

POSI1

RRFTEMP,1;ВЫТОЛКНЕМ МЛАДШИЙ БИТ.

 BTFSSSTATUS,0;ЕСЛИ ОН НУЛЕВОЙ,

GOTOW0_1;ПОШЛЕМ ИМПУЛЬС НУЛЯ.

GOTOW1_1;ИЛИ ЕДИНИЦЫ.

POS1

DECFSZCOUN,1;УМЕНЬШАЕМ СЧЕТЧИК.

 GOTOPOSI1;НА СЛЕДУЮЩИЙ БИТ.

BSFINTCON,7;РАЗРЕШАЕМ ПРЕРЫВАНИЯ.

 RETURN;ВОЗВРАТ.

W0_1

CALLWUX1;УСТАНОВИМ ВЫХОД В НОЛЬ.

MOVLW.15;УДЕРЖИВАЕМ 60 МКС.

CALL X4;

 CALLWXO1;НА ВХОД = 1 НА ВЫХОДЕ.

 GOTOPOS1;ПОВТОРИМ.

W1_1

CALLWUX1;КОРОТКИЙ НУЛЕВОЙ ИМПУЛЬС.

 CALLWXO1;НА ВХОД = 1 НА ВЫХОДЕ.

 MOVLW.15;УДЕРЖИВАЕМ 60 МКС.

CALLX4;

 GOTOPOS1;ПОВТОРИМ.

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

; 23. ВЫДЕЛЕНИЕ 1.

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

CXET1

BTFSCFLAG1,4;НАЧАЛЬНАЯ ПАУЗА.

GOTO$+3;

BSFFLAG1,4;

RETURN;

BCFFLAG1,3;ПО УМОЛЧАНИЮ ЗНАК ПЛЮС.

BTFSCLSBH,3;ЕСЛИ ИНАЧЕ,

BSFFLAG1,3;ТО УСТАНОВИМ МИНУС.

BTFSSFLAG1,3;ЕСЛИ ЗНАК ПЛЮС,

GOTO$+7;ТО НЕ ИНВЕРТИРУЕМ.

COMFLSB,1;ПРОИНВЕРТИРУЕМ МЛАДШИЙ

COMFLSBH,1;И СТАРШИЙ РЕГИСТРЫ ПРИЕМА.

BCFSTATUS,0;

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

BTFSCSTATUS,0;ЕСЛИ ЕСТЬ ПЕРЕНОС,

INCFLSBH,1;ТО УВЕЛИЧИМ СТАРШИЙ РЕГИСТР.

MOVFWLSB;ВЫДЕЛИМ ДЕСЯТЫЕ.

ANDLWB'00001111';ЗАМАСКИРУЕМ.

CALLDESATI;ПЕРЕКОДИРУЕМ С ОКРУГЛЕНИЕМ.

MOVWFDST1;ЗАПИШЕМ В РЕГИСТР ДЕСЯТЫХ.

MOVLW.4;СДВИГОМ ВПРАВО НА 4 РАЗРЯДА

MOVWFCOUN;

BCFSTATUS,0;ВЫДЕЛИМ ЦЕЛУЮ ЧАСТЬ.

RRFLSBH,1;

RRFLSB,1;

DECFSZCOUN,1;

GOTO$-4;

MOVLW.251;ПО УМОЛЧАНИЮ ЗНАК ПЛЮС.

MOVWFSOT1;

BTFSSFLAG1,3;ЕСЛИ ИНАЧЕ,

GOTO$+3;ТО УСТАНОВИМ

MOVLW.253;МИНУС.

MOVWFSOT1;

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

; 24. ВЫБОР СРАВНЕНИЯ ПО СОХРАНЕННОМУ И ИЗМЕРЕННОМУ ЗНАКАМ 1.

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

MAXZ

MOVFWSOT1;ЕСЛИ ЗНАКИ РАВНЫ,

SUBWFSOT1X,0;

SKPZ;ТО ОПРЕДЕЛИМ ЗНАК.

GOTO$+5;

BTFSSFLAG1,3;ЕСЛИ ЗНАК ПЛЮС,

GOTOCOPL1X;ТО ПРОВЕРЯЕМ НА ПРЕВЫШЕНИЕ.

BTFSCFLAG1,3;ЕСЛИ ЗНАК МИНУС,

GOTOCOMI1X;ТО ПРОВЕРЯЕМ НА УМЕНЬШЕНИЕ.

SKPNC;ЕСЛИ ИЗМЕРЕННЫЙ ЗНАК МЕНЬШЕ (+) СОХРАНЕННОГО,

GOTOCOXPX;ТО СОХРАНИМ ИЗМЕРЕННОЕ ЗНАЧЕНИЕ.

MINZ

MOVFWSOT1;ЕСЛИ ЗНАКИ РАВНЫ,

SUBWFSOT1N,0;

SKPZ;ТО ОПРЕДЕЛИМ ЗНАК.

GOTO$+5;

BTFSCFLAG1,3;ЕСЛИ ЗНАК МИНУС,

GOTOCOPL1N;ТО СРАВНИВАЕМ НА ПРЕВЫШЕНИЕ.

BTFSSFLAG1,3;ЕСЛИ ЗНАК ПЛЮС,

GOTOCOMI1N;ТО СРАВНИВАЕМ НА УМЕНЬШЕНИЕ.

SKPC;ЕСЛИ ИЗМЕРЕННЫЙ ЗНАК БОЛЬШЕ (-) СОХРАНЕННОГО,

GOTOCOXPN;ТО СОХРАНИМ ИЗМЕРЕННОЕ ЗНАЧЕНИЕ.

GOTOBDIN1;НА ПЕРЕКОДИРОВКУ.

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

; 25. СРАВНЕНИЕ НА MAX 1.

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

COPL1X

MOVFWLSB1X;ЕСЛИ СОХРАНЕННОЕ ЗНАЧЕНИЕ

SUBWFLSB,0;БОЛЬШЕ ИЗМЕРЕННОГО,

BTFSSSTATUS,0;ТО СОХРАНЕНИЯ НЕТ.

GOTOMINZ;.

BTFSSSTATUS,2;ЕСЛИ РАВЕНСТВО ЦЕЛЫХ,

GOTO$+5;

MOVFWDST1X;ТО ПРОВЕРИМ ДЕСЯТЫЕ.

SUBWFDST1,0;ЕСЛИ БОЛЬШЕ

BTFSSSTATUS,0;ИЛИ РАВНО, ТО СОХРАНИМ.

GOTOMINZ;ИНАЧЕ ПРОВЕРИМ НА МИНИМУМ.

COXPX

BTFSSFLAG1,3;-0 НЕТ.

GOTO$+4;

TSTFLSB;

BZMINZ;

MOVFWSOT1;СОХРАНИМ МАКСИМАЛЬНОЕ ЗНАЧЕНИЕ.

MOVWFSOT1X;ЗНАК.

MOVFWLSB;СОХРАНИМ НОВОЕ ЗНАЧЕНИЕ

MOVWFLSB1X;ЦЕЛЫХ

MOVFWDST1;И ДЕСЯТЫХ.

MOVWFDST1X;

MOVFWMIN;

MOVWFMIN1X;МИНУТЫ.

MOVFWHOU;

MOVWFHOU1X;ЧАСЫ.

BTFSCFLAG1,3;ПЕРЕПИШЕМ ФЛАГ ЗНАКА

BSFFLAG,0;В ФЛАГ ХРАНЕНИЯ.

BTFSSFLAG1,3;

BCFFLAG,0;

GOTOMINZ;НА ПРОВЕРКУ ПО МИНИМУМУ.

COMI1X

MOVFWLSB1X;ЕСЛИ СОХРАНЕННОЕ ЗНАЧЕНИЕ

SUBWFLSB,0;МЕНЬШЕ ИЗМЕРЕННОГО,

BTFSCSTATUS,2;ТО СОХРАНЕНИЯ НЕТ.

GOTO$+3;

BTFSSSTATUS,0;ЕСЛИ РАВЕНСТВО ЦЕЛЫХ,

GOTOCOXPX;

MOVFWDST1X;ТО ПРОВЕРИМ ДЕСЯТЫЕ.

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

BTFSCSTATUS,0;ИЛИ РАВНО,

GOTOMINZ;СРАВНИМ ПО МИНИМУМУ.

GOTOCOXPX;ИНАЧЕ СОХРАНИМ.

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

; 26. СРАВНЕНИЕ НА MIN 1.

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

COPL1N

MOVFWLSB1N;ЕСЛИ СОХРАНЕННОЕ ЗНАЧЕНИЕ

SUBWFLSB,0;МЕНЬШЕ ИЗМЕРЕННОГО,

BTFSSSTATUS,0;ТО СОХРАНЕНИЯ НЕТ.

GOTOBDIN1;ПЕРЕПИШЕМ.

BTFSSSTATUS,2;ЕСЛИ РАВЕНСТВО ЦЕЛЫХ,

GOTO$+5;

MOVFWDST1N;ТО ПРОВЕРИМ ДЕСЯТЫЕ.

SUBWFDST1,0;ЕСЛИ ИЗМЕРЕННОЕ МЕНЬШЕ

BTFSSSTATUS,0;ИЛИ РАВНО СОХРАНЕННОМУ, ТО СОХРАНИМ.

GOTOBDIN1;НА ПЕРЕКОДИРОВКУ.

COXPN

BTFSSFLAG1,3;-0 НЕТ.

GOTO$+4;

TSTFLSB;

BZBDIN1;

MOVFWSOT1;СОХРАНЕНИЕ МИНИМАЛЬНОГО.

MOVWFSOT1N;ЗНАК.

MOVFWLSB;СОХРАНИМ НОВОЕ ЗНАЧЕНИЕ

MOVWFLSB1N;ЦЕЛЫХ

MOVFWDST1;И ДЕСЯТЫХ.

MOVWFDST1N;

MOVFWMIN;

MOVWFMIN1N;МИНУТЫ.

MOVFWHOU;

MOVWFHOU1N;ЧАСЫ.

BTFSCFLAG1,3;ПЕРЕПИШЕМ ФЛАГ ЗНАКА

BSFFLAG,1;В ФЛАГ ХРАНЕНИЯ.

BTFSSFLAG1,3;

BCFFLAG,1;

GOTOBDIN1;НА ПЕРЕКОДИРОВКУ.

COMI1N

MOVFWLSB1N;ЕСЛИ СОХРАНЕННОЕ ЗНАЧЕНИЕ

SUBWFLSB,0;МЕНЬШЕ ИЗМЕРЕННОГО,

BTFSCSTATUS,2;

GOTO$+3;ТО СОХРАНЕНИЯ НЕТ.

BTFSSSTATUS,0;ЕСЛИ РАВЕНСТВО ЦЕЛЫХ,

GOTOCOXPN;

MOVFWDST1N;ТО ПРОВЕРИМ ДЕСЯТЫЕ.

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

BTFSCSTATUS,0;ИЛИ РАВНО,

GOTOBDIN1;

GOTOCOXPN;ТО СОХРАНИМ.

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

; 27. ПЕРЕКОДИРОВКА 1 ИЗ 2-ГО В 2_10.

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

BDIN1

CALLPERZAP;ПЕРЕПИШЕМ ТЕКУЩИЕ ЗНАЧЕНИЯ.

MOVFWLSB;ПЕРЕКОДИРУЕМ

GOTOBZT1;

BDIN2

CALLPERZAP;ПЕРЕПИШЕМ ТЕКУЩИЕ ЗНАЧЕНИЯ.

MOVFWLSB;ПЕРЕКОДИРУЕМ

GOTOBZT2;

PERZAP

MOVFWHOU1X;ТЕКУЩИЕ ЗНАЧЕНИЯ

MOVWFHOUZ1X;В РЕГИСТРЫ ИНДИКАЦИИ.

MOVFWMIN1X

MOVWFMINZ1X

MOVFWHOU1N

MOVWFHOUZ1N

MOVFWMIN1N

MOVWFMINZ1N

MOVFWHOU2X

MOVWFHOUZ2X

MOVFWMIN2X

MOVWFMINZ2X

MOVFWHOU2N

MOVWFHOUZ2N

MOVFWMIN2N

MOVWFMINZ2N

MOVFWLSB1X

MOVWFLSBZ1X

MOVFWDST1X

MOVWFDSTZ1X

MOVFWLSB1N

MOVWFLSBZ1N

MOVFWDST1N

MOVWFDSTZ1N

MOVFWLSB2X

MOVWFLSBZ2X

MOVFWDST2X

MOVWFDSTZ2X

MOVFWLSB2N

MOVWFLSBZ2N

MOVFWDST2N

MOVWFDSTZ2N

RETURN

BDINZ1

BTFSCFLAG1,1;ЕСЛИ ИНДИКАЦИЯ 2 ДАТЧИКА,

GOTOBDINZ2;ТО ИДЕМ НА 2 ДАТЧИК.

MOVFWLSBZ1X;ПО МАКСИМУМУ - 1 СТРОКА 1 ДАТЧИКА.

CALLBZT1;

MOVFWDSTZ1X;

MOVWFDST1;

MOVFWLSBZ1N;ПО МИНИМУМУ - 2 СТРОКА 1 ДАТЧИКА.

CALLBZT2;

MOVFWDSTZ1N;

MOVWFDST2;

MOVFWHOUZ1X;ЧАСЫ МАКСИМУМА 1.

CALLHZ67;

MOVFWMINZ1X;МИНУТЫ МАКСИМУМА 1.

CALLMZ910;

MOVFWSOT1X;ЗНАК.

MOVWFR12;

RETURN;

BDIN12

BTFSCFLAG1,1;ЕСЛИ ИНДИКАЦИЯ 2 СТРОКИ,

GOTOBDIN22;ТО ИДЕМ НА 2 СТРОКУ.

MOVFWHOUZ1N;ПЕРЕЗАПИСЬ 1 ДАТЧИКА 2 СТРОКИ.

CALLHZ67;ЧАСЫ МИНИМУМА 1.

MOVFWMINZ1N;МИНУТЫ МИНИМУМА 1.

CALLMZ910;

MOVFWSOT1N;ЗНАК.

MOVWFR12;

RETURN;

BDIN22

MOVFWHOUZ2N;ПЕРЕЗАПИСЬ 2 ДАТЧИКА 2 СТРОКИ.

CALLHZ67;ЧАСЫ МИНИМУМА 2.

MOVFWMINZ2N;МИНУТЫ МИНИМУМА 2.

CALLMZ910;

MOVFWSOT2N;ЗНАК.

MOVWFR12;

RETURN;

BDINZ2

MOVFWLSBZ2X;ПОДГОТОВКА К ИНДИКАЦИИ 2 ДАТЧИКА.

CALLBZT1;ПО МАКСИМУМУ - 1 СТРОКА.

MOVFWDSTZ2X;

MOVWFDST1;

MOVFWLSBZ2N;

CALLBZT2;ПО МИНИМУМУ - 2 СТРОКА

MOVFWDSTZ2N;

MOVWFDST2;

MOVFWHOUZ2X;ЧАСЫ МАКСИМУМА 2.

CALLHZ67;

MOVFWMINZ2X;МИНУТЫ МАКСИМУМА 2.

CALLMZ910;

MOVFWSOT2X;ЗНАК.

MOVWFR12;

RETURN;ПРОВЕРИМ КНОПКУ.

BZT1

MOVWFTEMP;ИЗ 2-ГО В 2_10-Е.

CALLBIDE;ТОЛЬКО ДО 99!

MOVWFDES1;ТЕМПЕРАТУРА В ПЕРВОЙ СТРОКЕ.

MOVFWTEMP;

MOVWFEDI1;

RETURN;

BZT2

MOVWFTEMP;ИЗ 2-ГО В 2_10-Е.

CALLBIDE;ТОЛЬКО ДО 99!

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12

рефераты
Новости