Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка target out of code 
:(
    Опции темы
ЯЗакон
  Дата 7.6.2013, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 7.6.2013

Репутация: нет
Всего: нет



Ребят подскажите что к чему возможно ошибка из-за переполнения битов. У меня почему то не получается её исправить. Заранее благодарен.


Код




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          



Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  14.txt 3,44 Kb
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1141 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.