
- •1. Архитектура семейства mcs51.
- •1.1 Общие характеристики.
- •1.2 Структурная схема.
- •1.3 Назначение выводов микроконтроллера 8051.
- •3.4 Организация памяти.
- •1.4.1 Память программ (пзу).
- •1.4.2 Память данных (озу).
- •1.4.3 Регистры специальных функций.
- •1.4.4 Регистр флагов (psw).
- •1.5 Устройство управления и синхронизации.
- •1.6 Организация портов ввода вывода
- •1.6.1 Общие сведения.
- •1.6.2 Альтернативные функции.
- •1.7 Таймеры / счетчики микроконтроллеров семейства 8051.
- •1.7.1 Регистр режима работы таймера/счетчика tmod
- •1.7.2.Регистр управления/статуса таймера tcon.
- •1.7.3 Режимы работы таймеров-счетчиков.
- •1.8 Последовательный порт.
- •1.9 Регистр управления/статуса приемопередатчика scon.
- •1.9.1 Функциональное назначение бит регистра управления/статуса приемопередатчика scon
- •1.9.2 Скорость приема/передачи информации через последовательный порт.
- •1.9.3 Регистр управления мощностью pcon.
- •1.10 Система прерываний.
- •1.10.1 Регистр масок прерывания (ie).
- •1.10.2 Регистр приоритетов прерываний (ip).
- •1.10.3 Выполнение подпрограммы прерывания.
- •2. Особенности элементов структуры 80c51 gb
- •2 .1 Функциональные особенности кристаллов 8xc51gb
- •3.2 Порты I/o p0-p5
- •Альтернативные функции выводов портов 0-5
- •3.3 Система прерываний 8xc51gb
- •Вектора прерываний
- •Регистр iе
- •Регистр iеа
- •Регистр ip
- •Регистр iрн кристаллов 8xc51gb
- •Регистр ipа кристалла 8xc51gb
- •Регистр iрна кристаллов 8xc51gb
- •Регистр exicon
- •3.4 Узел ацп Функциональная схема ацп
- •Регистр результата сравнения асмр
- •Регистр управления ацп acon
- •3.5 Аппаратный сторожевой таймер
- •3.6 Обнаружение сбоя тактового генератора
- •3.7 Матрица программируемых счётчиков рса
- •Регистр управления рса - ccon
- •Режимы работы модулей сравнения/фиксации
- •16-Битный режим фиксации.
- •16-Битный режим фиксации рса
- •16-Битный режим сравнения: программный таймер и высокоскоростной выход
- •Режим сторожевого таймера
- •Режим широтно-импульсного модулятора
- •Соответствие имён регистров и битов узлов рса и рса1
- •3.8 Расширенный последовательный порт
- •Режимы работы порта sep
- •Регистр управления sepcon
- •Регистр состояния sepstat
- •3.9 Таймеры/счетчики
- •4. Основы программирования mk 8051gb
- •4.1 Программная модель
- •4.2 Типы данных
- •Память данных (озу)
- •4.3 Способы адресации данных
- •4.4 Система команд
- •4.4.1 Общая характеристика
- •4.4.2 Типы команд
- •Типы команд
- •4.4.3 Типы операндов
- •4.4.4 Группы команд
- •4.4.5 Oбозначения, используемые при описании команд
- •4.4.6 Команды пересылки данных микроконтроллера
- •4.4.7 Команды арифметических операций 8051
- •4.4.8 Команды логических операций микроконтроллера 8051
- •4.4.9 Команды операций над битами микроконтроллера 8051
- •4.4.10. Команды передачи управления микроконтроллера 8051
- •5. Язык программирования asm-51.
- •5.1 Отладка программ.
- •5.2 Запись текста программы на языке программирования asm-51.
- •5.3 Алфавит языка.
- •5.4 Идентификаторы.
- •5.5 Числа.
- •5.6 Директивы языка программирования asm-51.
- •5.7 Реализация подпрограмм на языке asm51.
- •5.7.1 Реализация подпрограмм-процедур на языке asm51.
- •5.7.2 Передача переменных-параметров в подпрограмму.
- •5.7.3 Реализация подпрограмм-функций на языке asm51.
- •5.7.4 Реализация подпрограмм обработки прерываний на языке asm51.
- •5.8 Структурное программирование на языке asm-51.
- •5.9 Многомодульные программы.
- •5.10 Использование сегментов в языке программирования ассемблер.
- •5.10.1 Абсолютные сегменты памяти.
- •5.10.2 Перемещаемые сегменты памяти.
- •6. Язык программирования с-51.
- •6.1 Применение.
- •6.2 Отладка программ.
- •6.3 Структура программ с-51.
- •6.4. Символы языка программирования с-51.
- •6.4.1 Лексические единицы, разделители и использование пробелов.
- •6.4.2 Идентификаторы.
- •6.4.3 Ключевые слова.
- •6.4.4 Константы.
- •6.5 Выражения в операторах языка программирования c-51.
- •6.6 Приоритеты выполнения операций.
- •6.7 Операторы языка программирования c-51.
- •6.7.1 Операторы объявления.
- •6.7.2 Исполняемые операторы.
- •6.7.3 Оператор присваивания.
- •6.7.4 Условный оператор.
- •6.7.5 Структурный оператор {}.
- •6.7.6 Оператор цикла for.
- •6.7.7 Оператор цикла с проверкой условия до тела цикла while.
- •6.7.8 Оператор цикла с проверкой условия после тела цикла do while.
- •6.7.9 Оператор break.
- •6.7.10 Оператор continue.
- •6.7.11 Оператор выбора switch.
- •6.7.12 Оператор безусловного перехода goto.
- •6.7.13 Оператор выражение.
- •6.7.14 Оператор возвращения из подпрограммы return.
- •6.7.15 Пустой оператор.
- •6.8 Объявление переменных в языке программирования c-51.
- •6.8.1 Категории типов данных.
- •6.8.2 Целые типы данных.
- •6.8.3 Числа с плавающей запятой.
- •6.8.4 Переменные перечислимого типа.
- •6.9 Объявление массивов в языке программирования c-51.
- •6.10 Структуры.
- •6.10.1 Поля битов.
- •6.11 Объединения (смеси).
- •6.12 Объявление указателей в языке программирования c-51.
- •6.12.1 Нетипизированные указатели.
- •6.12.2 Память зависимые указатели.
- •6.13. Объявление новых типов переменных.
- •6.14. Инициализация данных.
- •6.15. Использование подпрограмм в языке программирования с-51.
- •6.15.1 Определение подпрограмм.
- •6.15.2 Параметры подпрограмм.
- •6.15.3 Предварительное объявление подпрограмм.
- •6.15.4 Вызов подпрограмм.
- •6.15.5 Рекурсивный вызов подпрограмм.
- •6.15.6 Подпрограммы обработки прерываний.
- •6.15.7 Области действия переменных и подпрограмм.
- •6.16. Многомодульные программы.
- •7. Подготовка программ
- •7.1 Пример создания проекта на языке ассемблера для учебного контроллера в интегрированной среде разработки Keil μVision2.
- •7.2 Пример создания проекта на языке c для учебного контроллера в интегрированной среде разработки Keil μVision2.
- •8. Описание стенда
- •8.1. Структура контроллера
- •8.2 Структура по
- •8.3 Адресное пространство
- •8.4 Внешняя память
- •8.5 Внутренняя память данных
- •8.6 Регистры специальных функций
- •Передняя панель
- •Задняя панель
- •9. Лабораторные работы мк-51
- •10. Отчет по лабораторной работе
- •1. Введение
- •2. Архитектура семейства mcs51.
- •3. Особенности элементов структуры 80c51 gb
- •4. Основы программирования mk 8051gb
- •5. Язык программирования asm-51.
- •6. Язык программирования с-51.
- •7. Подготовка программ
- •8. Описание стенда
- •9. Лабораторные работы мк-51
- •10. Отчет по лабораторной работе
7. Подготовка программ
7.1 Пример создания проекта на языке ассемблера для учебного контроллера в интегрированной среде разработки Keil μVision2.
Для создания проекта выполните следующие шаги:
Запустите μVision2, щелкнув по ярлыку
После запуска появится главное окно среды разработки:
Окно имеет четыре основные области. Вверху окна находится меню и панель инструментов. Внизу окна находится панель вывода сообщений компилятора (вкладка «Build»), отладчика (вкладка «Command») и результатов поиска. В центре окна расположена панель проекта и пространство для окон редактора.
Создайте новый проект, выбрав пункт меню Project->New Poject… В окне «Create New Project» укажите имя проекта и папку, в которой будут храниться его файлы. Нажмите кнопку Save.
Появится окно выбора типа микропроцессора.
Укажите тип устройства Intel->80C51GB в окне «Select device»
Откажитесь от копирования стандартного кода инициализации, нажав кнопку «Нет» в окне с вопросом.
Создайте новый файл для текста программы, выбрав пункт меню File‑>New…
Появится пустое окно редактора.
Сохраните файл в папке проекта с расширением .a51. Для этого выберите пункт меню File->Save As…
Например, можно дать файлу имя «Program1.a51». Это имя необходимо ввести полностью (с расширением) в поле «File name»
Добавьте файл к проекту, выбрав пункт «Add Files to Group ‘Source Group 1’» в контекстном меню (правая кнопка мыши) для «Source Group 1».
В окне выбора файла укажите тип файлов «Asm Source file» в поле «Files of type» и выберите имя созданного в п.6 файла (Например, «Program1.a51»). Нажмите кнопку «Add», затем «Close».
Выбранный файл появиться в панели проекта.
Наберите текст программы в окне редактора. Сохраните проект.
Внимание! В соответствии с распределением памяти учебного контроллера, требуется указать директиву «ORG 8000h» в начале программы. В конце программы укажите директиву «END».
Откомпилируйте проект, выбрав пункт меню Project->Build target
После компиляции в панели вывода сообщений компилятора появится результат компиляции проекта. Если компиляция прошла без ошибок, то появится сообщение «”NewProject1” – 0 Error’s».
Если в тексте проекта присутствуют ошибки, появятся сообщения с кратким описанием ошибки. Двойной щелчок по описанию ошибки укажет место в исходном тексте проекта, которое вызвало ошибку.
После компиляции проекта его можно загружать в учебный контроллер для отладки.
7.2 Пример создания проекта на языке c для учебного контроллера в интегрированной среде разработки Keil μVision2.
Для создания проекта выполните следующие шаги:
Запустите μVision2, щелкнув по ярлыку
После запуска появится главное окно среды разработки:
Окно имеет четыре основные области. Вверху окна находится меню и панель инструментов. Внизу окна находится панель вывода сообщений компилятора (вкладка «Build» ), отладчика (вкладка «Command») и результатов поиска. В центре окна расположена панель проекта и пространство для окон редактора.
Создайте новый проект, выбрав пункт меню Project->New Poject… В окне «Create New Project» укажите имя проекта и папку, в которой будут храниться его файлы. Нажмите кнопку Save.
Появится окно выбора типа микропроцессора.
Укажите тип устройства Intel->80C51GB в окне «Select device»
Подтвердите копирование стандартного кода инициализации, нажав кнопку «Да» в окне с вопросом.
Откройте окно настройки параметров Target 1, выбрав в контекстном меню (правая кнопка мыши) пункт «Options for Target ‘Target 1’»
Откроется окно настройки параметров проекта, которое имеет несколько вкладок. Наиболее часто используются следующие вкладки:
Device – выбор типа МП
Target – настройка основных параметров проекта
Output – выбор формата выходных данных компилятора
C51 – задание уровня оптимизации и других параметров компилятора языка C
Debug – выбор типа и установка свойств отладчика/эмулятора
На вкладке Target, в области «Off-chip Сode memory» укажите параметры памяти программ Eprom: Start: 0x8000, Size: 0x2000 в соответствии с распределением памяти контроллера. Закройте окно параметров, нажав кнопку OK.
Если необходимо использовать внешнюю память данных (XRAM) укажите её параметры в области «Off-chip Xdata memory».
Создайте новый файл для текста программы, выбрав пункт меню File‑>New…
Появится пустое окно редактора.
Сохраните файл в папке проекта с расширением .c. Для этого выберите пункт меню File->Save As…
Например, можно дать файлу имя «Program1.c». Это имя необходимо ввести полностью (с расширением) в поле «File name»
Добавьте файл к проекту, выбрав пункт «Add Files to Group ‘Source Group 1’» в контекстном меню (правая кнопка мыши) для «Source Group 1».
В окне выбора файла укажите тип файлов «C Source file» в поле «Files of type» и выберите имя созданного в п.6 файла (Например, «Program1.c»). Нажмите кнопку «Add», затем «Close».
Выбранный файл появиться в панели проекта. Там же находится стандартный файл инициализации.
Наберите текст программы в окне редактора. Сохраните проект.
Программа на C должна содержать функцию main(). При выходе из неё (например, оператором return) контроллер останавливается. Описание аппаратных средств содержится в заголовочном файле REG51GB.H. Подключать файл STDIO.H не обязательно.
Откомпилируйте проект, выбрав пункт меню Project->Build target
После компиляции в панели вывода сообщений компилятора появится результат компиляции проекта. Если компиляция прошла без ошибок, то появится сообщение «”NewProject1” – 0 Error’s».
Если в тексте проекта присутствуют ошибки, появятся сообщения с кратким описанием ошибки. Двойной щелчок по описанию ошибки укажет место в исходном тексте проекта, которое вызвало ошибку.
После компиляции проекта его можно загружать в учебный контроллер для отладки.