Автор работы: Пользователь скрыл имя, 10 Сентября 2013 в 16:43, реферат
Мировая промышленность выпускает огромную номенклатуру микроконтроллеров. По области применения их можно разделить на два класса : специализированные, предназначенные для применения в какой-либо одной конкретной области (контроллер для телевизора, контроллер для модема, контроллер для компьютерной мышки ) и универсальные, которые не имеют конкретной специализации и могут применяться в самых различных областях микроэлектроники, с помощью которых можно создать как любое из перечисленных выше устройств, так и принципиально новое устройство.
Цель курсовой работы – основываясь на знаниях, полученных при изучении темы «Микроконтроллеры и микропроцессорные системы» разработать микропроцессорную систему цифрового термометра на базе микроконтроллера.
Введение
1. Описание объекта и функциональная спецификация
2. Описание структуры системы
3. Описание ресурсов МК PIC16F628
3.1 Характеристика RISC ядра
3.2 Особенности микроконтроллеров
3.3 Характеристики пониженного энергопотребления
3.4 Периферия
3.5 Расположение выводов
3.6 Особенности структурной организации PIC 16С84
3.7 Обозначение выводов и их функциональное назначение
3.8 Организация памяти данных (ОЗУ)
4. Разработка алгоритма работы устройства
5. Ассемблирование
6. Описание функциональных узлов МПС и алгоритма их взаимодействия
7. Описание выбора элементной базы и работы принципиальной схемы
8. Работа с устройством
Заключение
Список литературы
DST1X;СОХРАНЕННОЕ
DST1N;СОХРАНЕННОЕ МИНИМАЛЬНОЕ ДЕСЯТЫХ 1 ДАТЧИКА.
DST2X;СОХРАНЕННОЕ
DST2N;СОХРАНЕННОЕ МИНИМАЛЬНОЕ ДЕСЯТЫХ 2 ДАТЧИКА.
ENDC
R1EQU60H;РЕГИСТРЫ ИНДИКАЦИИ.
R2EQU61H;
R3EQU62H;
R4EQU63H;
R5EQU64H;
R6EQU65H;
R7EQU66H;
R8EQU67H;
R9EQU68H;
R10EQU69H;
R11EQU6AH;
R12EQU6BH;
R13EQU6CH;
R14EQU6DH;
R15EQU6EH;
R16EQU6FH;
HOUZ1XEQU70H;РЕГИСТРЫ ДЛЯ ЗАПИСИ/СЧИТЫВАНИЯ, ЧАСЫ ДВОИЧНЫЕ 1 MAX.
MINZ1XEQU71H;МИНУТЫ ДВОИЧНЫЕ 1 MAX.
LSBZ1XEQU72H;СОХРАНЕННОЕ МАКСИ
DSTZ1XEQU73H;СОХРАНЕННОЕ
HOUZ1NEQU74H;ЧАСЫ ДВОИЧНЫЕ 1 MIN.
MINZ1NEQU75H;МИНУТЫ ДВОИЧНЫЕ 1 MIN.
LSBZ1NEQU76H;СОХРАНЕННОЕ
DSTZ1NEQU77H;СОХРАНЕННОЕ
HOUZ2XEQU78H;РЕГИСТРЫ ЗАПИСИ/СЧИТЫВАНИЯ, ЧАСЫ ДВОИЧНЫЕ 2 MAX.
MINZ2XEQU79H;МИНУТЫ ДВОИЧНЫЕ 2 MAX.
LSBZ2XEQU7AH;СОХРАНЕННОЕ
DSTZ2XEQU7BH;СОХРАНЕННОЕ
HOUZ2NEQU7CH;ЧАСЫ ДВОИЧНЫЕ 2 MIN.
MINZ2NEQU7DH;МИНУТЫ ДВОИЧНЫЕ 2 MIN.
LSBZ2NEQU7EH;СОХРАНЕННОЕ
DSTZ2NEQU7FH;СОХРАНЕННОЕ
;=============================
; ОПРЕДЕЛЕНИЕ БИТОВ СОСТОЯНИЯ РЕГИСТРОВ ФЛАГОВ.
;=============================
;FLAG
;0-> ЗНАК 1 МАКС.
;1-> ЗНАК 1 МИН.
;2-> КНОПКИ "УСТАНОВКА -".
;3-> КНОПКИ "УСТАНОВКА +".
;4-> КНОПКИ "РЕЖИМ".
;5-> КНОПКИ "РАЗРЯД".
;6-> ЧЕРЕДОВАНИЯ КУРСОРА И
;7-> ДЕЛИТЕЛЬ НА 2 (1 CEK).
;FLAG1
;0-> УСТАНОВКИ.
;1-> ПРОСМОТРА ТЕМПЕРАТУРЫ: 1>2, 0>1.
;2-> ЗАПРЕТ ИНДИКАЦИИ.
;3-> ЗНАКА. 1-МИНУС.
;4-> НАЧАЛЬНАЯ ПАУЗА 1.
;5-> НОЛЬ, КНОПКИ "ПРОСМОТР 1-2".
;6-> НАЧАЛЬНАЯ ПАУЗА 2.
;FLAG2;ФЛАГ ИНДИКАЦИИ.
;0-> ТЕКУЩИЕ ДАТА, ВРЕМЯ, ТЕМПЕРАТУРА.
;1-> УСТАНОВКА ЧАСОВ, ДАТЫ.
;2-> РЕЖИМ ПРОСМОТРА ТЕМПЕРАТУРЫ.
;3-> ЗНАК 2 МАКС.
;4-> ЗНАК 2 МИН.
;5-> ФЛАГ ВЫПОЛНЕННОЙ УСТАНОВКИ МИНУС.
;6-> УСТАНОВКИ СЧЕТЧИКА ДНЕЙ ПРОСМОТРА.
;=============================
DS2EQU0;ВЫХОД DS2.
DS1EQU4;ВЫХОД DS1.
RSEQU2;КОМАНДА/ДАННЫЕ.
EEQU3;СИНХРОНИЗАЦИЯ.
YCPLEQU6;УСТАНОВКА ПЛЮС.
YCMIEQU5;УСТАНОВКА МИНУС.
PAZEQU1;РАЗРЯД.
PEJEQU0;РЕЖИМ.
HOLEQU5;СБРОС.
;=============================
; 1. ПУСК.
;======================
ORG 0
GOTOINIT
ORG 4
GOTOPRER
;=============================
; 2. ПЕРЕВОД ДОЛЕЙ ГРАДУСА С ОКРУГЛЕНИЕМ.
;=============================
DESATI
ADDWFPCL,1;
RETLW.0;0
RETLW.1;1
RETLW.1;2
RETLW.2;3
RETLW.3;4
RETLW.3;5
RETLW.4;6
RETLW.4;7
RETLW.5;8
RETLW.6;9
RETLW.6;10
RETLW.7;11
RETLW.7;12
RETLW.8;13
RETLW.9;14
RETLW.9;15
;============================
; 3. ЗАГРУЗКА ЧИСЕЛ В МЕСЯЦЕ.
;============================
DAYMON
ADDWF PCL,F ;
NOP ;0
RETLW .32 ;1-ЯНВАРЬ
RETLW .29 ;2-ФЕВРАЛЬ
RETLW .32 ;3-МАРТ
RETLW .31 ;4-АПРЕЛЬ
RETLW .32 ;5-МАЙ
RETLW .31 ;6-ИЮНЬ
RETLW .32 ;7-ИЮЛЬ
RETLW .32 ;8-АВГУСТ
RETLW .31 ;9-СЕНТЯБРЬ
RETLW .32 ;10-ОКТЯБРЬ
RETLW .31 ;11-НОЯБРЬ
RETLW .32 ;12-ДЕКАБРЬ
;=============================
; 4. ВЫБОР РЕЖИМА ИНДИКАЦИИ.
;=============================
VUBOR
BTFSSPORTB,PEJ;ЕСЛИ КНОПКА НАЖАТА,
RETURN;ТО ВЫБОРА НЕТ.
BCFFLAG,4;СБРОС ФЛАГА РЕЖИМА.
MOVFWREID;ПО НОМЕРУ
ADDWFPCL,1;ВЫБИРАЕМ ИНДИКАЦИЮ.
GOTOINDT;ТЕКУЩАЯ.
GOTOINDYC;УСТАНОВКА ДАТЫ, ЧАСОВ.
GOTOINPRO;ПРОСМОТР.
INDT
CALLREGIN;ВОССТАНОВИМ
BTFSCFLAG2,0;ЕСЛИ УСТАНОВКИ СДЕЛАНЫ РАНЕЕ,
RETURN;ТО ВЕРНЕМСЯ.
BCFFLAG2,1;СБРОСИМ: УСТАНОВКУ ЧАСОВ,
BCFFLAG2,2;ПРОСМОТР,
BCFFLAG1,0;ОБЩУЮ УСТАНОВКУ,
BCFFLAG2,6;СЧЕТЧИКА ДНЕЙ,
BCFFLAG2,5;ВЫПОЛНЕННОЙ УСТАНОВ
CALLZHAKCOX;ВОССТАНОВИМ
BSFFLAG2,0;УСТАНОВИМ ТЕКУЩУЮ ИНДИКАЦИЮ.
RETURN
INDYC
CALLREGIN;ВОССТАНОВИМ
BTFSCFLAG2,1;ЕСЛИ УСТАНОВКИ СДЕЛАНЫ РАНЕЕ,
RETURN;ТО ВЕРНЕМСЯ.
BSFFLAG1,0;УСТАНОВКА.
BCFFLAG2,0;СБРОСИМ: ТЕКУЩУЮ ИНДИКАЦИЮ,
BCFFLAG2,2;ПРОСМОТР.
CLRFKYPC;ОБНУЛИМ КУРСОР.
BSFFLAG2,1;УСТАНОВКА ДАТЫ, ЧАСОВ.
RETURN
INPRO
BTFSCFLAG2,2;ЕСЛИ УСТАНОВКИ
GOTO$+6;ТО ПРОВЕРИМ КНОПКУ.
MOVLW.8;УСТАНОВИМ КУРСОР.
MOVWFKYPC;
BCFFLAG2,0;СБРОСИМ: ТЕКУЩУЮ
BCFFLAG2,1;УСТАНОВКУ ДАТЫ, ЧАСОВ.
BSFFLAG2,2;УСТАНОВИМ РЕЖИМ
BTFSCFLAG1,5;ЕСЛИ КНОПКА
GOTO$+5;ТО ИДЕМ НА УСТАНОВКУ ФЛАГА.
BTFSSPORTA,HOL;ЕСЛИ КНОПКА
BSFFLAG1,5;УСТАНОВИМ ФЛАГ
BTFSSPORTA,HOL;ПОКА КНОПКА
RETURN;УСТАНОВКИ НЕТ.
BTFSSFLAG1,5;ЕСЛИ КНОПКА
RETURN;
BCFFLAG1,5;СБРОСИМ ФЛАГ
BTFSCFLAG1,1;
GOTO$+3;
BSFFLAG1,1;ИЗМЕНИМ СОСТОЯНИЕ
RETURN
BCFFLAG1,1;НА ПРОТИВОПОЛОЖНОЕ.
RETURN
;=============================
; 5. ВЫБОР РАЗРЯДА УСТАНОВКИ.
;=============================
YCTAL
BTFSSPORTB,YCPL;ЕСЛИ КНОПКА ПЛЮС НАЖАТА,
RETURN;ТО ВЫБОРА НЕТ.
BCFFLAG,3;СБРОС ФЛАГА РЕЖИМА.
BTFSCFLAG2,2;ПРИ ПРОСМОТРЕ
RETURN;КНОПКА ПЛЮС НЕ
BCFFLAG,2;СБРОС ФЛАГА РЕЖИМА.
BCFFLAG1,2;ИНДИКАЦИЯ
MOVFWKYPC;ПО КУРСОРУ
ADDWFPCL,1;НАХОДИМ РАЗРЯД
GOTOYC0;ДЕСЯТКИ ЧАСОВ.
GOTOYC1;ЕДИНИЦЫ ЧАСОВ.
GOTOYC2;ДЕСЯТКИ МИНУТ.
GOTOYC3;ЕДИНИЦЫ МИНУТ.
GOTOYC4;ДЕСЯТКИ ДНЕЙ.
GOTOYC5;ЕДИНИЦЫ ДНЕЙ.
GOTOYC6;ДЕСЯТКИ МЕСЯЦА.
GOTOYC7;ЕДИНИЦЫ МЕСЯЦА.
YCTAM
BTFSCFLAG2,1;ЕСЛИ УСТАНОВКА
RETURN;ТО ВЫБОРА НЕТ.
BTFSSPORTB,YCMI;ЕСЛИ КНОПКА
RETURN;ТО ВЫБОРА НЕТ.
BCFFLAG,2;
BCFFLAG1,2;ИНДИКАЦИЯ
GOTOYC8M;ЕДИНИЦЫ ДНЕЙ
;=============================
; 6. ИНДИКАЦИЯ КУРСОРА.
;=============================
JEKYC
MOVLW.14;РАЗРЕШАЕМ МИГАНИЕ КУРСОРА.
CALL JEKOM;ЗАПИШЕМ КОМАНДУ.
CALLJEKYK;НА ВЫБОР МИГАЮЩЕГО
CALL JEKOM;ЗАПИШЕМ КОМАНДУ.
BSFFLAG,6;ВЫПОЛНЕНА ИНДИКАЦИЯ КУРСОРА.
RETURN
JEKYK
MOVFWKYPC;РЕГИСТР КУРСОРА - В РАБОЧИЙ.
ADDWFPCL,1;
RETLW0x85;ДЕСЯТКИ ЧАСОВ.
RETLW0x86;ЕДИНИЦЫ ЧАСОВ.
RETLW0x88;ДЕСЯТКИ МИНУТ.
RETLW0x89;ЕДИНИЦЫ МИНУТ.
RETLW0xC5;ДЕСЯТКИ ДНЕЙ.
RETLW0xC6;ЕДИНИЦЫ ДНЕЙ.
RETLW0xC8;ДЕСЯТКИ МЕСЯЦА.
RETLW0xC9;ЕДИНИЦЫ МЕСЯЦА.
RETLW0x81;ЕДИНИЦЫ ДНЕЙ.
;=============================
; 7. ТАБЛИЦЫ ПЕРЕВОДА ДЕСЯТКОВ В ДВОИЧНОЕ ЧИСЛО.
;=============================
DEBIN
ADDWFPCL,1;
RETLW.0
RETLW.10
RETLW.20
RETLW.30
RETLW.40
RETLW.50
;=============================
; 8. ВОССТАНОВЛЕНИЕ ЗНАКА ПОСЛЕ ПРОСМОТРА.
;=============================
ZHAKCOX
MOVLW.251;ПО УМОЛЧАНИЮ ЗНАК ПЛЮС.
MOVWFSOT1X;
BTFSSFLAG,0;ЕСЛИ ИНАЧЕ,
GOTO$+3;ТО УСТАНОВИМ
MOVLW.253;МИНУС.
MOVWFSOT1X;
MOVLW.251;ПО УМОЛЧАНИЮ ЗНАК ПЛЮС.
MOVWFSOT1N;
BTFSSFLAG,1;ЕСЛИ ИНАЧЕ,
GOTO$+3;ТО УСТАНОВИМ
MOVLW.253;МИНУС.
MOVWFSOT1N;
MOVLW.251;ПО УМОЛЧАНИЮ ЗНАК ПЛЮС.
MOVWFSOT2X;
BTFSSFLAG2,3;ЕСЛИ ИНАЧЕ,
GOTO$+3;ТО УСТАНОВИМ
MOVLW.253;МИНУС.
MOVWFSOT2X;
MOVLW.251;ПО УМОЛЧАНИЮ ЗНАК ПЛЮС.
MOVWFSOT2N;
BTFSSFLAG2,4;ЕСЛИ ИНАЧЕ,
GOTO$+3;ТО УСТАНОВИМ
MOVLW.253;МИНУС.
MOVWFSOT2N;
RETURN
;=============================
; 9. УСТАНОВКА КУРСОРА (ВЫБОР РАЗРЯДА УСТАНОВКИ).
;=============================
KYPCY
BTFSCFLAG2,2;ЕСЛИ ИДЕТ ПРОСМОТР,
RETURN;УСТАНОВКА НЕ МЕНЯЕТСЯ.
BTFSSFLAG2,1;УСТАНОВКА
RETURN;ЕСЛИ ИНДИКАЦИЯ УСТАНОВКИ ЧАСОВ.
BTFSSPORTB,PAZ;ПРИ НАЖАТОЙ КНОПКЕ
RETURN;УСТАНОВКА НЕ МЕНЯЕТСЯ.
BCFFLAG,5;СБРОСИМ ФЛАГ.
INCFKYPC,1;ПРИБАВИМ ЕДИНИЦУ В КУРСОР.
MOVLW.8;НЕ БОЛЕЕ 7.
SUBWFKYPC,0;
SKPNC;
CLRFKYPC;ИНАЧЕ ОБНУЛИМ КУРСОР.
RETURN;
;=============================
; 10. ИНИЦИАЛИЗАЦИЯ DS2.
;=============================
INIDS2
CALLHYL2;ПОСЫЛ ИМПУЛЬСА ОБНУЛЕНИЯ.
MOVLW0xCC;ПРОПУСК НОМЕРА.
CALLPOSIL2;ПОШЛЕМ.
MOVLW0x4E;РАЗРЕШАЕМ ЗАПИСЬ УСТАНОВКИ 0,1 ГРАДУСА.
CALLPOSIL2;ПОШЛЕМ.
MOVLW0x7D;ВЕРХНИЙ ПРЕДЕЛ
+125. МОЖНО ПОСТАВИТЬ ЛЮБОЕ
CALLPOSIL2;ПОШЛЕМ.
MOVLW0x77;НИЖНИЙ ПРЕДЕЛ -55. ЛЮБОЙ.
CALLPOSIL2;ПОШЛЕМ.
MOVLW0x7F;КОНФИГУРАЦИЯ 11 = 0,1 ГРАДУС.
CALLPOSIL2;ПОШЛЕМ.
CALLHYL2;ПОСЫЛ ИМПУЛЬСА ОБНУЛЕНИЯ.
MOVLW0xCC;ПРОПУСК ПОСЫЛА НОМЕРА DS.
CALLPOSIL2;ПОШЛЕМ.
MOVLW0x44;РАЗРЕШАЕМ
CALLPOSIL2;ПОШЛЕМ.
MOVLW.3;ПАУЗА 0,75 СЕК.
MOVWFCOUN;МАКСИМАЛЬНО 750 МС.
SPLU
MOVLW .255
MOVWF TEMP
PLUS
MOVLW .255
ADDLW -1
BTFSS STATUS,2
GOTO $-2
DECFSZ TEMP,1
GOTO PLUS
DECFSZCOUN,1
GOTOSPLU
GOTOPRIEM2;НА ПРИЕМ ТЕМПЕРАТУРЫ.
HYL2
CALLWUX2;ВЫХОД НУЛЯ.
MOVLW.125;НУЛЕВОЙ ИМПУЛЬС
ADDLW-1;= 500 МКС.
BTFSSSTATUS,2;
GOTO$-2;
CALLWXO2;ВЫХОД ЕДИНИЦЫ.
MOVLW.125;ИМПУЛЬС =
ADDLW-1;500 МКС.
BTFSSSTATUS,2;
GOTO$-2;
RETURN
;=============================
; 11. ИЗМЕНЕНИЕ ВХОДА НА ПРИЕМ/ПЕРЕДАЧУ.
;=============================
WUX2
BCFPORTA,DS2;
BSFSTATUS,5;ПЕРЕХОДИМ В БАНК 1.
BCFTRISA^80H,DS2;НА ВЫХОД.
BCFSTATUS,5;ПЕРЕХОДИМ В БАНК 0.
RETURN
WXO2
BSFSTATUS,5;ПЕРЕХОДИМ В БАНК 1.
BSFTRISA^80H,DS2;НА ВХОД.
BCFSTATUS,5;ПЕРЕХОДИМ В БАНК 0.
RETURN
Информация о работе Микроконтроллеры и микропроцессорные системы