Не надо пользоваться Disable - resume - Enable - это какая-то непонятная хрень на программном уровне. Нужно писать так:
Code
'-------------------------- Описание проекта ---------------------------------
'Проект : My_Int
'Автор :
'
'Версия : 1.0.0 от 06.10.2011
'
'-------------------------- Опции компилятора --------------------------------
DECLARE SHOW_SYSTEM_VARIABLES = ON ' При симуляции в Proteus показать внутренние переменные
DECLARE FSR_CONTEXT_SAVE = OFF ' Не заботиться о сохранении содержимого регистра FSR
DECLARE REMINDERS = OFF ' Выключить напоминания компилятора
DECLARE WARNINGS = OFF ' Выключить предупреждения компилятора
DECLARE OPTIMISER_LEVEL 0 ' Выключить оптимизацию программы
;-------------------------- Общие настройки------------------------------------
DEVICE = 16F84A ' Используемый микроконтроллер
XTAL = 10 ' Частота осциллятора 10 МГц
'-------------------------- Конфигурация программирования --------------------
CONFIG CP_OFF, PWRTE_ON, WDT_OFF, HS_OSC
'-------------------------- Настройки для клавиатуры --------------------------
DECLARE KEYPAD_PORT PORTA ' Порт для матрицы клавиш
'-------------------------- Настройки портов ---------------------------------
PORTB_PULLUPS = ON ' Включить подтягивающие резисторы на PORTB
DECLARE ALL_DIGITAL = ON ' Установить все порты цифровыми входами/выходами
'-------------------------- Регистры специального назначения-------------------
'-------------------------- OPTION_REG ----------------------------------------
SYMBOL PS0 = OPTION_REG.0 ' Бит установки предделителя TMR0
SYMBOL PS1 = OPTION_REG.1 ' Бит установки предделителя TMR0
SYMBOL PS2 = OPTION_REG.2 ' Бит установки предделителя TMR0
SYMBOL PSA = OPTION_REG.3 ' Выбор включения предделителя
SYMBOL T0SE = OPTION_REG.4 ' Выбор фронта приращения TMR0 при внешнем тактовом сигнале
SYMBOL T0CS = OPTION_REG.5 ' Выбор тактового сигнала для TMR0
SYMBOL INTEDG = OPTION_REG.6 ' Выбор активного фронта сигнала на входе внешнего прерывания INT
SYMBOL NOT_RBPU = OPTION_REG.7 ' Включение подтягивающих резисторов на PORTB
'-------------------------- INTCON --------------------------------------------
SYMBOL RBIF = INTCON.0 ' Флаг внешнего прерывания по PORTB.4-PORTB.7
SYMBOL INTF = INTCON.1 ' Флаг внешнего прерывания по PORTB.0(INT)
SYMBOL T0IF = INTCON.2 ' Флаг переполнения TMR0
SYMBOL RBIE = INTCON.3 ' Бит разрешения прерывания по PORTB.4-PORTB.7
SYMBOL INTE = INTCON.4 ' Бит разрешения прерывания по PORTB.0(INT)
SYMBOL T0IE = INTCON.5 ' Бит разрешения прерывания по переполнению TMR0
SYMBOL PEIE = INTCON.6 ' Бит разрешения прерывания от периферийных устройств
SYMBOL GIE = INTCON.7 ' Бит глобального разрешения прерываний
'-------------------------- Определение символов -----------------------------
SYMBOL B0 = PORTB.2
'-------------------------- Начало -------------------------------------------
'-------------------------- Настройка TMR0 для прерываний --------------------
OPTION_REG = %00000111
TMR0 = $00' Значение регистра TMR0
T0IE = 1 ' Разрешение прерывания при переполнении TMR0 с частотой 76,293945 Гц
GIE = 1 ' Разрешение глобального прерывания
TRISB=0
PORTB=0
ON_INTERRUPT GOTO Int_Label
GOTO MainProgram
'-------------------------- Прерывания--------------------------
Int_Label:
CONTEXT SAVE
IF T0IF = 1 THEN
T0IF = 0
ENDIF
B0=1
DELAYMS 100
B0=0
DELAYMS 100
CONTEXT RESTORE
' Возврат из обработчика прерывания
'-------------------------- Главная программа -------------------------
MainProgram:
PORTB.1=1
DELAYMS 100
PORTB.1=0
DELAYMS 100
GOTO MainProgram ' Возврат на начало основной программы
Потом - очень дурной тон использовать задержки в прерывании.
В прерывании нужно находиться как можно меньше времени - поставил флаг - вышел - в программе проверил, флаг стоит - выполняем действия(задержки и.т.д)
Директивами Context Save и Context Restore мы даем команду компилятору автоматически сохранить значения системных регистров - аккумулятора и Status, чтобы при выходе из пп прерывания не потерять контекст прерванной программы, а также корректно выйти из пп прерывания. Код выше работает хорошо. Если при отладке не видно переменных, то это скорей всего, версия протона глючная, это обсуждалось. Сейчас можно скачать самую свежую версию компилятора и IDE - здесь версия 3.5.2.5 для XP и семерки