Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Лабораторная работа 3. Настройка порта С. Символьные имена





Цель работы: применение и выполнение поразрядной настройки регистра PORTC на ввод или вывод. Применение в программе символьных имен.

Символьные имена устраняют двусмысленность и облегчают чтение текста программы. Ассемблер, когда встретит символьное имя, вместо него подставит значение, присвоенное символьному имени. Это может быть число или адрес регистра.

Настройка части разрядов порта С на ввод, а остальных разрядов на вывод, применяется тогда, когда из порта С по части каналов посылаются управляющие сигналы на оборудование, а по другим каналом происходит сбор данных о протекании технологического процесса. Кроме того, мы можем в зависимости от ситуации запретить управление некоторыми механизмами, например, при аварии.

Инструкция BSF может применяться при необходимости включения оборудования, управляемого сигналом данного разряда порта С. Например, включение тепловой завесы при открывании двери в холодную погоду, несмотря на достаточно высокую температуру в помещении.

Изучите программу 3.1. В этой программе выполнена настройка четырех младших разрядов регистра PORTС на вывод, остальных - на ввод. Будем проверять прохождение на вывод бит числа В’01010011’. Программа решает задачу запрета подключения оборудования по фидерам 2 и 6, оставляя возможность подключения фидеров 0 и 1.

include <p16F877.inc>

R0 EQU h'01'; R0 - символьное имя, его значение 01h.

R1 EQU h'02'; R1 - символьное имя, его значение 02h.

R2 EQU h'10'; R2 - символьное имя, его значение 10h.

R3 EQU h'40'; R3 - символьное имя, его значение 40h.

; Начало исполняемой части программы.

org 0x000; Выполнение программы начинается с нулевого адреса.

nop

nop

nop

org 05h; Продолжить с адреса 5.

START; Метка начала программы.

CLRF STATUS; Очистка регистра STATUS.

BSF STATUS, 5; Записать 1 в бит RP0 и выбирать банк ‘1’.

MOVLW B’11110000’; Значение, используемое для настройки порта С.

MOVWF TRISC; Настройка четырех младших разрядов порта С
; на вывод, а четырех старших разрядов на ввод.

CLRF STATUS; Возвращаемся в нулевой банк.

LOOP; Метка для повторения цикла.

CLRF PORTС; Очистить порт С, т.е. потушить светодиоды.

MOVLW R0; Записать в W число 01h.

MOVWF PORTС; Записать в порт С число 01h.

MOVLW R1; Записать в W число 02h..

MOVWF PORTС; Записать его в порт С.

MOVLW R2; Записать в W число 10h.

MOVWF PORTС; Записать в порт С число 10h.

MOVLW R3; Записать в W число 40h.

MOVWF PORTС; Записать в порт С число 40h.

BSF STATUS, 5; Перейти в банк ‘1’.

BCF TRISC, 6; 7-й разряд порта С настраиваем на вывод.

BСF STATUS, 5; Перейти в банк ‘0’.

; Светится ли 7-й светодиод?

GOTO LOOP; Вернуться на метку LOOP для повторения.

END

 

Выполнение проекта

Откройте предыдущий свой проект, измените, приведите текст программы в соответствие с программой 3.1. Сохраните эту программу, не изменяя имени файла. Используя команды Save Project и Make Project, создайте и сохраните проект, как описано во 2-й лабораторной работе, не меняя его имени.

Внимание! В дальнейших лабораторных работах меняйте только текст программы, не меняя имени файла и проекта.

Когда в разряд записана единица, часто говорят: бит установлен, если записан нуль – говорят бит сброшен.

Запрограммируйте кристалл и запустите программу в пошаговом режиме командами Debug – Run - Step.

Сопоставьте результат работы программы с таблицей 3.1.

Т а б л и ц а 3.1 – Таблица результатов

Число в TRISC для настройки порта С Пересылаемая в порт С константа Выходное число в порт С
B’11110000’ B’00000001’ B’00000001’
B’11110000’ B’00000010’ B’00000010’
B’11110000’ B’00010000’ B’00000000’
B’11110000’ B’01000000’ B’00000000’
B’10110000’ B’01000000’ B’01000000’

Если все правильно, измените программу и проект согласно заданию в таблице 3.2. Запустите его и заполните таблицу результатов.

Т а б л и ц а 3.2 - Варианты заданий

  Вариант Константа настройки порта С на ввод/вывод Число, пересылае-мое в порт С Вариант Константа настройки порта С на ввод/вывод Число, пересылае-мое в порт С
           
           
           
           
           
П р и м е ч а н и е - Напишите программу для настройки порта С на ввод/вывод и пересылки в него заданного числа.

Исследуйте состояние регистров PORTC и W, для этого создайте окно наблюдения командами Window – Watch Window – New Watch Window. Напечатайте в поле редактирования символ “P” и из предложенного программой списка выберите строку PORTC. Нажмите кнопку Properties и выберите двоичный формат вывода чисел. Далее нажмите кнопку Add. В результате будет создано новое окно наблюдения с именем Watch1. Теперь напечатайте в поле редактирования ‘W’ и из предложенного списка выберите W, нажмите на кнопку Add. Повторитевседля регистра Status и затем закройте окно кнопкой Close. Второй раз нажимать на кнопку Properties не требуется, если не надо менять формат вывода числа.

Повторите программу в пошаговом режиме и запишите изменения состояния регистров Status, PORTC и W, показываемые в созданном окне Watch1, на бумаге рядом с инструкциями программы.

Внимание! Далее во всех лабораторных работах создавайте окно наблюдения за всеми регистрами, примененными в программе.

Контрольные вопросы

1. Расскажите какую реальную задачу решает ваша программа

2. Зачем и как в проекте нужно создавать окно наблюдения?

3. Назначение кнопки Properties при создании окна наблюдения.

4. Как инициализировать разряды регистра PORTC на ввод и вывод?

5. Назначение инструкции BSF.

6. Назначение инструкции BCF.

7. Как, без инструкции CLRF STATUS, перейти в нулевой банк?

8. Расскажите о символьных именах.

9. Поясните выражения «бит очищен» и «бит установлен».

 

Date: 2015-05-09; view: 579; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию