Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 24.02.2017
Сообщений: 5
1

PIC16F84A, прерывания, таймер

24.02.2017, 20:55. Просмотров 1331. Ответов 2
Метки нет (Все метки)

Есть задание: "Разработать программу на ассемблер для PIC16F84A, которая бы обеспечивала постоянное свечение первого светодиода и мигание второго светодиода при нажатии на кнопку". То есть горит светодиод постоянно, но при нажатии кнопки, он гаснет и начинает моргать второй. В общем я составил схему, написал программу в mplab, все работает, но мигание второго светодиода я сделал через задержки, а мне необходимо сделать мигание с помощью прерываний, таймера. Не знаю как это сделать, Помогите пожалуйста!
Программа на задержках:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
    LIST        p=16F84A
    __CONFIG    03FF1H
STATUS  equ     03h
TRISB   equ     06h
PORTB   equ     06h
TRISA   equ     05h
PORTA   equ     05h
Reg_1   equ     0Ch
Reg_2   equ     0Dh
Reg_3   equ     0Eh
    org 0
    clrf        PORTB
    bsf     STATUS,5
    movlw       b'11110011'
    movwf       TRISB
    bcf     STATUS,5
back    btfss       PORTB,1
    goto        Miganie
    btfsc       PORTB,1
    goto        qw
    goto        back
Miganie bcf     PORTB,3
    bsf     PORTB,2
    call        pause
    bcf     PORTB,2
    call        pause
    btfsc       PORTB,1
    goto        qw
    goto        Miganie
qw  bsf     PORTB,3
    goto        back
pause   movlw       .169
    movwf       Reg_1
    movlw       .69
    movwf       Reg_2
    movlw       .2
    movwf       Reg_3
    decfsz      Reg_1,F
    goto        $-1
    decfsz      Reg_2,F
    goto        $-3
    decfsz      Reg_3,F
    goto        $-5 
    nop
    nop
    return
    
    end
Схема:
PIC16F84A, прерывания, таймер
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.02.2017, 20:55
Ответы с готовыми решениями:

таймер прерывания 8051
Здравствуйте такой вопрос #загрузка указателя 0006 0200: 90 03 00 p: MOV ...

Msp430 IAR Embedded прерывания,таймер
Реализация прерывающей подпрограммы, реализующей таймер. Выдержка времени (в мс) задается в ячейке...

Прерывания по совпадению, СТС, 16 разрядный таймер, Atmega32
Добрый день. Делаю небольшой простенький генератор сигналов. На данный момент код написан на...

Нулевой таймер на срабатывание прерывания раз в сек (Atmega 8515)
Привет народ. Каким образом нужно настроить частоту на таймере 8 битном, чтобы получить прерывание...

2
890 / 531 / 80
Регистрация: 15.05.2012
Сообщений: 3,118
25.02.2017, 09:13 2
Вырезка из моей программы:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    org 0   ;начальный адрес программы
    clrf    INTCON  ;запрет всех прерываний
    goto    START   ;переход на начало
                
    org 04h ;вектор прерываний
    goto    interrupt   ;переход на подпрограмму обработки прерываний
;
START
    bsf STATUS, RP0 ;включаем BANK1
...
    movlw   b'00000100' ;определение прескалера для таймера 1:32
    movwf   OPTION_REG  ;запись в OPTION_REG
    bcf STATUS,RP0  ;включаем BANK0
...
    movlw   b'10100000' ;взводим биты нужных прерываний
    movwf   INTCON      ;разрешаем прерывание от таймера и общее разрешение
0
0 / 0 / 0
Регистрация: 24.02.2017
Сообщений: 5
25.02.2017, 16:03  [ТС] 3
честно говоря, я ничего не понимаю в этих прерываниях, куда вставлять та этот кусок?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.02.2017, 16:03

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

STM32. Таймер и прерывания по его переполнению
Есть код: /* System Clocks Confikurotion */ RCC_Confikurotion(); /* GPIO Confikurotion */...

Аппаратные прерывания + таймер STM32F103C в среде Arduino
Всем привет. Задумался о переносе проекта димера с АРМ на СТМ32 Подробнее о нём тут:...

STM32F030F4P6 [TSSOP20] не работает таймер (или прерывания)
Всем привет. Не поделится ли кто рабочим кодом под данный чип? желательно написанный в блокноте,...

[Вопрос] Перехват прерывания прямым доступом к вектору прерывания
Всех приветствую! В данный момент разбираюсь с обработкой аппаратного прерывания (прерывание...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.