Единое окно доступа к образовательным ресурсам

Микроконтроллеры семейства MCS-51: Учебное пособие

Голосов: 10

Предлагаемое Вашему вниманию учебное пособие содержит общее описание архитектуры, функциональных возможностей и системы команд семейства однокристальных микроконтроллеров (Embedded Microcontrollers) MCS-51, производимых фирмой INTEL. Во второй части пособия приводится описание учебного микропроцессорного контроллера УМПК-51, предлагаемого студентам в качестве объекта исследования при выполнении цикла лабораторных работ. Материал пособия может использоваться при курсовом и дипломном проектировании, а также может быть полезным для инженеров - схемотехников, занимающихся разработкой и эксплуатацией электронной аппаратуры.

Приведенный ниже текст получен путем автоматического извлечения из оригинального PDF-документа и предназначен для предварительного просмотра.
Изображения (картинки, формулы, графики) отсутствуют.
    Министерство общего и профессионального образования Российской Федерации

         Новосибирский Государственный Технический Университет


             В.Н. Веприк, В.А. Афанасьев, А.И. Дружинин,
                А.А. Земсков, А.Р. Исаев, О.В. Малявко




        МИКРОКОНТРОЛЛЕРЫ СЕМЕЙСТВА MCS-51


                       Учебное пособие по курсам
                     "Микропроцессорные системы"
             и "Проектирование микропроцессорных систем"
                      для студентов старших курсов
            факультета автоматики и вычислительной техники
                           всех форм обучения




                              Новосибирск
                                 1997


В.Н. Веприк, В.А. Афанасьев, А.И. Дружинин, А.А. Земсков, А.Р. Исаев, О.В. Малявко.
Микроконтроллеры семейства MCS-51: Учебное пособие. - Новосибирск.


      Предлагаемое Вашему вниманию учебное пособие содержит общее описание
архитектуры, функциональных возможностей и системы команд семейства однокристальных
микроконтроллеров (Embedded Microcontrollers) MCS-51, производимых фирмой INTEL. Во
второй части пособия приводится описание учебного микропроцессорного контроллера УМПК-
51, предлагаемого студентам в качестве объекта исследования при выполнении цикла
лабораторных работ.
      Материал пособия может использоваться при курсовом и дипломном проектировании, а
также может быть полезным для инженеров - схемотехников, занимающихся разработкой и
эксплуатацией электронной аппаратуры.
      Авторы выражают глубокую признательность АОЗТ "Новые технологии"- официальному
дистрибьютору фирмы INTEL за предоставление материалов, на основе которых выполнена
данная работа.

      Табл.15, ил.25, список лит. 12 назв.



      Рецензенты: Е.Д. Баран, Г.Г. Матушкин.

                                   Работа подготовлена на кафедре
                                      вычислительной техники


                                              Новосибирский государственный
                                        ©     технический университет




                                                                                      2


                                       ВВЕДЕНИЕ.
       Семейство 8-разрядных однокристальных микроконтроллеров MCS-51 появилось на
мировом рынке в начале восьмидесятых годов. Первые модификации кристаллов (около 7) были
выполнены по высококачественной n-МОП (HMOS) технологии и являлись функционально
завершенными однокристальными микроЭВМ гарвардской архитектуры, один из основных
принципов которой состоит в логическом разделении адресных пространств памяти программ и
данных. С развитием полупроводниковой технологии последующие версии микросхем MCS-51
стали изготавливать по более совершенной и низкопотребляющей КМОП (CHMOS) технологии
(в активном режиме потребление кристаллов было доведено до 10 50 мА).
       Система команд MCS-51, ориентированная на реализацию различных цифровых
алгоритмов управления, при сохранении некоторой внешней схожести с системой команд
предыдущего семейства MCS-48, качественно расширилась, в ней появились принципиальные
нововведения:
• битово-ориентированные операции и адресуемые в памяти данных битовые поля, что дало
    возможность говорить о реализации на кристалле битового процессора;
