Главная страница
Навигация по странице:

  • ОТЧЕТ по лабораторной работе № 6

  • 6 Лабораторная работа № 6. Обработка прерываний от периферий- ных модулей ( TMR 1) 6.1 Краткие теоретические сведения

  • 6.2 Исходные данные и выполнение программы

  • Основы цифровой техники. Отчет по лабораторной работе 6 По дисциплине Основы цифровой техники


    Скачать 309.12 Kb.
    НазваниеОтчет по лабораторной работе 6 По дисциплине Основы цифровой техники
    АнкорОсновы цифровой техники
    Дата24.12.2021
    Размер309.12 Kb.
    Формат файлаdocx
    Имя файлаОсновы цифровой техники .docx
    ТипОтчет
    #317244

    Некоммерческое акционерное общество

    АЛМАТИНСКИЙ УНИВЕРСИТЕТ ЭНЕРГЕТИКИ И СВЯЗИ

    имени Гумарбека Даукеева


    Кафедра: Электроснабжение промышленных предприятий

    ОТЧЕТ

    по лабораторной работе № 6

    По дисциплине: Основы цифровой техники
    На тему: Обработка прерываний от периферийных модулей (TMR1)
    Специальность: 5В071800 – Электроэнергетика
    Выполнил: Аманжол И..

    Группа: ЭЭ 19-7
    Вариант: № 5
    Принял: Акименков М. В.

    _______ ________________ «____» ________________2021г.

    (оценка) (подпись)
    Алматы 2021
    6 Лабораторная работа № 6. Обработка прерываний от периферий-

    ных модулей (TMR1)

    6.1 Краткие теоретические сведения
    В соответствии со структурной схемой организации прерываний, прерывания от периферийных модулей (таймеров, АЦП, CCP, MSSP, USART, PSP, BOD) отнесены к группе прерываний от периферийных модулей. В упражнении рассмотрено прерывание от переполнения TMR1.

    При разрешенных прерываниях, в случае их возникновения, осуществляется переход на регистр 04h в памяти программ , где находится указание о безусловном переходе на подпрограмму обработки прерывания. Сама программа отделяется от основной программы через GOTO $, а заканчивается командой RETFIE. При переходе на подпрограмму бит GIE в регистре INTCON<7> автоматически сбрасывается в 0. В теле этой подпрограммы снимается флаг, сообщающий о возникновении данного прерывания, что исключает повторную обработку прерывания, и выполняются действия, которые необходимо выполнить при появлении данного прерывания. После выполнения инструкции RETFIE восстанавливается автоматически разрешение прерываний и основная программа продолжает выполняться с адреса, перед которым произошло прерывание. Это осуществляется благодаря запоминанию в стеке адреса последней выполненной инструкции.
    6.2 Исходные данные и выполнение программы
    В соответствии с этим заданием по варианту 1 коэффициент предделителя 1:2, по варианту 2 – 1:4 и по варианту 3 – 1:8. Для наблюдения за работой программы в режиме симулятора в окно наблюдения включите туда регистры STATUS, TRISC, Wreg, PORTC, INTCON, PIE1, PIR1, T1CON, TMR1H, TMR1L, PCL. Снимите окна в начальный момент, в момент запуска подпрограммы Timer, программы обработки прерывания PRER и в момент возвращения из программы обработки прерывания в основную программу и вывода на лампы сигнала об окончании процесса. После запуска в программе Timer таймера TMR1 посчитайте за сколько нажатий на F7 при пошаговом исполнении программы заполнится регистр TMR1L и произойдет добавление единицы в регистр TMR1H, что вызовет его переполнение и появление прерывания, а значит и запуск программы обработки прерывания, и вывод на разряды 0-4 PORTC энергии. Нажмите рестарт и возвратитесь в исходное состояние программы в режиме симулятора. При режиме MPLab ICD нажмите Halt, а затем рестарт. Проанализируйте изменения в регистрах, связанных с работой TMR1 и состояние счетчика команд PCL.
    Текст программы лабораторной работы № 6.

    Include 

    ORG h'00' 

             GOTO GLAV; при запуске программы сразу происходит переход на ;выполнение основной программы с пропуском инструкции перехода 

    ; на подпрограмму обработки прерывания Prer 

    NOP 

    NOP  

    NOP 

    ORG h'04' 

    GOTO Prer 

    NOP 

    GLAV 

    NOP 

    NOP 

    CLRF STATUS 

    BSF STATUS,5 

    CLRF TRISC 

    MOVLW b'00000001' 

    MOVWF TRISB; настраиваем разряд 0 на ввод, остальные на вывод 

    MOVLW b'00000001' 

    MOVWF PIE1;разрешаем прерывание от переполнения TMR1 

    BCF STATUS,5 

    CLRF PORTC 

    CLRF TMR1H; очищаем старший регистр-счетчик TMR1 

    CLRF TMR1L; очищаем младший регистр-счетчик TMR1 

    MOVLW b'11000000' 

    MOVWF INTCON; разрешаем все прерывания и прерывания от периферийных модулей 

    MOVLW b'00010000' 

    MOVWF T1CON;устанавливаем предделитель частоты 1:2

    ;в разрядах 4-5  <01> 

    MOVLW B'00001000' 

    MOVWF PORTC; в 3-м разряде появляется единица 

    MOVLW D'255'; при добавлении 1 регистр переполнится,

    ;появится флаг прерывания в регистре PIR1, оба регистра  обнулятся 

    MOVWF TMR1H 

    MOVLW D'254';по заданию

    MOVWF TMR1L 

        BSF T1CON,TMR1ON; пуск таймера TMR1 

    NOP 

    NOP  

    NOP 

    NOP 

    NOP  

    NOP 

    NOP 

    NOP  

    NOP 

    NOP 

    NOP  

    NOP 

    NOP 

    NOP 

    NOP  

    NOP 

    NOP 

    NOP  

    NOP 

    NOP 

    NOP  

    NOP 

    NOP 

    NOP  

    NOP 

    NOP 

    NOP 

    NOP  

    NOP 

    NOP 

    NOP  

    NOP 

    NOP 

    rr 

    NOP 

    NOP 

    GOTO rr 

    NOP  

    NOP 

    NOP 

    GOTO $; разделитель основной программы и подпрограмм.  

    Prer; имя подпрограммы обработки прерывания, вызванного переполнением 

    ;счетчика TMR1, после ее отработки в разрядах 0-5 PORTC единицы 

    BCF PIR1,TMR1IF; сброс флага переполнения таймера 

    BCF T1CON,TMR1ON; останов таймера TMR1 

    MOVLW b'00111111' 

    MOVWF PORTC; в PORTC единицы в разрядах 0-5 

    RETFIE 

    end; конец текста всей программы 

     

    6.3 Оформление отчета по лабораторной работе

    Отчет оформляется на группу. В созданный Word-файл копируется текст программы и окна по ходу выполнения программы в режиме MPLabSim:

    - после возникновения прерывания и перехода на 4-й адрес программы;

    - после окончания программы обработки прерывания и возвращения в основную программу.

    Таблица 6.1 - Задания по изменению времени работы TMR1

    Задание для варианта


    № варианта 

    Предделитель 1

    Предделитель 2

    TMR1L 

    TMR1H 



    1:2

    1:8

    254 

    255


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




    Предделитель 1

    Предделитель 2

    Значение предделителя по заданию

    1:2

    1:8

    Адрес инструкции пуска TMR1

    29

    29

    Адрес инструкции при прерывании

    33

    45

    Количество выполненных инструкций

    4

    16

    Адрес инструкции при возвращении

    34

    46



    Рисунок 1 - маркер на инструкции запуска TMR1

    Рисунок 4 - произошло прерывание и маркер на вызове программы обработки прерывания. Адрес 04h

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


    1. В каком состоянии находятся биты разрешения прерываний в ре-

    гистрах INTCON и PIE1 после выполнения инструкции RETFIE?

    В том же, в котором и были до прерывания

    1. Где сохраняется значение счетчика регистра, позволяющее при за-

    вершении подпрограммы вернутся к выполнению следующей инструкции?

    В стеке

    1. Сколько регистров в стеке PIC16F877A?

    В микросхемах PIC16F877A стеки имеют 8 уровней по 13 разрядов

    1. На какой адрес в памяти программ переходит счетчик при появлении

    разрешенного прерывания?

    На регистр 04h

    1. В каком регистре и в каком разряде запрещаются все прерывания?

    В 7-ом бите регистра INTCON


    написать администратору сайта