Микроконтроллеры и микропроцессорные системы

Автор работы: Пользователь скрыл имя, 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. Работа с устройством
Заключение
Список литературы

Прикрепленные файлы: 1 файл

электронный термометр.doc

— 975.50 Кб (Скачать документ)

DST1X;СОХРАНЕННОЕ МАКСИМАЛЬНОЕ  ДЕСЯТЫХ 1 ДАТЧИКА.

DST1N;СОХРАНЕННОЕ МИНИМАЛЬНОЕ  ДЕСЯТЫХ 1 ДАТЧИКА.

DST2X;СОХРАНЕННОЕ МАКСИМАЛЬНОЕ  ДЕСЯТЫХ 2 ДАТЧИКА.

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;СОХРАНЕННОЕ МАКСИМАЛЬНОЕ 1 ДАТЧИКА.

DSTZ1XEQU73H;СОХРАНЕННОЕ МАКСИМАЛЬНОЕ  ДЕСЯТЫХ 1 ДАТЧИКА.

HOUZ1NEQU74H;ЧАСЫ ДВОИЧНЫЕ 1 MIN.

MINZ1NEQU75H;МИНУТЫ ДВОИЧНЫЕ 1 MIN.

LSBZ1NEQU76H;СОХРАНЕННОЕ МИНИМАЛЬНОЕ  1 ДАТЧИКА.

DSTZ1NEQU77H;СОХРАНЕННОЕ МИНИМАЛЬНОЕ  ДЕСЯТЫХ 1 ДАТЧИКА.

HOUZ2XEQU78H;РЕГИСТРЫ ЗАПИСИ/СЧИТЫВАНИЯ, ЧАСЫ ДВОИЧНЫЕ 2 MAX.

MINZ2XEQU79H;МИНУТЫ ДВОИЧНЫЕ 2 MAX.

LSBZ2XEQU7AH;СОХРАНЕННОЕ МАКСИМАЛЬНОЕ 2 ДАТЧИКА.

DSTZ2XEQU7BH;СОХРАНЕННОЕ МАКСИМАЛЬНОЕ  ДЕСЯТЫХ 2 ДАТЧИКА.

HOUZ2NEQU7CH;ЧАСЫ ДВОИЧНЫЕ 2 MIN.

MINZ2NEQU7DH;МИНУТЫ ДВОИЧНЫЕ 2 MIN.

LSBZ2NEQU7EH;СОХРАНЕННОЕ МИНИМАЛЬНОЕ  2 ДАТЧИКА.

DSTZ2NEQU7FH;СОХРАНЕННОЕ МИНИМАЛЬНОЕ  ДЕСЯТЫХ 2 ДАТЧИКА.

;==============================================

; ОПРЕДЕЛЕНИЕ БИТОВ  СОСТОЯНИЯ РЕГИСТРОВ ФЛАГОВ.

;==============================================

;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;ЕСЛИ КНОПКА ПРОСМОТРА  1-2 БЫЛА НАЖАТА РАНЕЕ,

GOTO$+5;ТО ИДЕМ НА УСТАНОВКУ  ФЛАГА.

BTFSSPORTA,HOL;ЕСЛИ КНОПКА НАЖАТА,

BSFFLAG1,5;УСТАНОВИМ ФЛАГ КНОПКИ.

BTFSSPORTA,HOL;ПОКА КНОПКА НАЖАТА,

RETURN;УСТАНОВКИ НЕТ.

BTFSSFLAG1,5;ЕСЛИ КНОПКА ПРОСМОТРА  1-2 БЫЛА НАЖАТА РАНЕЕ,

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

Информация о работе Микроконтроллеры и микропроцессорные системы