Автор работы: Пользователь скрыл имя, 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. Работа с устройством
Заключение
Список литературы
;=============================
SAPIS
CALLPERZAP;ПЕРЕПИШЕМ ТЕКУЩИЕ ЗНАЧЕНИЯ В РЕГИСТРЫ ЗАПИСИ.
BTFSCFLAG,0;ВВОДИМ ЗНАК В РЕГИСТРЫ.
BSFLSBZ1X,7;-
BTFSCFLAG,1;
BSFLSBZ1N,7;-
BTFSCFLAG2,3;
BSFLSBZ2X,7;-
BTFSCFLAG2,4;
BSFLSBZ2N,7;-
MOVLWHOUZ1X;ПЕРВЫЙ АДРЕС ЗАПИСЫВАЕМОГО РЕГИСТРА
MOVWFFSR;В РЕГИСТР КОСВЕННОЙ АДРЕСАЦИИ.
MOVFWCOUZ;НАЧАЛЬНЫЙ АДРЕС ЗАПИСИ В РАБОЧИЙ РЕГИСТР.
BSFSTATUS,5;БАНК 1.
MOVWFEEADR;ИЗ РАБОЧЕГО В АДРЕС ЗАПИСИ.
BCFINTCON,7;ЗАПРЕТ ПРЕРЫВАНИЙ.
CALLZAPIS;НА ЗАПИСЬ.
INCFEEADR,1;УВЕЛИЧИМ АДРЕС.
INCFFSR,1;ВЫБЕРЕМ СЛЕДУЮЩИЙ РЕГИСТР.
BTFSSFSR,7;ЕСЛИ РЕГИСТР НЕ ПОСЛЕДНИЙ,
GOTO$-4;ПОВТОРИМ ЗАПИСЬ.
BCFSTATUS,5;БАНК 0.
BSFINTCON,7;РАЗРЕШАЕМ
MOVLW.16;УСТАНОВИМ НАЧАЛЬНЫЙ АДРЕС
ADDWFCOUZ,1;СЛЕДУЮЩЕЙ ЗАПИСИ.
MOVLW.128;ЕСЛИ ЭТО ПОСЛЕДНИЙ АДРЕС,
SUBWFCOUZ,0;
SKPNC;
CLRFCOUZ;ТО НАЧНЕМ С НУЛЯ.
RETURN;ВОЗВРАТ.
ZAPIS
MOVFWINDF;ПЕРЕПИШЕМ
MOVWFEEDATA;В РЕГИСТР ДАННЫХ.
BSF EECON1,WREN;РАЗРЕШЕНИЕ ЗАПИСИ.
MOVLW 55H;ОБЯЗАТЕЛЬНАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ
MOVWF EECON2;/
MOVLW 0AAH;/
MOVWF EECON2;/
BSF EECON1,WR;ПРИ ЗАПИСИ ВО ФЛЕШ ПЗУ.
BTFSC EECON1,WR;ПОКА НЕ БУДЕТ ОКОНЧАНИЯ ЗАПИСИ
GOTO $-1;ХОДИМ ПО КРУГУ.
BCF EECON1,WREN;ЗАПРЕТ ЗАПИСИ.
RETURN;ВОЗВРАТ.
;=========================
; 43. ВЫБОРКА ИЗ ПАМЯТИ.
;=========================
CXUTKA
MOVLWHOUZ1X;ПЕРВЫЙ АДРЕС ЗАПИСЫВАЕМОГО РЕГИСТРА
MOVWFFSR;В РЕГИСТР КОСВЕННОЙ АДРЕСАЦИИ.
MOVFWCOUE;АДРЕС ЗАПИСИ В РАБОЧИЙ РЕГИСТР.
BSFSTATUS,5;БАНК 1.
MOVWFEEADR;ИЗ РАБОЧЕГО В АДРЕС ЗАПИСИ.
BCFINTCON,7;ЗАПРЕТ ПРЕРЫВАНИЙ.
CALLAKT;НА СЧИТЫВАНИЕ.
MOVWFINDF;ПЕРЕПИШЕМ В РЕГИСТР.
INCFEEADR,1;УВЕЛИЧИМ АДРЕС.
INCFFSR,1;ВЫБЕРЕМ СЛЕДУЮЩИЙ РЕГИСТР.
BTFSSFSR,7;ЕСЛИ РЕГИСТР НЕ ПОСЛЕДНИЙ,
GOTO$-5;ПОВТОРИМ СЧИТЫВАНИЕ.
BCFSTATUS,5;БАНК 0.
BSFINTCON,7;РАЗРЕШАЕМ
MOVLW.251;ПО УМОЛЧАНИЮ ЗНАК ПЛЮС.
MOVWFSOT1X;
BTFSSLSBZ1X,7;ПО 7 РАЗРЯДУ УСТАНОВИМ ЗНАК.
GOTO$+4;
MOVLW.253;МИНУС.
MOVWFSOT1X;
BCFLSBZ1X,7;СОТРЕМ ЗНАК.
MOVLW.251;ПО УМОЛЧАНИЮ ЗНАК ПЛЮС.
MOVWFSOT1N;
BTFSSLSBZ1N,7;
GOTO$+4;
MOVLW.253;МИНУС.
MOVWFSOT1N;
BCFLSBZ1N,7;
MOVLW.251;ПО УМОЛЧАНИЮ ЗНАК ПЛЮС.
MOVWFSOT2X;
BTFSSLSBZ2X,7;
GOTO$+4;
MOVLW.253;МИНУС.
MOVWFSOT2X;
BCFLSBZ2X,7;
MOVLW.251;ПО УМОЛЧАНИЮ ЗНАК ПЛЮС.
MOVWFSOT2N;
BTFSSLSBZ2N,7;
GOTO$+4;
MOVLW.253;МИНУС.
MOVWFSOT2N;
BCFLSBZ2N,7;
BCFFLAG2,5;СБРОС ФЛАГА УСТАНОВКИ МИНУС.
RETURN
AKT
BSFEECON1,RD;ЧТЕНИЕ.
BTFSCEECON1,RD;
GOTO$-1;
MOVLW.255;ЕСЛИ ПАМЯТЬ НЕ ЗАПОЛНЕНА,
SUBWFEEDATA,0;ЗАПИШЕМ -0.
BTFSCSTATUS,Z;
CLRFEEDATA;ОБНУЛИМ, Т.К. 255 НЕКОРРЕКТНО.
MOVFWEEDATA;ПЕРЕПИШЕМ В РАБОЧИЙ РЕГИСТР.
RETURN;ВОЗВРАТ.
;=============================
; 44. РАСПРЕДЕЛИТЕЛЬ.
;=============================
MYLTIK
CALLKHOP;ПРОВЕРИМ КНОПКИ.
BTFSSFLAG2,0;ЕСЛИ ИНДИКАЦИЯ ТЕКУЩАЯ,
GOTOCMOTP;ТО ПРОПУСКАЕМ УСТАНОВКУ.
CALLJEKIND;ПРОИНДИЦИРУЕМ.
BTFSSCEK,0;ЖДЕМ ЧЕТНОЙ СЕКУНДЫ.
GOTO$-1;
CALLINIDS1;ПРОВЕРИМ ДАТЧИК.
CALLKHOP;ПРОВЕРИМ КНОПКИ.
BTFSSFLAG2,0;ЕСЛИ ИНДИКАЦИЯ ТЕКУЩАЯ,
GOTOCMOTP;ТО ПРОПУСКАЕМ УСТАНОВКУ.
CALLJEKIND;ПРОИНДИЦИРУЕМ.
BTFSCCEK,0;ЖДЕМ НЕЧЕТНОЙ СЕКУНДЫ.
GOTO$-1;
CALLINIDS2;ТО ПРОВЕРИМ ВТОРОЙ ДАТЧИК.
GOTOMYLTIK;ВСЕ СНАЧАЛА.
CMOTP
BTFSCFLAG2,0;ЕСЛИ ИНДИКАЦИЯ ТЕКУЩАЯ,
GOTOMYLTIK;ТО ИДЕМ ИЗМЕРЯТЬ ТЕМПЕРАТУРУ.
BTFSCFLAG2,5;ПРИ УСТАНОВКЕ НЕТ ВЫБОРКИ ИЗ ПЗУ.
CALLCXUTKA;ВЫБОРКА ИЗ ПЗУ.
BTFSCFLAG1,2;ЕСЛИ ЗАПРЕТ ИНДИКАЦИИ, ТО ПРОПУСТИМ.
GOTO$+4;
BTFSSFLAG,7;КАЖДЫЕ 0,5 СЕК.
GOTO$-1
CALLJEKIND;ВЫВОДИМ НА
BTFSCFLAG,7;КАЖДЫЕ 0,5 СЕК.
GOTO$-1
CALLKHOP;ПРОВЕРИМ КНОПКИ.
GOTOCMOTP;
;=============================
END
;=============================
Информация о работе Микроконтроллеры и микропроцессорные системы