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

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. В.В.Коляда. Кондиционеры – М.: СОЛОН-Пресс, 2002 – с. 233.

2. А.В.Белов. Конструирование устройств на микроконтроллерах – СПб.: Наука и техника, 2005 – с. 255.

3. www.inrost.ru - научно-техническая библиотека сайта фирмы ИНРОСТ.

4. А.В.Логинов. Программирование микро-ЭВМ семейства МК51: Учеб. Пособие – СПб.: Балт. го

с. тех. ун-т, 1996 – 72с.

5. www.atmel.ru - официальный сайт корпорации Atmel.

ПРИЛОЖЕНИЕ

Приложение 1 ;основная программа

bank0 EQU 00000000B ;коды банков памяти

bank1 EQU 00001000B

bank1 EQU 00010000B

bank2 EQU 00110000B

DSEG

ORG 30H

LoopCnt: DS 1 ;счетчик задержки

bufLAN: DS 8 ;буфер для приема данных из MicroLAN

bufLAN2: DS 8 ;буфер для Туст

bufLAN3: DS 1 ;счетчик рабочих циклов кондиционера

ORG 60H ;начало стека

stack: DS 20H ;глубина стека

main: mov bufLAN2, #18H ;начальное значение Туст=24 градуса Цельсия

call inkl

jz in3 ;если клавиши не нажаты переход

in1: cjne a, #11B, in2 ;если обе клавиши нажаты переход

inc bufLAN ;Туст увеличить на 1

jmp in3

in2: dec bufLAN2

in3: call eclr1 ;вывод Туст

mov a, #2

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

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


Другие рефераты на тему «Коммуникации, связь и радиоэлектроника»:

Поиск рефератов

Последние рефераты раздела

Copyright © 2010-2024 - www.refsru.com - рефераты, курсовые и дипломные работы