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




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

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

 DECFSZ TEMP,1

 GOTO PLUS

DECFSZCOUN,1

GOTOSPLU

GOTOPRIEM2;НА ПРИЕМ ТЕМПЕРАТУРЫ.

HYL2

CALLWUX2;ВЫХОД НУЛЯ.

MOVLW.125;НУЛЕВОЙ ИМПУЛЬС

ADDLW-1;= 500 МКС.

BTFSSSTATUS,2;

GOTO$-2;

CALLWXO2;ВЫХОД ЕДИНИЦЫ.

MOVLW.125;ИМПУЛЬС =

ADDLW-1;500 МКС.

BTFSSSTATUS,2;

GOTO$-2;

RETURN

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

; 11. ИЗМЕНЕНИЕ ВХОДА НА ПРИЕМ/ПЕРЕДАЧУ.

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

WUX2

BCFPORTA,DS2;

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

BCFTRISA^80H,DS2;НА ВЫХОД.

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

RETURN

WXO2

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

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

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

RETURN

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

; 12. ПРИЕМ 16 БИТ ОТ DS2.

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

PRIEM2

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

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

CALLPOSIL2;ПОСЫЛ.

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

CALLPOSIL2;ПОСЫЛ.

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

 CALL PRIE2;НА ПРИЕМ.

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

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

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

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

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

PRIE2

MOVLW.8

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

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

PRI2

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

CALLWXO2;НА ПРИЕМ.

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

CALLX4;8 МКС.

 MOVFWPORTA;ПЕРЕПИШЕМ

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

BTFSSTEMP,DS2;

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

BTFSCTEMP,DS2;

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

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

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

 CALLX4;

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

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

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

 RETURN;ВЕРНЕМСЯ.

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

; 13. ПОСЫЛ КОМАНДЫ В DS2.

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

POSIL2

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

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

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

 MOVWFCOUN;

POSI2

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

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

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

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

POS2

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

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

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

 RETURN;ВОЗВРАТ.

W0_2

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

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

CALL X4;

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

 GOTOPOS2;ПОВТОРИМ.

W1_2

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

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

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

CALLX4;

 GOTOPOS2;ПОВТОРИМ.

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

; 14. ВЫДЕЛЕНИЕ 2.

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

CXET2

BTFSCFLAG1,6;ЗАДЕРЖКА ПРИ ВКЛЮЧЕНИИ ВЫПОЛНЕНА.

GOTO$+3;

BSFFLAG1,6;ЗАДЕРЖКА ПРИ ВКЛЮЧЕНИИ.

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;ПЕРЕКОДИРУЕМ С ОКРУГЛЕНИЕМ.

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

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

MOVWFCOUN;

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

RRFLSBH,1;

RRFLSB,1;

DECFSZCOUN,1;

GOTO$-4;

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

MOVWFSOT2;

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

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

MOVLW.253;МИНУС.

MOVWFSOT2;

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

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

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

MAXZ2

MOVFWSOT2;ЕСЛИ СОХРАНЕННЫЙ

SUBWFSOT2X,0;И ИЗМЕРЕННЫЙ ЗНАКИ РАВНЫ,

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

GOTO$+5;

BTFSSFLAG1,3;ЕСЛИ ЗНАК ПОЛОЖИТЕЛЬНЫЙ,

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

BTFSCFLAG1,3;ЕСЛИ ЗНАК ОТРИЦАТЕЛЬНЫЙ,

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

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

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

MINZ2

MOVFWSOT2;ЕСЛИ СОХРАНЕННЫЙ

SUBWFSOT2N,0;И ИЗМЕРЕННЫЙ ЗНАКИ РАВНЫ,

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

GOTO$+5;

BTFSCFLAG1,3;ЕСЛИ ЗНАК ОТРИЦАТЕЛЬНЫЙ,

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

BTFSSFLAG1,3;ЕСЛИ ЗНАК ПОЛОЖИТЕЛЬНЫЙ,

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

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

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

GOTOBDIN2;НА ЗАПИСЬ ЗНАЧЕНИЙ В РЕГИСТРЫ ИНДИКАЦИИ.

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

; 16. СРАВНЕНИЕ НА MAX 2.

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

COPL2X

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

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

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

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

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

GOTO$+5;

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

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

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

GOTOMINZ2;ЕСЛИ МЕНЬШЕ, ТО ПРОВЕРИМ НА МИНИМУМ.

COXP2X

BTFSSFLAG1,3;-0 НЕТ.

GOTO$+4;

TSTFLSB;

BZMINZ2;

MOVFWSOT2;СОХРАНИМ ЗНАК.

MOVWFSOT2X;

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

MOVWFLSB2X;ЦЕЛЫХ