• реализовано исполнение команд умножения, деления и вычитания;
• усовершенствована работа со стеком;
• расширена группа команд передачи управления;
       Система команд стала выглядеть более симметричной, то есть менее зависимой от
пересылок данных через аккумулятор.
       Функциональные возможности встроенных периферийных устройств также расширились
за счет введения:
• двух 16-разрядных таймеров-счетчиков;
• аппаратного последовательного дуплексного порта;
• двухуровневой системы прерываний;
• четырех 8-битовых портов ввода-вывода.
       Принципиальные изменения в структуре временного цикла работы процессора привели к
ускорению работы с внешней памятью программ и данных, а также реакций на внешние и
внутренние прерывания. Суммарный размер адресного пространства внешней памяти программ
и данных увеличился до 128 Кбайт. 16-разрядные регистры счетчика команд (Program Counter) и
указателя данных (Data Pointer) позволили напрямую обращаться ко всему диапазону адресов,
что дало разработчикам возможность реализации алгоритмов быстрой обработки крупных
массивов данных.
       Все программно-доступные узлы микроконтроллера были сведены в специальную
область памяти данных (Special Function Register), что позволило обращаться к ним почти так
же, как и к обычным ячейкам резидентного ОЗУ.
       В более поздних модификациях кристаллов усовершенствование шло по пути
наращивания дополнительных функциональных возможностей с сохранением полной
программной совместимости с более ранними версиями. Особенностями последних
модификаций микроконтроллеров семейства MCS-51 являются:
• полностью статический дизайн;
• 3- и 5-вольтовые версии кристаллов;
• широкий спектр встроенных периферийных устройств;
• максимальная тактовая частота - 24 мГц; для отдельных групп кристаллов - 33 мГц.
       В настоящее время в состав MCS-51 входит около 60 версий кристаллов, кроме того,
имеется и доступна подробная фирменная документация (к сожалению, пока мало переведенная
на русский язык). Для подготовки математического обеспечения микроконтроллеров MCS-51
используются в основном языки "ASM-51", "С", для которых существуют ряд достаточно
хорошо зарекомендовавших себя компиляторов, библиотек стандартных подпрограмм и
программных эмуляторов, производимых различными зарубежными и отечественными
фирмами.


                                                                                          3


      Несмотря на достаточную "древность" семейства (более 15 лет) и появление на мировом
рынке за последние годы однокристальных микроконтроллеров большей производительности и
усовершенствованной архитектуры - MCS-51, MCS-251, MCS-96, контроллеры MCS-51 еще
достаточно долго будут широко использоваться в сравнительно простых встроенных системах
управления [1,4,6,10,11].




                                                                                        4


           1. СИСТЕМА ОБОЗНАЧЕНИЙ КОМПОНЕНТОВ ФИРМЫ INTEL
               И ФУНКЦИОНАЛЬНЫЙ СОСТАВ СЕМЕЙСТВА MCS-51

      Для маркировки микросхем фирмой INTEL применяется система обозначений из
нескольких полей:
                    1   2            3                4
                   Х ХХ ХХХХХХХХХХХХХХХ ХХХХХХ

       Первое поле содержит однобуквенный префикс, отражающий температурный диапазон
микросхемы:
А              (Automotive), автомобильное исполнение для расширенного температурного
              диапазона (-40/+125 С)
М             (Military), исполнение по военным стандартам (-55/+125 С)
Q или С       (Commercial), "коммерческий" температурный диапазон (0/+70 С) с (160 8)-
              часовой динамической термотренировкой;
L или Е       (Extended), "расширенный" температурный диапазон (-40/+85 С) с (160 8)-
              часовой динамической термотренировкой;
Т             (Extended), "расширенный" температурный диапазон (-40/+85 С) без
              термотренировки;
I             (Industrial), исполнение по промышленным стандартам.
       Второе поле содержит одно- или двухбуквенный префикс, указывающий на вариант
исполнения корпуса микросхемы (Package Type). Различных типов корпусов микросхем на
сегодняшний день несколько десятков, поэтому в качестве примера приведем лишь некоторые
обозначения:
A       Ceramic Pin Grid Array, (PGA);
C       Ceramic Dual In-Line Package, (CDIP);
K       Ceramic Quad Flatpack Package, (QFP);
KD      Plastic Quad Flatpack Package, Fine Pitch, Die Down, (PQFP);
KU      Plastic Quad Flatpack Package, Fine Pitch, Die Up, (PQFP);
N       Plastic Leaded Chip Carrier, (PLCC);
P       Plastic Dual In-Line Package, (PDIP);
SM      Single In-Line Leadless Memory Module, (SIMM);
U       Plastic Dual In-Line Package, Shrink Dip, (PDIPS);
Z       Zigzag In-Line Package, (ZIP).
       Третье поле может содержать до 15 цифровых и буквенных символов, указывающих на
тип конкретного устройства, расположенного на кристалле.
       Четвертое поле может включать до шести цифровых и буквенных символов, отражающих
различные особенности и варианты исполнения микросхем [6,12].
       Дополнительную информацию по типам корпусов и их конструктивному исполнению
можно найти в книге: Packaging Order Number 240800.
       Применительно к описываемым микроконтроллерам семейства MCS-51, первый символ
третьего поля традиционно (для фирмы Intel) равен "8". Второй символ третьего поля обычно
указывает на тип встроенного ПЗУ:
0     масочное ПЗУ программ; кристалл без ПЗУ (для поздних версий кристаллов);
1     масочное ПЗУ программ (Standard ROM Code, Firmware);
3     масочное ПЗУ (для поздних версий кристаллов), (Customizable ROM Code);
7     УФРПЗУ или однократно-программируемое ПЗУ (EPROM or OTP ROM);
8     ЭСППЗУ (Flash - память на кристалле)
       Далее может следовать буква, указывающая на технологические особенности
изготовления:
отсутствие буквы           технология HMOS, питание 5В;
С                          технология СHMOS, питание 5В;
L                          технология СHMOS, питание 3В;

                                                                                        5


       Следующими символами третьего поля для микроконтроллеров семейства MCS-51
являются номера (например, 31,32,51,54,58,152) и от одной до четырех букв, которые отражают
функциональные особенности кристаллов (например, объем ПЗУ, специфику группы
кристаллов, наличие системы защиты памяти программ от несанкционированного доступа,
возможность использования более совершенного алгоритма программирования "Quick Pulse" и
тому подобное).
       В оригинальной технической документации фирмы Intel все микроконтроллеры
семейства MCS-51 скомпонованы по группам ("Product Line"), каждая из которых объединяет
наиболее близкие по своим функциональным возможностям и электрическим параметрам версии
кристаллов. Поскольку наименования микросхем одной группы различаются незначительно, то
для обозначения каждой отдельной группы применяется обобщенная символика, образованная
из маркировки конкретных микросхем, путем замены различающихся символов на "Х". Таким
образом, можно выделить следующие группы микроконтроллеров.
1. Группа 8Х5Х (8051 Product Line и 8052 Product Line):
    8031АН, 8051АН, 8751Н, 8051АНР, 8751Н-8, 8751ВН, 8032АН, 8052АН, 8752ВН.
2. Группа 8ХС51 (80С51 Product Line):
    80С31ВН, 80С51ВН, 87С51.
3. Группа 8ХС5Х (8ХС52/54/58 Product Line):
    80С32, 80С52, 87С52, 80С54, 87С54, 80С58, 87С58.
4. Группа 8ХС51FX (8XC51FA/FB/FC Product Line):
    80C51FA, 83C51FA, 87C51FA, 83C51FB, 87C51FB, 83C51FC, 87C51FC.
5. Группа 8ХL5X (8XL52/54/58 Product Line):
    80L52, 87L52, 80L54, 87L54, 80L58, 87L58.
6. Группа 8XL51FX (8XL51FA/FB/FC Product Line):
    80L51FA, 83L51FA, 87L51FA, 83L51FB, 87L51FB, 83L51FC, 87L51FC.
