|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.06.2013, 00:02 | #1 |
Новичок
Джуниор
Регистрация: 25.03.2011
Сообщений: 1
|
ошибка target out of code
Ребят подскажите что к чему возможно ошибка из-за переполнения битов. У меня почему то не получается её исправить. Заранее благодарен.
D1 BIT P1.0; Обозначение битов портов D2 BIT P1.4 D3 BIT P1.7 D4 BIT P3.4 ORG 0003H; Адрес вектора прерываний INT0 JMP START; Переход на начало выполнения программы JMP INTERAPTION; Переход на метку для работы с прерыванием START: MOV P2,#00H; Обнуление порта Р2, выключение светодиодов VD0-VD7 MOV P3,#04H; В порте Р3.2 находится единица MOV TMOD,#01010001B; Настройка таймеров-счетчиков (т/с0-таймер, т/с1-счетчик) MOV TCON,#00000100B; Определение вида прерывания (по переходу из 1 в 0) MOV IE,#00000001B; Разрешение прерывания INT0 SETB EA; Разрешение всех прерываний OSN_PROGRAMMA: ; Загораются нечетные светодиоды M1: MOV A,#0AAH; Включено 4 светодиода нечетных MOV R1,#02H; Nechet_svet: MOV P2,A; MOV R2,A; SETB TR0; Включение счетчика WAIT_M_1: MOV A,TL0; PR_D1: JNB D1,D_1; Если замкнут первый датчик переход на подпрограмму PR_D2: JNB D2,D_2; Если замкнут второй датчик переход на подпрограмму PR_D3: JNB D3,D_3; Если замкнут третий датчик переход на подпрограмму PR_D4: JNB D4,D_4 CLR TR0; MOV TL0,#00H; MOV A,R2; XRL A,#0FFH; DJNZ R1, Nechet_svet CJNE A,#03H,WAIT_M_1; ;Подпрограмма обработки прерывания INTERAPTION: PUSH ACC; запись в стек А PUSH 01H; запись в стек R1 PUSH P2; запись в стек P2 PUSH TL0; запись в стек TL0 MOV P2, #00H; Очистка порта P2 MOV TL0,#00H; Очистка TL0 CLR TR0; выключение счетчика SETB TR0; включение счетчика POP TL0; чтение из сетка TL0 POP P2; чтение из стека P2 POP 01H; чтение из стека R1 POP ACC; чтение из стека А RETI; выход из прерывания JMP OSN_PROGRAMMA ;Датчик D1 замкнут, отсчет 100 импульсов D_1: ;Включение светодиодов первого и второго MOV TL0,#00H; Очистка TL0 S_1: MOV P2,#01H; включаем 0 светодиод MOV P2,#02H; включаем 1 светодиод MOV A, TL0 CJNE A,#1EH,S_1; Ждем до 30 импульса ;Включение светодиодов 5,6 S_2: MOV P2,#10H; включаем 4 светодиод MOV P2,#20H; включаем 5 светодиод MOV A, TL0 CJNE A,#46H,S_2; Ждем до 70 импульса ;Включение светодиодов 6,7 S_3: MOV P2,#40H; включаем 6 светодиод MOV P2,#80H; включаем 7 светодиод MOV A, TL0 CJNE A,#64H,S_3; Ждем до 100 импульса JMP PR_D1 ;Попеременный огонь третьего и четвертого светодиода на 2 импульс D_2: OGON: MOV P2,#04H; ВКЛЮЧЕН 3 СВЕТОДИОД MOV R1,#02H MOV P2,#08H; ВКЛЮЧЕН 4 СВЕТОДИОД MOV R1,#02H SETB TR0; включение счетчика WAIT_OG: MOV A, TL0 CJNE A,#02H,WAIT_OG; ждем 2 импульс CLR TR0; выключение счетчика MOV TL0,#00H; Очистка TL0 MOV A,R2 DJNZ R1,OGON; JMP PR_D2 ; Горят все светодиоды D_3: MOV P2,#00H; Включен ПЕРВЫЙ светодиод MOV R1,#0AH SETB TR0; включение счетчика WAIT_D3: MOV A, TL0 CJNE A,#0AH,WAIT_D3; ждем 10 импульс CLR TR0; выключение счетчика MOV TL0,#00H; Очистка TL0 MOV P2,#0FFH; DJNZ R1, D_3; JMP PR_D3 ;Бегущий огонь НА 4-Й ИМПУЛЬС D_4: MOV A,#0FEH; Определяем что должен быть включен 0 светодиод MOV R1,#08H BEG_OGON: MOV P2, A; Включаем 0 светодиод MOV R2,A SETB TR0; включение счетчика WAIT_B_O: MOV A, TL0 CJNE A,#04h, WAIT_B_O; ждем 4 импульс CLR TR0; выключение счетчика MOV TL0,#00H; Очистка TL0 MOV A,R2 RL A; DJNZ R1,BEG_OGON; JMP PR_D4 END |
08.06.2013, 06:33 | #2 |
Участник клуба
Регистрация: 30.07.2008
Сообщений: 1,604
|
Команда JNB <bit>, <re18>. Команда "переход, если бит не установлен"
М.б в данном месте: JNB D1,D_1; Если замкнут первый датчик переход на подпрограмму ( если бит D1 не установлен (?датчик не замкнут) то переход на D_1 ) команда должна быть JB D1,D_1; ( если бит D1 установлен (?датчик замкнут) то переход на D_1 ) и аналогично в последующих случаях ?
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ошибка Unable to invoke Code.... | sisofcase | Общие вопросы Delphi | 16 | 14.07.2011 20:02 |
Ошибка при компиляции:System Error. Code: 2. | Waik | Общие вопросы Delphi | 0 | 28.05.2011 20:43 |
ошибка Unreachable code | ArtiSoft | Общие вопросы по Java, Java SE, Kotlin | 5 | 23.04.2010 10:46 |