Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЕВДОКИМОВ_А.П._ЭЛЕКТРОНИКА И МПС_26 МАЯ 2014 (1).docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.69 Mб
Скачать

3 Практическая часть

3.1 Порядок выполнения работы

  1. Запустите среду программирования MPLAB IDE v8.14. В проекте PRAKTIKA создайте файл acp-xx.asm (где под хх следует понимать номер академической группы) и присоедините файл к проекту. Включите программный симулятор.

  2. Занесите нижеследующую программу в поле редактора программ. Программа преобразует аналоговый сигнал, поступающий на вход RA0/AN0 АЦП, в десятиразрядный код, осуществляет левое выравнивание и передает 8 старших разрядов в PORTB.

;************************************************************

#include p16f873a.inc

;************************************************************

;Описание используемых в программе регистров общего назначения: T1 equ 020h

;**********************************************************

;Макросы

_BANK_0 macro ;Макрос установки банка 0

bcf STATUS, RP0 bcf STATUS, RP1 endm

_BANK_1 macro ;Макрос установки банка 1

bsf STATUS, RP0 bcf STATUS, RP1 endm

;************************************************************

;Начало

org 000h ;Вектор сброса

call INIT ;Вызов подпрограммы инициализации goto START ;Переход к основной программе

;************************************************************

;Инициализация INIT

_BANK_0

clrf PORTA ;Очистка PORTA

clrf PORTB ;Очистка PORTB

_BANK_1

movlw b'11111111'

movwf TRISA ;Все каналы PORTA работают на прием movlw b'00000000'

movwf TRISB ;Все каналы PORTB работают на передачу movlw b'00000000' ;Левое выравнивание: <7>=0, весь PORTA

movwf ADCON1 ;– аналоговый: <3;2;1;0>=0000

_BANK_0

movlw b'01000000' ;Выбор источника тактового сигнала movwf ADCON0 ;Выбор канала RA0/AN0: <5;4;3>=000 bsf ADCON0, 0 ;Включение модуля АЦП call DELAY ;Вызов подпрограммы задержки return ; Конец инициализации ;************************************************************

; Тело программы

START _BANK_0

bsf

ADCON0, 2 ;Начало преобразования

OG btfsc

ADCON0, 2 ;Ожидание, пока не будет сброшен бит 2

goto

OG

movf

ADRESH, w ;Запись результата в W

movwf

PORTB ;Пересылка результата в PORTB

goto

START ;Зацикливание программы

;************************************************************ ;Подпрограмма задержки (см. комментарии к лаб. работе 12).

;Формирует интервал времени(>20 мкс), необходимый для

;подготовки АЦП к работе DELAY clrf T1 movlw .5 movwf T1

M1 decfsz T1, f goto M1

return

;************************************************************

end

Рисунок 16.2 – Принципиальная схема стенда

  1. При отладке программы наблюдайте за изменением состояния задействованных регистров. Затем занесите программу в микроконтроллер с помощью программатора.

  2. Установите микроконтроллер PIC16F873A в панель, расположенную на стенде, в строгом соответствии с нумерацией выводов микроконтроллера.

  3. Соберите электрическую цепь в соответствии с принципиальной схемой, приведенной на рисунке 16.2. Подключите источник постоянного напряжения 9В к лабораторному стенду.

  4. Плавно вращая ползунок переменного резистора наблюдайте за изменением кода на светодиодном индикаторе.

  5. По заданию преподавателя переведите несколько значений двоичного кода в десятичный код.