Перейти к содержанию
    

очень нужна помощь с пиком

У нас mpasmwin, он когда переводишь в hex выдает 5 ошибок, одну нашла не обьявлена перем.count, осталось три, он не указывает какие, но когда комментируешь те две строки MOVLW 0x09 и GOTO V0,

он выдает 0 ошибок, я посмотрела, но так прога не работает

5 - 1 = 3, интересная арифметика...

 

2napper, сорри что влезаю :), но может быть так...

 

1. Объявите переменную COUNT, она там действительно не объявлена.

2. Переименуйте метку V0 во что-нибудь не буквенно-цифровое, например VZERO, и поставьте соответственно GOTO VZERO

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 - 1 = 3, интересная арифметика...

 

2napper, сорри что влезаю :), но может быть так...

 

1. Объявите переменную COUNT, она там действительно не объявлена.

2. Переименуйте метку V0 во что-нибудь не буквенно-цифровое, например VZERO, и поставьте соответственно GOTO VZERO

Edmundo, нет проблем! :) Я ведь тоже могу ошибаться, поэтому только за, если кто-то меня поправит. Вот про переменную забыл...

    #include P16F84A.inc
TEMPA    EQU    0x0C
TEMPB    EQU    0x0D
COUNT    EQU    0x0E
COUNT1    EQU    0x0F
COUNT2    EQU    0x10

    #DEFINE    VD2    PORTA,1;светодиод VD2
    #DEFINE    R1    PORTA,4;резистор

    ORG 0
INIT_PORTS            ;подпрограмма инициализации портов 
    BSF        STATUS,RP0;переход на банк 1
    MOVLW        0x1C    ;настройка линий RA0 и RA1 на вывод, другие на ввод
    MOVWF        TRISA
    MOVLW        0x01    ;настройка линии RB0 на ввод, другие на вывод  
    MOVWF        TRISB
    BCF        STATUS,RP0;возврат в банк 0
;
LOOP
    MOVF        PORTA,W;чтение состояния порта A в W
    MOVWF        TEMPA    ;пересылка W в TEMPA
    BTFSS        TEMPA,4
    GOTO        LOOP    ;перейти на LOOP
    MOVLW        0x09
    MOVWF        COUNT
;СЧЕТЧИК МИГАНИЙ 9 РАЗ ГОРИТ, 9 - НЕ ГОРИТ, ИТОГО 18 СЕК
;(ЧАСТОТА МИГАНИЙ 1 ГЕРЦ, ЗНАЧИТ 1 МИГАНИЕ/НЕМИГАНИЕ В СЕКУНДУ),
;ПОСЛЕДНЕЕ НЕМИГАНИЕ НЕ УЧИТЫВАЕМ - ПОЛУЧАЕМ 17 СЕК;-)
V0
    BSF        VD2    ;зажечь светодиод VD2
    MOVLW        0xF3    ;пересылка константы
                ;H'F3' = .243 в W
    CALL        DELAY_E;вызов подпрограммы DELAY_E
    BCF        VD2    ;светодиод мигает
    MOVLW        0xF3    ;пересылка константы
                ;H'F3' = .243 в W
    CALL        DELAY_E;вызов подпрограммы DELAY_E
    DECFSZ    COUNT,F
    GOTO        V0
    GOTO        LOOP    ;переход к метке LOOP

DELAY_E            ;подпрограмма формирования задержки

    MOVWF        COUNT2;загрузка W в регистр COUNT2
    CLRF        COUNT1;сброс содержимого регистра COUNT1
LOOPD
    NOP            ;пустая команда
    DECFSZ    COUNT1,F;декремент COUNT1
    GOTO        LOOPD    ;повторение цикла 256 раз
    DECFSZ    COUNT2,F;декремент COUNT2
    GOTO        LOOPD    ;повторение цикла
    RETURN        ;возврат из подпрограммы
        END

Что я исправил:

1. Объявил переменную COUNT

2. Добавил команду "#include P16F84A.inc" вместо "LIST p=16F84" (У меня MPLAB на это ругается, а разбираться лень)

3. По поводу меток все нормально, имена допустимые.

4. Убрал объявление стандартных регистров.

Откомпилировал в MPLAB, все ОК, ошибок 0

P.S. Версия MPLAB 7.30

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

помогите, пожалуйста с пиком 16f84А, лаба заключается в следующем на любой вывод подключить светодиод, когда 0 светодид горит - 2 секунды, когда 1 светодиод не горит 1 секунду...и так цикл, прогу надо написать на ассемблере, и подробно опишите пожалуйста, чтоб разобраться, спасибо

Если нужна еще программа, я могу помочь..., (а вообще то это мой любимый ник :tongue:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...