7. Группа 8ХС51RX (8XC51RA/RB/RC Product Line):
    80C51RA, 83C51RA, 87C51RA, 83C51RB, 87C51RB, 83C51RC, 87C51RC.
8. Группа 8ХC51GB (8XC51GX Product Line):
    80C51GB, 83C51GB, 87C51GB.
9. Группа 8ХС152JX (8XC152 Product Line):
    80C152JA, 83C152JA, 80C152JB, 80C152JC, 83C152JC, 80C152JD.
10. Группа 8XC51SL (8XC51SL Product Line):
    80C51SL-BG, 81C51SL-BG, 83C51SL-BG, 80C51-AH, 81C51SL-AH, 83C51SL-AH, 87C51SL-
    AH, 80C51SL-AL, 81C51SL-AL, 83C51SL-AL, 87C51SL-AL.
      Первая группа микроконтроллеров включает в себя младшие модели семейства,
выполненные по n-МОП технологии и не рекомендуемые к использованию в новых разработках,
все остальные группы выполнены по современной КМОП технологии.
      Микросхемы второй, третьей и четвертой групп являются на сегодняшний день
классическими представителями семейства MCS-51. В пятую и шестую группы входят 3-
вольтовые версии кристаллов (Low-Voltage). Кристаллы седьмой группы оснащены
расширенным ОЗУ (Expanded RAM), объем которого равен 512 байт. Микросхемы восьмой,
девятой и десятой групп представляют собой специализированные по применению
микроконтроллеры (Application Specific). Многие современные приложения требуют
высокопроизводительных управляющих микроконтроллеров, использующих расширенные
возможности адресации, регистровую архитектуру, большой объем внутреннего ОЗУ и стека, а
также эффективно поддерживающих программирование на языке высокого уровня. К таким
микроконтроллерам относятся микроконтроллеры новой архитектуры (New Architecture)
семейств MCS-5 и MCS-251, к производству которых компания Intel приступила в 1995 году.
Функциональный состав и ключевые особенности микроконтроллера MCS-51/MCS-251
приведены в приложении.




                                                                                          6


        2. ОСНОВНЫЕ ХАРАКТЕРИСТИКИ БАЗОВОЙ МОДЕЛИ СЕМЕЙСТВА
                      МИКРОКОНТРОЛЛЕРОВ MCS-51.

      Базовой моделью семейства микроконтроллеров MCS-51 и основой для всех
последующих модификаций является микроконтроллер I-8051. Его основные характеристики
следующие:
• восьмиразрядный ЦП, оптимизированный для реализации функций управления;
• встроенный тактовый генератор;
• адресное пространство памяти программ - 64 К;
• адресное пространство памяти данных - 64 К;
• внутренняя память программ - 4 К;
• внутренняя память данных - 128 байт;
• дополнительные возможности по выполнению операций булевой алгебры (побитовые
   операции);
• 32 двунаправленные и индивидуально адресуемые линии ввода/вывода;
• 2 шестнадцатиразрядных многофункциональных таймера/счетчика;
• полнодуплексный асинхронный приемопередатчик;
• векторная система прерываний с двумя уровнями приоритета и шестью источниками
   событий [2-4,7,8].
• Структурная схема I-8051 показана на рис.1, назначение выводов микросхемы - на рис.2.
              External
             interrupts


            Interrupts                     128 bytes            T/C 0     counter
                            4K ROM
             control                         RAM                T/C 1      inputs


              CPU


                              BUS            4 I/O              Serial
              OSC            control         Ports              Port


                                           P0 P1 P2 P3    T D       R D

                                       Address/Data
                              Рис.1. Структурная схема I-8051

      Вся серия MCS-51 имеет гарвардскую архитектуру, то есть раздельные адресные
пространства памяти программ и данных. Организация памяти изображена на рис.3.
      Объем внутренней (резидентной) памяти программ (ROM, EPROM или OTP ROM),
