Данная подпрограмма проверяет нажатие кнопок «Установка часов», «Установка минут», «+1» и «-1». Если нажата кнопка «+1» или «-1», происходит запуск таймера TMR2 и переход к установке соответствующей величины (температуры, времени включения, времени выключения, текущего времени). Если же обе кнопки отпущены, происходит остановка таймера TMR2. Нажатие кнопок «Установка часов» и «Установка минут» приводит к включению соответствующего режима.
Листинг подпрограммы приведен ниже.
;-_RB ; ОБРАБОТЧИК ПРЕРЫВАНИЙ ПО ВХОДАМ <RB4:RB7> INTCON, RBIF ; СБРОСИТЬ ФЛАГ ПРЕРЫВАНИЯ ПО ВХОДАМ <RB4:RB7> PORTB, 5 ; НАЖАТА КНОПКА «УСТАНОВКА МИНУТ» $+4 FLAG_R, 5 ; ДА - ВКЛЮЧИТЬ РЕЖИМ УСТАНОВКИ МИНУТ FLAG_R, 4 ; ВЫКЛЮЧИТЬ РЕЖИМ УСТАНОВКИ ЧАСОВ $+5 PORTB, 4 ; НАЖАТА КНОПКА «УСТАНОВКА ЧАСОВ» $+3 FLAG_R, 4 ; ДА - ВКЛЮЧИТЬ РЕЖИМ УСТАНОВКИ ЧАСОВ FLAG_R, 5 ; ВЫКЛЮЧИТЬ РЕЖИМ УСТАНОВКИ МИНУТ
PORTB, 6 ; НАЖАТА КНОПКА «+1» $+2 $+3 PORTB, 7 $+3 T2CON, TMR2ON ; ЗАПУСК ТАЙМЕРА TMR2 DOWN_BUTT ; ПЕРЕХОД НА ПРОВЕРКУ СОСТОЯНИЙ КНОПОК T2CON, TMR2ON ; ОСТАНОВКА ТАЙМЕРА TMR2 COUNTER INT_SOURCE ; ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ ПРЕРЫВАНИЙ
;-
Подпрограмма приема / передачи данных через
USART
Данная подпрограмма проверяет данные, записанные в буфер приемника USART, и, если они соответствуют коду запроса чтения EEPROM (константа CONST_COD), читает данные из EEPROM, а затем осуществляет передачу этих данных во внешнее устройство, используя модуль USART.
;-_PRT ; ПОДПРОГРАММА ПРИЕМА/ПЕРЕДАЧИ ДАННЫХ ЧЕРЕЗ USART PIE1, RCIE ; ЗАПРЕТИТЬ ПРЕРЫВАНИЯ ОТ ПРИЕМНИКА USART
;-
; ПРОВЕРКА НА ОТСУТСТВИЕ ОШИБОК КАДРА RCSTA, OERR ; ПРОИЗОШЛА ОШИБКА КАДРА $+3 ; НЕТ - ПЕРЕХОД К ИДЕНТИФИКАЦИИ КОДА ЗАПРОСА
; ПЕРЕДАЧИ ДАННЫХ RCSTA, OERR ; СБРОСИТЬ ФЛАГ ОШИБКИ КАДРА INT_SOURCE ; ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ ПРЕРЫВАНИЙ
;-
; ИДЕНТИФИКАЦИЯ КОДА ЗАПРОСА ПЕРЕДАЧИ ДАННЫХ STATUS, Z RCREG, W ; ЧТЕНИЕ ДАННЫХ ИЗ БУФЕРА ПРИЕМНИКА PIR1, RCIF ; СБРОСИТЬ ФЛАГ ПРЕРЫВАНИЯ ОТ ПРИЕМНИКА USART CONST_COD ; СРАВНИТЬ КОД STATUS, Z ; КОД ВЕРНЫЙ INT_SOURCE ; ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ ПРЕРЫВАНИЙ
;-
; ЧТЕНИЕ ДАННЫХ ИЗ EEPROM И ПЕРЕДАЧА ЧЕРЕЗ USART EEADR ; ОЧИСТИТЬ РЕГИСТР АДРЕСА EECON1, EEPGD; УСТАНОВИТЬ ЧТЕНИЕ ИЗ EEPROM EECON1, RD ; НАЧАТЬ ЧТЕНИЕ EEDATA, W ; ПРОЧИТАТЬ РЕГИСТР ДАННЫХ TXREG ; ПОМЕСТИТЬ СОДЕРЖИМОЕ ТЕКУЩЕЙ ЯЧЕЙКИ ПАМЯТИ
; В БУФЕР ПЕРЕДАТЧИКА TXSTA, TXEN ; РАЗРЕШИТЬ ПЕРЕДАЧУ EEADR, F ; УВЕЛИЧИТЬ НА 1 АДРЕС ТЕКУЩЕЙ ЯЧЕЙКИ ПАМЯТИ
MOVF EEADR, W 0x0A
BTFSC PIR1, TXIF ; ОЖИДАТЬ ОКОНЧАНИЕ ПЕРЕДАЧИ
GOTO $-1 STATUS, Z READ
GOTO INT_SOURCE ; ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ ПРЕРЫВАНИЙ
;-
Самое читаемое:
Локальные системы автоматики
1). Закон регулирования - ПИД; критерий качества регулирования 20%
перерегулирования (=20%).
Рис. 1. Кривая разгона.
Аппроксимация кривой разгона апериодическим звеном первого порядка с
запаздыванием. Определение соотношения наклона угла (0.1 - 0.2).
Рис. 2.
Рассмотрим кривую разгона (рис. 1) с с ...