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




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

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

          jne stm4                         ;если не готово / повторить

stm5: pop psw                        ;выход из подпрограммы

          ret

stm6: call prErr                       ;если ошибка, печать

          jmp stm1                       ;перейти в начало

;подпрограмма чтения температуры

;выходные параметры – температура в bufLAN - младший байт, в bufLAN+1 - старший байт

rdtmp:        push psw

          mov psw, #bank2          ;выбор банка 2 памяти

          call resLAN                    ;вызов процедуры сброса

          cjne a, #0, rtm2              ;если ошибка

          mov a, #0CCH                         ;пропуск ПЗУ

          call wr8LAN

          mov a, #0BEH                        ;выдать команду

          call wr8LAN

          call rd8LAN                            ;чтение младшего байта

          mov bufLAN, a              ;запись в буфер

          call rd8LAN                            ;чтение старшего байта

          mov bufLAN+1, a                   ;запись в буфер

          pop psw                        ;завершение программы

          ret

rtm2: call prErr                       ;если ошибка, вывести на экран

          jmp rtm1                        ;перейти в начало

;подпрограмма формирования сигнала начального сброса

resLAN:clr P1.1                      ;закорачиваем линию

          mov LoopCnt, #100                ;задержка 700 мкс

rst1:  call Delay

          djnz LoopCnt, rst1

          setb P1.1                        ;отпускаем линию

          mov LoopCnt, #9          ;задержка 65 мкс

rst2:  call Delay

          djnz LoopCnt, rst2

          jnb P1.1, rst3                           ;проверка сигнала присутствия

          mov a, #1                       ;код ошибки «нет датчика»

          ret

rst3:  mov LoopCnt, #71                  ;задержка 500 мкс

rst4:  call Delay

          djnz LoopCnt, rst4

          jb P1.1, rst5                             ;если на линии 1 переход

          mov a, #2                       ;код ошибки «КЗ в линии»

          ret

rst5:  mov a, #0                       ;код нормального завершения

          ret

;подпрограмма чтения слота (через признак переноса)

mrslot:        clr P1.1                          ;закоротить линию

          nop

          setb P1.1                        ;отпустить линию

          call Delay                       ;задержка 13 мкс

          call Delay

          nop

          nop

          nop

          mov C, P1.1                            ;прочитать и сохранить бит

          mov LoopCnt, #8          ;задержка 60 мкс

msl1: call Delay

          djnz LoopCnt, msl1

          ret

;подпрограмма записи 0 в слот

mwlow:       clr P1.1                 ;закоротить линию

          mov LoopCnt, #11                  ;задержка 80 мкс

mwl1:         call Delay

          djnz LoopCnt, mwl1

          setb P1.1                        ;отпустить линию

          ret

;подпрограмма записи 1 в слот

mwhi:         clr P1.1                          ;закоротить линию

          call Delay                       ;задержка 5 мкс

          setb P1.1                        ;отпустить линию

          mov LoopCnt, #11                  ;задержка 75 мкс

mwh1:        call Delay

          djnz LoopCnt, mwh1

          ret

;процедура задержки 5 мкс (при тактовой частоте 12МГц)

Delay:         nop

          ret

;программа записи байта через аккумулятор

wr8LAN:

mov R1, #8                    ;инициализация счетчика разрядов

wb1:  rrc A                              ;младший бит в C

          jc wb2                                      ;если текущий бит = 0

          call mwlow                    ;запись 0 в слот

          jmp wb3

wb2:  call mwhi                       ;запись 1 в слот

wb3:  djnz R1, wb1                           ;продолжать, если не последний

          ret

;подпрограмма записи бита, который передается через С

wr1LAN:

jc wb4                                      ;если бит = 0

          call mwlow                    ;запись 0 в слот

          jmp wb5

wb4:  call mwhi                       ;запись 1 в слот

wb5: 

          ret

;подпрограмма чтения байта

rd8LAN:

mov R1, #8                    ;счетчик количества битов

rb1:   call mrslot                      ;чтение очередного бита

          rrc A                              ;сдвиг битов младшим разрядом вперед

          djnz R1, rb1                            ;продолжать, если не последний

          ret

;подпрограмма чтения бита

rd1LAN:

call mrslot

          ret

;вывод Тпм наЖКИ №2

prtmp:        mov a, #16                     ;вывод пробела

          call prch2

          mov a, bufLAN+1                   ;считываем старший байт

          swap a                                     ;обмен тетрад

          anl a, #0F0H                           ;получили старший полубайт

          mov R5, a                      ;временно записываем в R5

          mov a, bufLAN              ;считываем младший байт

          swap a                                     ;обмен тетрад

          anl a, #0FH                    ;получили младший полубайт

          add a, R5                       ;складываем полубайты

          mov b, #10                    ;деление на 10

          div ab

          call prch2                       ;вывод десятков

          mov a, b                         ;берем остаток от деления

call prch2                       ;вывод единиц

mov a, #17                     ;вывод символа «градус»

call prch2

mov a, #0CH                           ;вывод буквы «С»(Цельсия)

call prch2

ret

;подпрограмма режима охлаждения

reoh:  clr P0.2                          ;выкл. Нагревательный элемент

          setb P0.4                        ;вкл. компрессор

          setb P0.3                        ;вкл. вентелятор

          call zader

          jz re4                              ;переход при нажатой клавише

          ret

re4:    clr P0.4                          ;выкл. компрессор

          clr P0.3                          ;выкл. вентелятор

          call zader

          jz re3                              ;переход при нажатой клавише

          ret

re3:    mov a, bufLAN+1

          swap a

          anl a, #0F0H

          mov R5, a

          mov a, bufLAN

          swap a

          anl a, #0FH

          add a, R5                       ;в аккумуляторе байт Тпм

          mov b, bufLAN2

          mov b, #b-2

          mov a, #LE(a, b)            ;сравнение Тпм<=Туст-2

          cjne a, #0FFFFH, re1              ;переход, если не истина

          inc bufLAN3                           ;счетчик циклов режима увеличить на 1

          mov a, #GT(bufLAN3, 2)

          cjne a, #0FFFFH, re2              ;сравнение «счетчик циклов>=2»

          mov bufLAN3, #0                   ;обнуление счетчика

          mov a, #4                       ;в режим обогрева

          ret

re1:    mov bufLAN3, #0                   ;обнуление счетчика

re2:    mov a, #5                       ;режим охлаждения

          ret

;конец программы

          end


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

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