Вот краткое описание команд управления:
· CLOCK - вход в режим установки текущего времени
· ALARM - вход в режим установки времени будильника
· ALARM DISABLE - выключение будильника
· TIMER - включение индикации значения таймера
· TIMER CLEAR - очистка таймера
· LIST - включение циклической смены параметров
· LOCK - запрещение смены параметров
· 0..9 - кнопки для ввода числовых значений параметров
· ENTER - ввод отредактированного параметра
· ESCAPE - отказ от редактирования параметра
· BACKSPACE - возврат на один символ при редактировании
В качестве ИК приемника использована интегральная микросхема SFH-506 фирмы Siemens. Эта микросхема весьма чувствительна к помехам по цепи питания, поэтому применен RC фильтр R15 C7.
В случае срабатывания будильника, превышения температурой установленного порога или понижения напряжения в бортовой сети формируется звуковой сигнал. Для его формирования использована малогабаритная динамическая головка HA1, которая подключена через транзисторный ключ VT1. Звуковые сигналы также формируются при нажатиях на кнопки управления.
Рис. 9. Принципиальная схема в Accel EDA.
Заключение
В данном курсовом проекте разработано устройство - электронные часы-вольтметр-термометр. Разработана схема электрическая принципиальная этого устройства и программа для микроконтроллера. В результате ассеблирования получена прошивка программы для памяти микроконтроллера. Применение микроконтроллера позволило упростить принципиальную схему и расширить функциональные возможности микроконтроллера, так как для изменения функций устройства достаточно внести изменения в программу микроконтроллера.
Список литературы
1. Белов А.В. Микроконтроллеры АVR в радиолюбительской практике - СП-б, Наука и техника, 2007 - 352с.
2. Проектирование цифровых устройств на однокристальных микроконтроллерах / В.В. Сташин [ и др.]. - М.: Энергоатомиздат, 1990. - 224 с.
3. Евстифеев А.В. Микроконтроллеры Microchip: практическое руководство/А.В.Евстифеев. - М.: Горячая линия - Телеком, 2002. - 296 с.
4. Кравченко А.В. 10 практических устройств на AVR-микро-контроллерах. Книга 1 - М., Додэка -ХХ1, МК-Пресс, 2008 - 224с.
5.Трамперт В. Измерение, управление и регулирование с помощью АVR-микроконтроллеров: Пер. с нем - К., МК-Пресс, 2006 - 208с.
6. Мортон Дж. Микроконтроллеры АVR. Вводный курс /Пер. с англ. - М., Додэка -ХХ1, 2006 - 272с.
7.Техническая документация на микроконтроллеры AT89C2051 фирмы «Atmel». ООО «Микро -Чип», Москва, 2002.-184 с.
Приложение А
Листинг программы и объектный файл
; ЧАСЫ-ТЕРМОМЕТР-ВОЛЬТМЕТР ДЛЯ АВТОМОБИЛЯ.
РАЗРАБОТАЛ ДЕРКАЧ
; ПРОГРАММА = ABTO.ASM
; ВЕРСИЯ: 20-01-07.
; АССЕМБЛЕР И ОТЛАДЧИК: MPLAB IDE, ВЕРСИЯ: 5.70.40.
LISTP=16F676
#INCLUDE P16F676.INC
__CONFIG 31D0H
;==============================================
; ИСПОЛЬЗУЕТСЯ КВАРЦ ЧАСТОТОЙ 32768 ГЦ.
; КОЭФФИЦИЕНТ ДЕЛЕНИЯ ПРЕДДЕЛИТЕЛЯ РАВЕН 32, ЧТО ВМЕСТЕ
; С TMR0 (256) И ЦИКЛОМ, РАВНЫМ 4 ТАКТАМ
; ДАЕТ НА ВЫХОДЕ 1 СЕКУНДУ (4х32х256=32768).
; RA1 - РЕЖИМ - УСТАНОВКА, RA2 - РАЗРЯД - ПУСК,
; RA3 - ВЫХОД ИЗЛУЧАТЕЛЯ,
; RC5 - LOAD, RC3 - DIN,
; RC4 - DCLK
;===========================================
CBLOCK H'20'
; ОПРЕДЕЛЕНИЕ РЕГИСТРОВ ВРЕМЕНИ.
HOU;ЧАСЫ ДВОИЧНЫЕ.
CL;ЕДИНИЦЫ СЕКУНД ЧАСОВ.
CH;ДЕСЯТКИ СЕКУНД.
ML;ЕДИНИЦЫ МИНУТ.
MH;ДЕСЯТКИ МИНУТ.
HL;ЕДИНИЦЫ ЧАСОВ.
HH;ДЕСЯТКИ ЧАСОВ.
TCL;ДЛЯ ТАЙМЕРА.
TCH;
TML;
TMH;
THL;
THH;
;===============================================
; РЕГИСТРЫ ДЛЯ ОРГАНИЗАЦИИ ИНДИКАЦИИ.
ZPT;РЕГИСТР ЗАПЯТОЙ.
TZPT;ЗАПЯТАЯ ДЛЯ ВЫВОДА НА ИНДИКАЦИЮ.
COUZ;СЧЕТЧИК ВЫВОДА ЗАПЯТЫХ.
COU;СЧЕТЧИК ВЫВОДА БИТ.
KYPC;ВЫБОР РАЗРЯДА УСТАНОВКИ.
KYPCI;ИНДИКАЦИИ.
PEID;РЕЖИМА ИНДИКАЦИИ.
TEMP;ВРЕМЕННЫЙ.
EDI ;ДЕСЯТЫЕ НАПРЯЖЕНИЯ.
DEI ;ЕДИНИЦЫ ВОЛЬТ.
COI ;ДЕСЯТКИ ВОЛЬТ.
;================================================
; ВРЕМЕННЫЕ.
WTEMP;БАЙТ СОХРАНЕНИЯ РЕГИСТРА W ПРИ ПРЕРЫВАНИИ.
STEMP;БАЙТ СОХРАНЕНИЯ РЕГИСТРА STATUS ПРИ ПРЕРЫВАНИИ.
FTEMP;ВРЕМЕННЫЙ ДЛЯ FSR.
TEKH;
EDA;
DEA;
YCTL;
YCTLI;
; ОПРЕДЕЛЕНИЕ БИТОВ СОСТОЯНИЯ ФЛАГОВ.
FLAG
;
;0-> ВКЛЮЧЕНИЕ СИГНАЛА.
;1-> ТЕКУЩЕЕ ВРЕМЯ.
;2-> ВКЛЮЧЕН РЕЖИМ ТАЙМЕРА.
;3-> ИНДИКАЦИЯ НАПРЯЖЕНИЯ.
;4-> НЕТ КУРСОРА.
;5-> ПУСК-СТОП.
;6-> ПРОЧЕРК В ЧАСАХ.
;7-> УСТАНОВКИ.
;=============================================
FLAG1
;1-> 1 СЕК ЦИКЛА.
;2-> ПЕРЕДАНА ЗАПЯТАЯ.
;4-> ЗУММЕР ВКЛЮЧЕН.
;5-> СТОРОЖОК НАПОМИНИНИЯ АВАРИИ ЧЕРЕЗ 1 ЧАС.
ENDC
; ОПРЕДЕЛЕНИЕ РЕГИСТРОВ ИНДИКАЦИИ.
R1EQU50H;МЛАДШИЙ РАЗРЯД.
R2EQU51H;
R3EQU52H;
R4EQU53H;
R5EQU54H;
R6EQU55H;
R7EQU56H;
R8EQU57H;СТАРШИЙ РАЗРЯД.
TEKLEQU58H;
; ОПРЕДЕЛЕНИЕ БИТ ПОРТОВ ВВОДА/ВЫВОДА.
YCEQU1;РЕЖИМ/УСТАНОВКА.
KYEQU2;ПУСК/КУРСОР.
LOADEQU5;ЗАГРУЗКА.
DINEQU3;ДАННЫЕ.
DCLKEQU4;СИНХРОИМПУЛЬСЫ.
; 1. ПУСК.
ORG0
GOTOINIT
ORG4
GOTOPRER
; 2. ИНИЦИАЛИЗАЦИЯ.
INIT
BSFSTATUS,5;ПЕРЕХОДИМ В БАНК 1.
MOVLW0FFH;
MOVWFADCON1^80H ;ТАКТ АЦП ОТ ВНУТРЕННЕГО ГЕНЕРАТОРА 500 кГц.
MOVLWB'00000100';К=32.
MOVWFOPTION_REG^80H ;РЕЗИСТОРЫ ВКЛЮЧЕНЫ.
MOVLWB'10100000' ;РАЗРЕШЕНИЕ ПРЕРЫВАНИЙ ОТ TMR0.
MOVWFINTCON ;
CLRFPIE1^80H ;ЗАПРЕЩЕНЫ ВСЕ ПЕРИФЕРИЙНЫЕ ПРЕРЫВАНИЯ.
MOVLWB'00001111' ;ВСЕ ВЫХОДЫ. 0 - ВХОД АЦП.
MOVWFTRISA^80H ;
CLRFTRISC^80H ;ВСЕ ВЫХОДЫ.
CLRFVRCON^80H ;ИОН ОТКЛЮЧЕН.
CLRFPCON^80H ;ПРЕРЫВАНИЯ ПО ПИТАНИЮ ЗАПРЕЩЕНЫ.
MOVLWB'00000110' ;
MOVWFWPUA^80H ;ПОДТЯГИВАЮЩИЕ РЕЗИСТОРЫ ВКЛЮЧЕНЫ.
CLRFIOCA^80H ;ПРЕРЫВАНИЯ ЗАПРЕЩЕНЫ.
MOVLW.1
MOVWFANSEL^80H ;ВЫБРАН АНАЛОГОВЫЙ ВХОД RA0/AN0.
BCFSTATUS,5 ;ПЕРЕХОДИМ В БАНК 0.
CLRFPORTC ;ВЫХОД И СВЕТОДИОД ВЫКЛЮЧЕНЫ.
CLRFT1CON ;ТАЙМЕР 1 ОТКЛЮЧЕН.
MOVLW.7
MOVWFCMCON ;КОМПАРАТОР ВЫКЛЮЧЕН.
CLRFFLAG ;ВСЕ ОБНУЛЯЕМ И УСТАНАВЛИВАЕМ.
CLRFFLAG1
CLRFEDI
CLRFDEI
CLRFCOI
CLRFCL
CLRFCH
CLRFML
CLRFMH
CLRFHL
CLRFHH
CLRFTCL
CLRFTCH
CLRFTML
CLRFTMH
CLRFTHL
CLRFTHH
CLRFPEID
CLRFZPT
CLRFCOUZ
CLRFCOU
CLRFHOU
MOVLW96H
MOVWFYCTL;УСТАНОВКА МАКСИМУМА = 15,0 B.
MOVLW78H
MOVWFYCTLI;УСТАНОВКА МИНИМУМА = 12,0 B.
CLRFKYPC
BSFFLAG,4
GOTOPAC
;==========================================
; 3. ТАБЛИЦА СЕГМЕНТОВ.
SEG
;D E G F A B C K
ADDWFPCL,1;
RETLWB'11011110';0
RETLWB'00000110';1
RETLWB'11101100';2
RETLWB'10101110';3
RETLWB'00110110';4
RETLWB'10111010';5
RETLWB'11111010';6
RETLWB'00001110';7
RETLWB'11111110';8
RETLWB'10111110';9
RETLWB'00000000';10-> ПУСТО.
RETLWB'00100000';11-> ПРОЧЕРК.
RETLWB'10000000';12-> ПРОЧЕРК.
;=================================================
; 4. ТАБЛИЦА ПЕРЕКОДИРОВКИ КУРСОРА.
KYPCY
MOVFWKYPC;
RETURN;НЕТ КУРСОРА.
RETLWB'00000100';3
RETLWB'00001000';4
RETLWB'00010000';5
RETLWB'00100000';6
RETLWB'01000000';7
;===================================================
; 5. ВЫБОР РЕЖИМА ИНДИКАЦИИ.
VUBOR
MOVFWPEID;ИЗМЕНЯЕМ РЕЖИМ ИНДИКАЦИИ.
GOTOINDH;ИНДИКАЦИЯ ЧАСОВ.
GOTOINDT;ТАЙМЕРА.
GOTOINDU;НАПРЯЖЕНИЯ.
;======================================================
; 6. ВЫБОР РАЗРЯДА УСТАНОВКИ.
YCT
BTFSCPORTA,YC;ЕСЛИ КНОПКА "РЕЖИМ" НАЖАТА,
RETURN
MOVFWKYPC;ТО ПО КУРСОРУ
ADDWFPCL,1;ВЫБИРАЕМ РАЗРЯД УСТАНОВКИ.
GOTOYC0;МИНУТЫ.
GOTOYC1;ДЕСЯТКИ МИНУТ.
GOTOYCE;ОБНУЛЕНИЕ.
GOTOYC2;ЧАСЫ.
GOTOYC3;ДЕСЯТКИ ЧАСОВ.
;=====================================================
; 7. ТАБЛИЦЫ ПЕРЕВОДА ДЕСЯТКОВ В ДВОИЧНОЕ ЧИСЛО.
DEBIN
RETLW.0
RETLW.10
RETLW.20
RETLW.30
RETLW.40
RETLW.50
RETLW.60
RETLW.70
RETLW.80
RETLW.90
; 8. ПРОВЕРКА НАЖАТЫХ КНОПОК УСТАНОВКИ.
KHOP
BTFSSFLAG,1;ЕСЛИ НЕТ РЕЖИМА ЧАСОВ,
GOTO$+5;ТО КУРСОР НЕ МЕНЯЕТСЯ.
BTFSSPORTA,KY;ПРИ НАЖАТОЙ КНОПКЕ
CALLKYPCOP;ИДЕМ НА УСТАНОВКУ КУРСОРА.
BTFSCFLAG,7;ЕСЛИ ИДЕТ УСТАНОВКА,
GOTOVUBOR;ТО РЕЖИМ НЕ МЕНЯЕТСЯ.
GOTOVUBOR;ИЛИ ИДЕМ НА ВЫБОР РЕЖИМА ИНДИКАЦИИ.
INCFPEID,1;ИЗМЕНЕНИЕ РЕЖИМА ИНДИКАЦИИ.
MOVLW.3;3 РЕЖИМОВ ИНДИКАЦИИ.
SUBWFPEID,0;ЕСЛИ БОЛЬШЕ,
BTFSSSTATUS,2;ТО ПОЙДЕМ НА СБРОС.
GOTOVUBOR;НА ЗАПИСЬ В РЕГИСТРЫ ИНДИКАЦИИ.
CLRFPEID;СБРОС РЕЖИМА.
Страницы: 1, 2, 3, 4