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




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

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

          call ecur1

          call prtmu                      ;Туст на ЖКИ №1

          call eclr2

          mov a, #2

          call ecur2

          call sttmp                       ;запуск преобразования Тпм

          call rdtmp                      ;чтение Тпм

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

          mov a, bufLAN+1                   ;записьТпм в аккумулятор

          swap a

          anl a, #0F0H

          mov R5, a

          mov a, bufLAN

          swap a

          anl a, #0FH

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

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

          mov bufLAN3, #0                   ;обнуление счетчика циклов работы кондиционера

          cjne a, #0FFFFH, in5              ;обработкаусловия Тпм<=Туст

in4:    call reob

          jmp in6

in5:    call reoh

in6:    mov b, a

          mov a, EQ(b, #1)

          cjne a, #0FFFFH, in7

          jmp in1

in7:    mov a, EQ(b, #4)

          cjne a, #0FFFFH, in5

          jmp in4

;Подпрограмма ввода с клавиатуры (0 бит аккумулятора – за S2, 1 бит – за S1)

inkl:   setb P0.0                        ;установка 1 на линиях клавиатуры

          setb P0.1

mov a, P0                      ;считывание порта p0

anl a, #00000011B                  ;обнуление лишних разрядов

xrl a, #00000011B                  ;инвертирование

ret

;подпрограмма сброса ЖКИ №1

eres1: mov P2, #0FH                         ;засылаем адрес регистра блокировки

setb P2.4

clr P2.4

mov P2, #01000001B             ;записываем код снятия блокировки

setb P2.4

clr P2.4

mov P2, #0                    ;устанавливаем адрес на первый разряд

setb P2.4

clr P2.4

ret

; подпрограмма сброса ЖКИ №2

eres2: mov P3, #0FH

setb P3.4

clr P3.4

mov p3, #01000001B

setb P3.4

clr P3.4

mov P3, #0

setb P3.4

clr P3.4

ret

;подпрограмма очистки ЖКИ №1

eclr1: call eres1                        ;сброс экрана

mov P2, #01000000B             ;установка управляющего кода

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

c11:   set P2.4                          ;импульс записи

clr P2.4

          djnz R0, c11                            ;оператор цикла

          ret

; подпрограмма очистки ЖКИ №2

eclr2: call eres2

mov P3, #01000000B

mov R0, #20

c21:   set P3.4

clr P3.4

          djnz R0, c21

          ret

;подпрограмма установки курсора для ЖКИ №1 по аккумулятору

ecur1:          anl a, #0FH                    ;отделяем биты адреса

mov P2, a                      ;устанавливаем адрес на первый разряд

setb P2.4

clr P2.4

ret

; подпрограмма установки курсора для ЖКИ №2 по аккумулятору

ecur2:          anl a, #0FH

mov P3,a

setb P3.4

clr P3.4

ret

;таблица символов

          ORG 0600H

ts:      DB    0EEH                             ;0

          DB    060H                    ;1

          DB    02FH                    ;2

DB    06DH                             ;3

DB    0E1H                    ;4

DB    0CDH                            ;5

DB    0CFH                             ;6

DB    068H                    ;7

DB    0EFH                             ;8

DB    0EDH                            ;9

DB    0EBH                             ;A

DB    0C7H                           ;b       

DB    08EH                    ;C

DB    067H                    ;d

DB    08FH                    ;E

DB    08BH                             ;F

DB    000H                    ;

DB    0A9H                             ;°

DB    001H                    ;-

DB    003H                    ;r

DB    047H                    ;o

;подпрограмма вывода символа на ЖКИ №1 через аккумулятор

prch1:         push DPL                      ;сохранение регистров в стеке

push DPH

push b

mov DPTR, #ts              ;начало таблицы символов

mov c, acc.7                            ;сохраняем значение точки

clr acc.7                         ;сбрасываем значение бита

movc a, @a+DPTR                 ;получаем выводимый код

mov acc.4, c                            ;восстанавливаем значение точки

mov b, a                         ;сохраняем его в b

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

mov P2, a                      ;выводим его на индикатор

setb P2.6                        ;вкл. Режим вывода данных

setb P2.4                        ;импульс записи

clr P2.4

mov a, b                         ;восстанавливаем выводимый код

swap a

anl a, #0FH                    ;отделяем старший полубайт

mov p2, a                       ;выводим его на индикатор

setb p2.6                        ;вкл. Режим вывода данных

setb P2.4                        ;импульс записи

clr P2.4

pop b

pop DPH                       ;восстановление регистров

pop DPL

ret

;подпрограмма вывода символа на ЖКИ №2 через аккумулятор

prch2:         push DPL                      ;сохранение регистров в стеке

push DPH

push b

mov DPTR, #ts              ;начало таблицы символов

mov c, acc.7                            ;сохраняем значение точки

clr acc.7                         ;сбрасываем значение бита

movc a, @a+DPTR                 ;получаем выводимый код

mov acc.4, c                            ;восстанавливаем значение точки

mov b, a                         ;сохраняем его в b

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

mov P3, a                      ;выводим его на индикатор

setb P3.6                        ;вкл. Режим вывода данных

setb P3.4                        ;импульс записи

clr P3.4

mov a, b                         ;восстанавливаем выводимый код

swap a

anl a, #0FH                    ;отделяем старший полубайт

mov P3, a                      ;выводим его на индикатор

setb P3.6                        ;вкл. Режим вывода данных

setb P3.4                        ;импульс записи

clr P3.4

pop b

pop DPH                       ;восстановление регистров

pop DPL

ret

;подпрограмма вывода сообщения на ЖКИ №2

prstr2:        push psw                       ;сохранение регистра psw

          mov psw, #bank3          ;включаем банк 3

ps1:   mov a, #0

          movc a, @a+DPTR                 ;получение очередного символа

          cjne a, #0, ps2                         ;если это не последний выводим

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

ret

ps2:   call prch2                       ;вывод символа на экран

          inc DPTR                       ;увеличиваем значение указателя

jmp ps1

;подпрограмма вывода сообщения об ошибке

prErr:         push acc

          call eclr2                        ;очистка экрана

          mov a, #2                       ;курсор в позицию 2

          call ecur2

          mov DPTR, #serr          ;вывести надпись «Error»

          call prst2

          pop acc

          call prch2                       ;вывод номера ошибки

          ret

;сообщение «Error»

          ORG 0680H

Serr:  DB    14, 19, 19, 20, 19, 0      ;сообщение «Error», 0 в конце – признак окончания слова

;подпрограмма вывода Туст на ЖКИ №1

prtmu:        mov a, #16

          call prch1

          mov a, bufLAN2

          mov b, #10

          div ab

          call prch1

          mov a, b

          call prch1

          mov a, #17

          call prch

mov a, #0CH

call prch1

ret

;подпрограмма с длительностью выполнения примерно 3 мин. опроса клавиатуры и вывода Тпм

zader:          mov R2, #7

za1:   mov R1, #255

za2:   mov R0, #56;

za3:   mov LoopCnt, #255

za4:   call Delay

          djnz LoopCnt, za4

djnz R0, za3

call inkl                          ;опрос клавиатуры

jnz za5                                     ;переход при нажатии

call eclr2                        ;вывод Тпм

mov a, #2

call ecur2

call sttmp

call rdtmp

call prtmp

djnz R1, za2

djnz R2, za1

mov a, #0

ret

za5:   mov a, #1

          ret

;подпрограмма запуска процесса измерения температуры

sttmp:         push psw

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

stm1: call resLAN                    ;сброс

          cjne a, #0, stm6              ;если ошибка переход

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

          call wr8LAN

          mov a, #44H                           ;запуск преобразования

call wr8LAN

stm4: call rd1LAN                            ;запрос об окончании преобразования

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

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