Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
PLAY65

Как правильно организовать прерывание на ножке RB1 ?

23.11.2011, 14:33. Показов 1719. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите плиз, как правильно организовать прерывание на ножке RB1 (от второй кнопки)?
Имеются две кнопки (Button1 and Button2) и один световой индикатор, подключенные к микроконтроллеру PIC16F84A. В самом начале индикатор не горит. Если нажата одна кнопка, то индикатор загорается. Выключается индикатор по нажатию кнопки Button1 или Button2.

Схема в протеусе приложена Buttons_схема.png

;======================================= ==================================
; Конфигурация
;======================================= ==================================
LIST P=16F84A ; устанавливаем тип МК
#include p16F84A.inc ; подключаем шапку
__CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF & _HS_OSC ; конфигурация МК
;======================================= ==================================
; Описание регистров общего назначения
;======================================= ==================================
WregTemp EQU 0x20
StatusTemp EQU 0x21
DelayCounter EQU 0x22
RepeatDelayCounter EQU 0x23


;======================================= ==================================
; Программа
;======================================= ==================================
ORG 0x00
nop
goto main
;======================================= ==================================
; Подпрограммы и прерывания
;======================================= ==================================

Interrupt_vector: org 0x04

movwf WregTemp
swapf STATUS,W
movwf StatusTemp
btfsc INTCON,INTF ;RBIF ;
goto Delay
goto EndOfInterrupt
Delay:
movlw h'FF'
movwf DelayCounter
movlw h'FF'
movwf RepeatDelayCounter

RestartDelay:

decfsz DelayCounter,F
goto RestartDelay

RestartDelay1:

decfsz RepeatDelayCounter,F
goto RestartDelay1

ProverkaRB0:

btfsc PORTB,0
goto SbrosFlaga

InvertirovanRD0:

movlw b'00000001'
xorwf PORTA,F

SbrosFlaga:

bcf INTCON,INTF;RBIF

EndOfInterrupt:

swapf StatusTemp,W
movwf STATUS
swapf WregTemp,F
swapf WregTemp,W
retfie

main:

clrf PORTB
clrf PORTA
bsf STATUS,RP0
movlw b'00000000'
movwf TRISA
movwf OPTION_REG
movlw b'00110011'
movwf TRISB
bcf STATUS,RP0
bsf PORTA,0
movlw b'10011011'
movwf INTCON

Loop:

goto Loop

end
Миниатюры
Как правильно организовать прерывание на ножке RB1 ?  
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.11.2011, 14:33
Ответы с готовыми решениями:

как организовать прерывание?
Господа, натолкните на путь, пожалуйста.. нужно в строго определенных условиях организовать небольшой обмен данными- обновить выдаваемый...

Как организовать прерывание только цыкла, а не программы из клавиатуры.
Как организовать прерывание только цыкла, а не программы из клавиатуры. Например в программе в диалоговом режиме, пользователь...

Как по синтаксису оформить правильно прерывание для PIC12F683 в MPLAB X IDE
Подскажите, как для PIC12F683 в MPLAB X IDE на языке Си правильно оформить прерывание Таймера2. Разрабатываю схемку с ШИМ для соленоида....

1
 Аватар для ATAMAN200
9 / 9 / 0
Регистрация: 14.08.2010
Сообщений: 148
04.12.2011, 20:30
А почему пишиш ни asm?
Начни изучать C++ и будет легче.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.12.2011, 20:30
Помогаю со студенческими работами здесь

Как правильно настроить прерывание (Получается заметно медленее, чем loop()
Arduino nano (Atmega 328p). Есть код для работы с нестандартной RGB Led панелью (24х12px) void loop() { screen.Update(); //...

Организовать аппаратное прерывание DOS
Вопрос заключается в следующем: как организовать аппаратное прерывание? Конкретно нужно вот что: на любом этапе работы программы при...

Организовать прерывание деления на ноль
Нужно организовать прерывание деления на ноль на ассемблере. никак не получается.

Помогите организовать прерывание таймера на Cortex-M3
Уважаемые специалисты, я имею некоторый опыт работы с AVR и теперь пытаюсь освоить ARM. У меня AT91SAM3X8E и IAR EWARM 7.3. Благодаря...

Как из VB обратиться к любой ножке COM-порта?
Кто-нибудь знает можно ли из VB обратиться к любой ножке COM-порта и послать на нее число.


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru