реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> очень нужна помощь с пиком
napper
сообщение Nov 10 2006, 20:36
Сообщение #16


Участник
*

Группа: Новичок
Сообщений: 36
Регистрация: 26-10-06
Из: Волгоград
Пользователь №: 21 685



Я думаю подпрограмму мигания надо организовать вот так:
Код
R1_VD2M                  ;подпрограмма мигания светодиода
   BTFSS     TEMPA,4      
   GOTO      V1          ;перейти на V1
   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
   GOTO      V1          ;перейти на V1
   DECFSZ    COUNT,F
   GOTO      V0
V1
   BCF       VD2         ;
   RETURN                ;возврат из под программы

END


Надеюсь паузы в подпрограмме DELAY_E вы подобрали правильно

P.S. Не забудьте объявить переменную COUNT в начале программы!!!
Go to the top of the page
 
+Quote Post
dosikus
сообщение Nov 11 2006, 09:57
Сообщение #17


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 5-02-05
Из: Russia Ярославль
Пользователь №: 2 447



Цитата(Mari-999 @ Nov 10 2006, 22:39) *
а на RA1 (18 ножка) через резистор подключен диод, катодом в плюс питание.


Вы уверены?
Светодиод катодом к плюсу?
И чего вы ожидаете ?
Go to the top of the page
 
+Quote Post
Mari-999
сообщение Nov 11 2006, 22:43
Сообщение #18


Участник
*

Группа: Новичок
Сообщений: 16
Регистрация: 14-01-06
Пользователь №: 13 171



Цитата(dosikus @ Nov 11 2006, 12:57) *
Цитата(Mari-999 @ Nov 10 2006, 22:39) *


Вы уверены?
Светодиод катодом к плюсу?


нет не уверена
Go to the top of the page
 
+Quote Post
Mari-999
сообщение Nov 14 2006, 12:31
Сообщение #19


Участник
*

Группа: Новичок
Сообщений: 16
Регистрация: 14-01-06
Пользователь №: 13 171



[quote name='napper' date='Nov 10 2006, 23:36' post='174600']
Я думаю подпрограмму мигания надо организовать вот так:
Код
R1_VD2M                 ;подпрограмма мигания светодиода
   BTFSS     TEMPA,4      
   GOTO      V1         ;перейти на V1
   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
   GOTO      V1         ;перейти на V1
   DECFSZ    COUNT,F
   GOTO      V0
V1
   BCF       VD2        ;
   RETURN            ;возврат из под программы

END


Надеюсь паузы в подпрограмме DELAY_E вы подобрали правильно

P.S. Не забудьте объявить переменную COUNT в начале программы!!!
[/quot]
не работает даже не компилиться
Go to the top of the page
 
+Quote Post
napper
сообщение Nov 14 2006, 13:07
Сообщение #20


Участник
*

Группа: Новичок
Сообщений: 36
Регистрация: 26-10-06
Из: Волгоград
Пользователь №: 21 685



Цитата(Mari-999 @ Nov 14 2006, 15:31) *
не работает даже не компилиться

Читайте внимательнее, это ПОДпрограмма!
Замените в своей программе, начиная с метки R1_VD2M на мою.
Go to the top of the page
 
+Quote Post
Mari-999
сообщение Nov 14 2006, 13:52
Сообщение #21


Участник
*

Группа: Новичок
Сообщений: 16
Регистрация: 14-01-06
Пользователь №: 13 171



Цитата(napper @ Nov 14 2006, 16:07) *
Цитата(Mari-999 @ Nov 14 2006, 15:31) *

не работает даже не компилиться

Читайте внимательнее, это ПОДпрограмма!
Замените в своей программе, начиная с метки R1_VD2M на мою.

Да, именно так и сделала (это то я поняла конечно, что это подпрограмма smile.gif ), заменила, она не работает и ругаеться на строчки MOVLW 0x09 и GOTO V0
Go to the top of the page
 
+Quote Post
napper
сообщение Nov 14 2006, 19:06
Сообщение #22


Участник
*

Группа: Новичок
Сообщений: 36
Регистрация: 26-10-06
Из: Волгоград
Пользователь №: 21 685



Полная версия программы:
Код
LIST p=16F84
    INTCON    EQU    0x0B
    OPTION    EQU    0x81
    TMR0        EQU    0x01
    INTF        EQU    1
    T0IF        EQU    5
    PCL        EQU    0x02
    STATUS    EQU    0x03
    RP0        EQU    5
    PORTA        EQU    0x05
    PORTB        EQU    0x06
    TRISA        EQU    0x05
    TRISB        EQU    0x06
    W        EQU    0
    F        EQU    1
    TEMPA        EQU    0x0C
    TEMPB        EQU    0x0D
    COUNT1    EQU    0x0E
    COUNT2    EQU    0x0F

    #DEFINE    Z    STATUS,2;бит нулевого результата
    #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

О результатах сообщите
Go to the top of the page
 
+Quote Post
Mari-999
сообщение Nov 16 2006, 04:15
Сообщение #23


Участник
*

Группа: Новичок
Сообщений: 16
Регистрация: 14-01-06
Пользователь №: 13 171



Цитата(napper @ Nov 14 2006, 22:06) *
О результатах сообщите

не работает две ошибки
Go to the top of the page
 
+Quote Post
Edmundo
сообщение Nov 16 2006, 05:20
Сообщение #24


Мастер
****

Группа: Свой
Сообщений: 730
Регистрация: 18-02-06
Из: Москва
Пользователь №: 14 474



Цитата(Mari-999 @ Nov 16 2006, 07:15) *
не работает две ошибки

Небось, компиляторы разные... В чем компилируете?


--------------------
شامل
Go to the top of the page
 
+Quote Post
napper
сообщение Nov 16 2006, 05:39
Сообщение #25


Участник
*

Группа: Новичок
Сообщений: 36
Регистрация: 26-10-06
Из: Волгоград
Пользователь №: 21 685



Цитата(Mari-999 @ Nov 16 2006, 07:15) *
не работает две ошибки

Давайте разбираться. Что пишет компилятор, на что ругается?
Цитата(Edmundo @ Nov 16 2006, 08:20) *
Небось, компиляторы разные... В чем компилируете?

А причем здесь компилятор? Вроде это стандартный ассемблер для PICов...
Go to the top of the page
 
+Quote Post
Mari-999
сообщение Nov 16 2006, 06:53
Сообщение #26


Участник
*

Группа: Новичок
Сообщений: 16
Регистрация: 14-01-06
Пользователь №: 13 171



Цитата(napper @ Nov 16 2006, 08:39) *
Цитата(Mari-999 @ Nov 16 2006, 07:15) *
не работает две ошибки

Давайте разбираться. Что пишет компилятор, на что ругается?
Цитата(Edmundo @ Nov 16 2006, 08:20) *
Небось, компиляторы разные... В чем компилируете?

А причем здесь компилятор? Вроде это стандартный ассемблер для PICов...

MPASM выдает 5 ошибок, одну нашла не объявлена переменная COUNT, остальные не знаю
Go to the top of the page
 
+Quote Post
napper
сообщение Nov 16 2006, 07:46
Сообщение #27


Участник
*

Группа: Новичок
Сообщений: 36
Регистрация: 26-10-06
Из: Волгоград
Пользователь №: 21 685



Цитата(Mari-999 @ Nov 16 2006, 09:53) *
MPASM выдает 5 ошибок, одну нашла не объявлена переменная COUNT, остальные не знаю

Что за ошибки? Я же не ясновидящий!.. Скопируйте их сюда
Go to the top of the page
 
+Quote Post
Edmundo
сообщение Nov 16 2006, 09:23
Сообщение #28


Мастер
****

Группа: Свой
Сообщений: 730
Регистрация: 18-02-06
Из: Москва
Пользователь №: 14 474



Цитата(napper @ Nov 16 2006, 08:39) *
А причем здесь компилятор? Вроде это стандартный ассемблер для PICов...

Для PICов не знаю, но для других МК бывает. Синтаксис макросов в частности разный.


--------------------
شامل
Go to the top of the page
 
+Quote Post
upc2
сообщение Nov 16 2006, 09:38
Сообщение #29


Знающий
****

Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063



MPASM старенький компилятор. Пора переходить на MPLAB или использовать
его MPASMWIN.
Go to the top of the page
 
+Quote Post
Mari-999
сообщение Nov 19 2006, 07:06
Сообщение #30


Участник
*

Группа: Новичок
Сообщений: 16
Регистрация: 14-01-06
Пользователь №: 13 171



Цитата(napper @ Nov 16 2006, 10:46) *
Цитата(Mari-999 @ Nov 16 2006, 09:53) *

MPASM выдает 5 ошибок, одну нашла не объявлена переменная COUNT, остальные не знаю

Что за ошибки? Я же не ясновидящий!.. Скопируйте их сюда

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

Сообщение отредактировал Mari-999 - Nov 19 2006, 07:08
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 23:48
Рейтинг@Mail.ru


Страница сгенерированна за 0.01495 секунд с 7
ELECTRONIX ©2004-2016