MOVFWDST2;И ДЕСЯТЫХ.

MOVWFDST2X;

MOVFWMIN;СОХРАНИМ

MOVWFMIN2X;МИНУТЫ

MOVFWHOU;

MOVWFHOU2X;И ЧАСЫ.

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

BSFFLAG2,3;ВО ФЛАГ ХРАНЕНИЯ.

BTFSSFLAG1,3;

BCFFLAG2,3;

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

COMI2X

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

SUBWFLSB,0;РАВНО ИЗМЕРЕННОМУ,

BTFSCSTATUS,2;

GOTO$+3;ТО ПРОВЕРИМ ДЕСЯТЫЕ.

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

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

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

SUBWFDST2,0;ЕСЛИ СОХРАНЕННОЕ МЕНЬШЕ

BTFSCSTATUS,0;ИЛИ РАВНО ИЗМЕРЕННОМУ,

GOTOMINZ2;ТО ПРОВЕРИМ НА МИНИМУМ.

GOTOCOXP2X;ИЛИ СОХРАНИМ.

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

; 17. СРАВНЕНИЕ НА MIN 2.

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

COPL2N

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

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

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

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

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

GOTO$+5;

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

SUBWFDST2,0;

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

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

COXP2N

BTFSSFLAG1,3;-0 НЕТ.

GOTO$+4;

TSTFLSB;

BZBDIN2;

MOVFWSOT2;СОХРАНИМ ЗНАК.

MOVWFSOT2N;

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

MOVWFLSB2N;ЦЕЛЫХ

MOVFWDST2;И ДЕСЯТЫХ.

MOVWFDST2N;

MOVFWMIN;СОХРАНИМ

MOVWFMIN2N;МИНУТЫ

MOVFWHOU;

MOVWFHOU2N;И ЧАСЫ.

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

BSFFLAG2,4;ВО ФЛАГ ХРАНЕНИЯ.

BTFSSFLAG1,3;

BCFFLAG2,4;

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

COMI2N

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

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

BTFSCSTATUS,2;

GOTO$+3;

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

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

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

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

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

GOTOBDIN2;

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

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

; 18. ЗАДЕРЖКА МКС, УМНОЖЕННАЯ НА 4.

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

X4

ADDLW-1;

BTFSSSTATUS,2;

GOTO$-2;

RETURN;

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

; 19. ИНИЦИАЛИЗАЦИЯ DS1.

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

INIDS1

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

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

CALLPOSIL1;ПОШЛЕМ.

MOVLW0x4E;РАЗРЕШАЕМ ЗАПИСЬ УСТАНОВКИ 0,1 ГРАДУСА.

CALLPOSIL1;ПОШЛЕМ.

MOVLW0x7D;ВЕРХНИЙ ПРЕДЕЛ +125. МОЖНО ПОСТАВИТЬ ЛЮБОЕ ЗНАЧЕНИЕ.

CALLPOSIL1;ПОШЛЕМ.

MOVLW0x77;НИЖНИЙ ПРЕДЕЛ -55. ЛЮБОЙ.

CALLPOSIL1;ПОШЛЕМ.

MOVLW0x7F;КОНФИГУРАЦИЯ 11 = 0,1 ГРАДУС.

CALLPOSIL1;ПОШЛЕМ.

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

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

CALLPOSIL1;ПОШЛЕМ.

MOVLW0x44;РАЗРЕШАЕМ ПРЕОБРАЗОВАНИЕ.

CALLPOSIL1;ПОШЛЕМ.

MOVLW.3;ПАУЗА 0,75 СЕК.

MOVWFCOUN;МАКСИМАЛЬНО 750 МС.

SPLU1

 MOVLW .255

 MOVWF TEMP

PLUS1

 MOVLW .255

 ADDLW -1

 BTFSS STATUS,2

 GOTO $-2

 DECFSZ TEMP,1

 GOTO PLUS1

DECFSZCOUN,1

GOTOSPLU1

GOTOPRIEM1;НА ПРИЕМ ТЕМПЕРАТУРЫ.

HYL1

CALLWUX1;ВЫХОД НУЛЯ.

MOVLW.125;НУЛЕВОЙ ИМПУЛЬС

ADDLW-1;= 500 МКС.

BTFSSSTATUS,2;

GOTO$-2;

CALLWXO1;ВЫХОД ЕДИНИЦЫ.

MOVLW.125;ИМПУЛЬС =

ADDLW-1;500 МКС.

BTFSSSTATUS,2;

GOTO$-2;

RETURN

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

; 20. ИЗМЕНЕНИЕ ВХОДА НА ПРИЕМ/ПЕРЕДАЧУ.

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

WUX1

BCFPORTA,DS1;

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

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

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

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

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