располагаемой на кристалле, в зависимости от типа микросхемы может составлять 0 (ROMless),
4К (базовый кристалл), 8К, 16К или 32К. При необходимости пользователь может расширять
память программ установкой внешнего ПЗУ. Доступ к внутреннему или внешнему ПЗУ
определяется значением сигнала на выводе ЕА (External Access):
      EA=Vcc (напряжение питания) - доступ к внутреннему ПЗУ;
      EA=Vss (потенциал земли) - доступ к внешнему ПЗУ.
      Для кристаллов без ПЗУ (ROMless) вывод ЕА должен быть постоянно подключен к Vss.
      Строб чтения внешнего ПЗУ - PS EN (Program Store Enable) генерируется при обращении
к внешней памяти программ и является неактивным во время обращения к ПЗУ,
расположенному на кристалле.

                                                                                         7


      Область нижних адресов памяти программ используется системой прерываний,
архитектура микросхемы 8051обеспечивает поддержку пяти источников прерываний:
• двух внешних прерываний;
• двух прерываний от таймеров;
• прерывания от последовательного порта.


                             P1.0       1          40      Vcc
                             P1.1       2          39      P0.0 (AD0)
                             P1.2       3          38      P0.1 (AD1)
                             P1.3       4          37      P0.2 (AD2)
                             P1.4       5          36      P0.3 (AD3)
                             P1.5       6          35      P0.4 (AD4)
                             P1.6       7          34      P0.5 (AD5)
                             P1.7       8          33      P0.6 (AD6)
                          RESET         9          32      P0.7 (AD7)
                    (R D) P3.0          10         31      EA/Vpp
                    (T D) P3.1          11         30      ALE/PROG
                    (INT0) P3.2         12         29      PSEN
                    (INT1) P3.3         13         28      P2.7 (A15)
                        (T0) P3.4       14         27      P2.6 (A14)
                        (T1) P3.5       15         26      P2.5 (A13)
                      (WR) P3.6         16         25      P2.4 (A12)
                       (RD) P3.7        17         24      P2.3 (A11)
                          XTAL2         18         23      P2.2 (A10)
                          XTAL1         19         22      P2.1 (A9)
                              Vss       20         21      P2.0 (A8)

                               Рис.2. Назначение выводов I-8051

             Память программ (Чтение)                   Память данных (Чтение/Запись)

        FFFFH      Внешнее ПЗУ                                         FFFFH
                                                                                Внешняя
                   @DPTR                                            RD           память
        PSEN                                                        WR           данных
                   @PC

                   MOVC
                   EA=0                                   Внутренняя
                                                            память              @DPTR
                                                           данных               @PC

         Внешнее                    Внутреннее      FFH
                                                           upper 128 SFR        MOVX
           ПЗУ                         ПЗУ          80H
          EA=0         0000H          EA=1                 lower 128
                                                    00H                 0000H


      PSEN



                       Рис.3. Организация памяти семейства MCS-51

                                                                                          8


      На рис.4 изображена карта нижней области программной памяти.



                                                        ROM
                                                   Память программ
                                                                        0033Н
                                                                        002BН
                                  Serial Port                           0023Н
            Вектора                  Timer1                             001BН
            прерываний               EINT1                              0013Н
                                     Timer0                             000BH
                                     EINT0                              0003Н
                          Стартовый адрес                               0000H
                          (Reset)

                                 Рис.4. Программная память

       Адреса векторов прерываний расположены с интервалом в 8 байт:
-  0003Н      внешнее прерывание 0 (External Interrupt 0) - вывод IN T 0 ;
-  000BН      прерывание от таймера 0 (по флагу переполнения таймера - T F 0 );
-  0013Н      внешнее прерывание 1 (External Interrupt 1) - вывод IN T 1 ;
-  001BH      прерывание от таймера 1 (по флагу переполнения таймера - T F 1);
-  0023H      прерывание от последовательного порта (Serial Interrupt = Receive Interrupt or
              Transmit Interrupt);
и так далее.
       Память данных отделена от памяти программ. В этой области возможна адресация 64К
