Читаем PIC-микроконтроллеры. Все, что вам необходимо знать полностью

MPASM 4.02 Released   ROOT_ABS.ASM   9-23-2005   17:15:57   PAGE 1

LOC OBJECT CODE LINE SOURCE TEXT

     VALUE

               00001; Глобальные объявления

               00002 include "p16f84a.inc"; Заголовочный файл

               00001 LIST

               00002; P16F84A.INC Standard Header File, V2.00 Microchip Tech, Inc.

               00003

               00004  cblock h’26’; Качало блока переменных (с регистра h’26’)

00000026 00005 NUK:2; Старший байт (NUM), младший байт (NUM+1)

               00006  endc; Конец блока

               00007; Основной цикл —

0000 2200 00008 MAIN call SQR_ROOT; Фиктивный основной цикл

0001 0063 00009          sleep; Останавливаемся

                00010; ---------------------------------

                00011

                00012; *********************************

                00013; * ФУНКЦИЯ: Вычисляет корень квадратный *

                           * из 16-битного целого *

                00014; * ПРИМЕР: Number = h’FFFF’; (65,535), *

                            * Root = h’FF’ (255) *

                 00015; * ВХОД: Number а регистре NUM: NUM+1 *

                 00016; * ВЫХОД: Корень в W. NUM: NUM+1;  I:I+1 и COUNT измен. *

                 00017; **********************************

                 00018

                 00019; Локальные объявления

                 00020 cblock

00000028  00021 I:2, COUNT:1; Магическое число и счетчик цикла

                 00022 endc

                 00023

0200          00024 org h’200’; Код размещается в памяти программ начиная с h’200’

0200 01АА 00025 SQR_ROOT clrf COUNT; Задача 1: Обнулить счетчик цикла

                 00026

0201 01А8 00027 clrf I; Задача 2: Инициализация магического числа единицей

0202 01А9 00028 clrf I+1;

0203 0АА9 00029 incf I+1,f;

                 00030

00031; Задача 3: ВЫПОЛНЯТЬ

0204 0829 00032 SQR_LOOP movf I+,w; Задача За: Number — I

0205 02A7 00033 subwf NUM+1,f; Вычитаем из мл. байта исходного числа

0206 0828 00034 movf I,w; Берем старший байт магического числа

0207 1С03 00035 btfss STATUS,С; ЕСЛИ не было заема (С==1), ТО пропускаем

0208 3Е01 00036 addlw 1; Учитываем заем

0209 02А6 00037 subwf NUM,f; Вычитаем старше байты

                 00038

                 00039; Задача 3б: ЕСЛИ потеря значимости, ТО выйти

020A 1С03 00040 btfss STATUS,С; ЕСЛИ нет заема (С==1), ТО продолжаем

020В 2Ф13 00041 goto SQR_END; ИНАЧЕ вычисление завершено

                 00042

020D 0829 00045 movf I+1,w; Задача 3 г: Увеличиваем магическое число на 2

020Е ЗЕ02 00046 addlw 2

020F 1803 00047 btfsc STATUS,С; Если нет переноса, ТО пропускаем

0210 0АА8 00048 incf I,f; ИНАЧЕ корректируем старший байт

0211 00А9 00049 movwf I+1

0212 2А04 00050 goto SQR_LOOP

0213 082А 00052 SQR_END movf COUNT,w; Задача 4: Возвращаем счетчик цикла в качестве значения корня

0214 0008 0005З return

                00054 end

SYMBOL TABLE

       LABEL          VALUE

С                         00000000

COUNT                0000002А

I                          00000028

MAIN                   00000000

NUM                    00000026

SQR_END             00000213

SQR_LOOP           00000204

SQR_ROOT           00000200

STATUS               00000003

__16F84A            00000001

MEMORY USAGE MAP ('X' = Used, '-' = Unused)

0000: XX ---------------------- ------------ ------------ ------------

0200: ХХХХХХХХХХХХХХХХ ХХХХХ--- ------------ ------------

All ocher memory blocks unused.

Program Memory Words Used: 23

Program Memory Words Free: 1001

Errors: 0

Warnings: 0 reported, 0 suppressed

Messages: 0 reported, 0 suppressed

Перейти на страницу:

Все книги серии Программируемые системы

PIC-микроконтроллеры. Все, что вам необходимо знать
PIC-микроконтроллеры. Все, что вам необходимо знать

Данная книга представляет собой исчерпывающее руководство по микроконтроллерам семейства PIC компании Microchip, являющегося промышленным стандартом в области встраиваемых цифровых устройств. В книге подробно описывается архитектура и система команд 8-битных микроконтроллеров PIC, на конкретных примерах изучается работа их периферийных модулей.В первой части излагаются основы цифровой схемотехники, математической логики и архитектуры вычислительных систем. Вторая часть посвящена различным аспектам программирования PIC-микроконтроллеров среднего уровня: описывается набор команд, рассматривается написание программ на ассемблере и языке высокого уровня (Си), а также поддержка подпрограмм и прерываний. В третьей части изучаются аппаратные аспекты взаимодействия микроконтроллера с окружающим миром и обработки прерываний. Рассматриваются такие вопросы, как параллельный и последовательный ввод/вывод данных, временные соотношения, обработка аналоговых сигналов и использование EEPROM. В заключение приводится пример разработки реального устройства. На этом примере также демонстрируются простейшие методики отладки и тестирования, применяемые при разработке реальных устройств.Книга рассчитана на самый широкий круг читателей — от любителей до инженеров, при этом для понимания содержащегося в ней материала вовсе не требуется каких-то специальных знаний в области программирования, электроники или цифровой схемотехники. Эта книга будет также полезна студентам, обучающимся по специальностям «Радиоэлектроника» и «Вычислительная техника», которые смогут использовать ее в качестве учебного пособия при прослушивании соответствующих курсов или выполнении курсовых проектов.

Сид Катцен

Радиоэлектроника

Похожие книги

Электроника для начинающих
Электроника для начинающих

В ходе практических экспериментов рассмотрены основы электроники и показано, как проектировать, отлаживать и изготавливать электронные устройства в домашних условиях. Материал излагается последовательно от простого к сложному, начиная с простых опытов с электрическим током и заканчивая созданием сложных устройств с использованием транзисторов и микроконтроллеров. Описаны основные законы электроники, а также принципы функционирования различных электронных компонентов. Показано, как изготовить охранную сигнализацию для защиты от проникновения в дом, елочные огни, электронные украшения для одежды, устройство преобразования звука, кодовый замок, автономную роботизированную тележку и др. Приведены пошаговые инструкции и более 500 наглядных рисунков и фотографий.Для начинающих радиолюбителей

Паоло Аливерти , Чарльз Платт

Радиоэлектроника / Технические науки