внешнего ОЗУ. При обращении к внешней памяти данных ЦП микроконтроллера генерирует
соответствующие сигналы чтения ( R D ) или записи ( W R ), взаимодействие с внутренней
памятью данных осуществляется на командном уровне, при этом сигналы R D и W R не
вырабатываются.
       Внешняя память программ и внешняя память данных могут комбинироваться путем
совмещения сигналов R D и PS EN по схеме "логического И" для получения строба внешней
памяти (программ/данных).
       Нижние 128 байт внутренней памяти данных (lower 128) присутствуют на всех
кристаллах MCS-51 и показаны на рис.5.
       Первые 32 байта представляют собой 4 банка (Register Bank) по 8 регистров (R7...R0).
Регистры R0 и R1 в любом из банков могут использоваться в качестве регистров косвенного
адреса.
       Следующие за регистровыми банками 16 байт образуют блок побитно-адресуемого
пространства. Набор инструкций MCS-51 содержит широкий выбор операций над битами, а 128
бит в этом блоке адресуются прямо и адреса имею значения от 00Н до 7FH.
       Все байты в нижней 128-байтной половине памяти могут адресоваться как прямо, так и
косвенно.
       Верхняя 128 байтная половина памяти ОЗУ (upper 128) в микросхеме I-8051 отсутствует,
но имеется в версиях кристаллов с 256 байтами ОЗУ. В этом случае область "Upper 128"
доступна только при косвенной адресации. Область SFR (Special Function Register) доступна
только при прямой адресации.
       Размещение регистров специальных функций в пространстве SFR показано на рис.6. Они
включают в себя регистры портов, таймеры, средства управления периферией и так далее.



                                                                                           9


            7FH                        Побайтно-адресуемая область ОЗУ
            30H                                (direct, indirect)
            2FH         7FH      7EH     7DH     7CH       7BH    7AH  79H              78H
            2EH         77H      76H     75H     74H       73H    72H  71H              70H
                                       Побитно-адресуемая область ОЗУ
                                                      (direct)
            21H         0FH      0EH      0DH     0CH          0BH     0AH     09H      08H
            20H         07H      06H      05H     04H          03H     02H     01H      00H
            1FH
                                                         RB3
             18H
             17H
                                                         RB2
            10H
            0FH
                                                         RB1
             08H
             07H          SP после RESET
             00H                                  RB0(R7+R0)

                                    Рис.5. Нижние 128 байт внутреннего ОЗУ.

               побитовая
               адресация
                                                8 байт
         F8H                                                                                  FFH
         F0H        B                                                                         F7H
         E8H                                                                                  EFH
         E0H       ACC                                                                        E7H
         D8H                                                                                  DFH
         D0H       PSW                                                                        D7H
         C8H                                                                                  CFH
         C0H                                                                                  C7H
         B8H      IP                                                                          BFH
         B0H      P3                                                                          B7H
         A8H      IE                                                                          AFH
         A0H      P2                                                                          A7H
         98H     SCON SBUF                                                                    9FH
         90H      P1                                                                          97H
         88H     TCON TMOD             TL0      TL1      TH0         TH1                      8FH
         80H      P0   SP              DPL      DPH                                  PCO      87H
                                                                                     N
                   0/8        1/9      2/A      3/B      4/C         5/D     6/E      7/F
                              Рис.6. Размещение регистров специальных функций
                                             в пространстве SFR.

       Для 16 адресов в пространстве SFR имеется возможность как байтовой, так и битовой
адресации. Для побитно-адресуемых регистров шестнадцатеричный адрес заканчивается на "0Н"
или на "8Н". Битовые адреса в этой области имеют значения от 80Н до FFH.
       Вся серия кристаллов семейства MCS-51 имеет базовый набор SFR, как и в микросхеме I-
8051, расположенный по тем же адресам. Однако в кристаллах, представляющих собой
дальнейшее развитие семейства в область SFR, добавляются новые регистры для расширения
                                                                                                    10



    
Яндекс цитирования Яндекс.Метрика