Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 22.06.2007, 20:55  
ew3ds
Временная регистрация
 
Регистрация: 03.03.2005
Сообщений: 52
Сказал спасибо: 9
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ew3ds на пути к лучшему
По умолчанию Шаговый на PIC16F84A-нужна помощь

Кто может,подправте пожалуйта программку.
Все как бы работает нормально но еть одно но...
При нажатии кнопки "Стоп" на некоторых выходах PIC-а
остаются логические 1-цы(при каждом выключениии по разному)а нужны нули.Сам я не силен-надеюсь на вашу помощь.
Код:
;*************************************************  *******
;
;               Stepper Motor controller
;
;                                 Author : Seiichi Inoue
;*************************************************  *******

        list            p=pic16f84a
        include         p16f84a.inc
        __config _hs_osc & _wdt_off & _pwrte_on & _cp_off
        errorlevel      -302    ;Eliminate bank warning

;****************  Label Definition  ********************
        cblock  h'0c'
mode                            ;Operation mode
                                ;0=stop 1=right 2=left
count1                          ;Wait counter
count2                          ;Wait counter(for 1msec)
        endc

rb0     equ     0               ;RB0 of PORTB
rb1     equ     1               ;RB1 of PORTB
rb2     equ     2               ;RB2 of PORTB
rb5     equ     5               ;RB5 of PORTB
rb7     equ     7               ;RB7 of PORTB

;****************  Program Start  ***********************
        org     0               ;Reset Vector
        goto    init
        org     4               ;Interrupt Vector
        clrf    intcon          ;Clear Interruption reg

;****************  Initial Process  *********************
init
        bsf     status,rp0      ;Change to Bank1
        clrf    trisa           ;Set PORTA all OUT
        movlw   b'00100111'     ;RB0,1,2.5=IN RB7=OUT
        movwf   trisb           ;Set PORTB
        movlw   b'10000000'     ;RBPU=1 Pull up not use
        movwf   option_reg      ;Set OPTION_REG
        bcf     status,rp0      ;Change to Bank0
        clrf    mode            ;Set mode = stop
        clrf    count1          ;Clear counter
        clrf    count2          ;Clear counter
        movlw   b'00000101'     ;Set PORTA initial value
        movwf   porta           ;Write PORTA
        bsf     portb,rb7       ;Set RB7 = 1
        btfsc   portb,rb5       ;RB5 = 0 ?
        goto    $-1             ;No. Wait

start
;*************  Check switch condition  *****************
        btfsc   portb,rb1       ;RB1(stop key) = ON ?
        goto    check1          ;No. Next
        clrf    mode            ;Yes. Set stop mode
        goto    drive           ;No. Jump to motor drive
check1
        btfsc   portb,rb2       ;RB2(right key) = ON ?
        goto    check2          ;No. Next
        movlw   d'1'            ;Yes. Set right mode
        movwf   mode            ;Save mode
        goto    drive           ;No. Jump to motor drive
check2
        btfsc   portb,rb0       ;RB0(left key) = ON ?
        goto    drive           ;No. Jump to motor drive
        movlw   d'2'            ;Yes. Set left mode
        movwf   mode            ;Save mode

;********************  Motor drive  *********************
drive
        movf    mode,w          ;Read mode
        bz      start           ;mode = stop
        bsf     portb,rb7       ;Set RB7 = 1
        btfsc   portb,rb5       ;RB5 = 0 ?
        goto    $-1             ;No. Wait
        movlw   d'5'            ;Set loop count(5msec)
        movwf   count1          ;Save loop count
loop    call    timer           ;Wait 1msec
        decfsz  count1,f        ;count - 1 = 0 ?
        goto    loop            ;No. Continue
        bcf     portb,rb7       ;Set RB7 = 0
        btfss   portb,rb5       ;RB5 = 1 ?
        goto    $-1             ;No. Wait
        movf    porta,w         ;Read PORTA
        sublw   b'000000101'    ;Check motor position
        bnz     drive2          ;Unmatch
        movf    mode,w          ;Read mode
        sublw   d'1'            ;Right ?
        bz      drive1          ;Yes. Right
        movlw   b'00001001'     ;No. Set Left data
        goto    drive_end       ;Jump to PORTA write
drive1
        movlw   b'00000110'     ;Set Right data
        goto    drive_end       ;Jump to PORTA write
;-------
drive2
        movf    porta,w         ;Read PORTA
        sublw   b'000000110'    ;Check motor position
        bnz     drive4          ;Unmatch
        movf    mode,w          ;Read mode
        sublw   d'1'            ;Right ?
        bz      drive3          ;Yes. Right
        movlw   b'00000101'     ;No. Set Left data
        goto    drive_end       ;Jump to PORTA write
drive3
        movlw   b'00001010'     ;Set Right data
        goto    drive_end       ;Jump to PORTA write
;-------
drive4
        movf    porta,w         ;Read PORTA
        sublw   b'000001010'    ;Check motor position
        bnz     drive6          ;Unmatch
        movf    mode,w          ;Read mode
        sublw   d'1'            ;Right ?
        bz      drive5          ;Yes. Right
        movlw   b'00000110'     ;No. Set Left data
        goto    drive_end       ;Jump to PORTA write
drive5
        movlw   b'00001001'     ;Set Right data
        goto    drive_end       ;Jump to PORTA write
;-------
drive6
        movf    porta,w         ;Read PORTA
        sublw   b'000001001'    ;Check motor position
        bnz     drive8          ;Unmatch
        movf    mode,w          ;Read mode
        sublw   d'1'            ;Right ?
        bz      drive7          ;Yes. Right
        movlw   b'00001010'     ;No. Set Left data
        goto    drive_end       ;Jump to PORTA write
drive7
        movlw   b'00000101'     ;Set Right data
        goto    drive_end       ;Jump to PORTA write
;-------
drive8
        movlw   b'00000101'     ;Compulsion setting

drive_end
        movwf   porta           ;Write PORTA
        goto    start           ;Jump to start

;*************  1msec Timer Subroutine  *****************
timer
        movlw   d'200'          ;Set loop count
        movwf   count2          ;Save loop count
tmlp    nop                     ;Time adjust
        nop                     ;Time adjust
        decfsz  count2,f        ;count - 1 = 0 ?
        goto    tmlp            ;No. Continue
        return                  ;Yes. Count end

;*************************************************  *******
;             END of Stepper Motor controller
;*************************************************  *******

        end
‹center›
-- Прилагается рисунок: --
‹IFRAME src = "nuke/users_images/22062007/5371739.gif" frameborder="0" name="fr1414819" scrolling="yes" width="470" height="491" align="bottom"›[img]nuke/users_images/22062007/5371739.gif[/img]
‹font color=red›Рисунок не умещается на странице и поэтому сжат!‹/font›
Для того, чтобы просмотреть его полностью, щелкните здесь.

‹/IFRAME›
‹/center›
Реклама:
ew3ds вне форума  
Непрочитано 23.06.2007, 13:27  
EVGENIY1962
Гражданин KAZUS.RU
 
Регистрация: 27.07.2006
Сообщений: 659
Сказал спасибо: 0
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
EVGENIY1962 на пути к лучшему
По умолчанию

Программу не смотрел,но что вам мешает после нажатия на стоп принудительно обнулить все,что вам нужно.
EVGENIY1962 вне форума  
Непрочитано 23.06.2007, 15:04  
urry
Почётный гражданин KAZUS.RU
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
По умолчанию

после трис обнулите порты

Прикрепленный файл: 2171257.rar
urry вне форума  
Непрочитано 23.06.2007, 21:00  
bomjbomj
Прохожий
 
Регистрация: 23.06.2007
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
bomjbomj на пути к лучшему
По умолчанию

Купите нормальный готовый драйвер - www.purelogic.ru.
Вам подойдет PLM004.
bomjbomj вне форума  
Непрочитано 23.06.2007, 23:55  
ew3ds
Временная регистрация
 
Регистрация: 03.03.2005
Сообщений: 52
Сказал спасибо: 9
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ew3ds на пути к лучшему
По умолчанию

Сообщение от urry
после трис обнулите порты
urry, я в программировании полный ноль,максимум что могу так это прокомпилировать и прошить.
Твой хекс зашил но PIC не заработал
При загрузке хекса в программу программатора заметил что тип генератора установился RC, а нужен HS.
Тут такое дело,порты должны обнулиться даже при первом включении и если можешь убери еще кнопку "Стоп"
В моем назначении она совсем не нужна.
Для bomjbomj: в данной схеме я применяю драйвер FT5764M.Двигатель и драйвер взял от принтера.
----
Александр.

Прикрепленный файл: 2171257.rar
ew3ds вне форума  
Непрочитано 24.06.2007, 00:51  
Zemlyanov
Гражданин KAZUS.RU
 
Регистрация: 17.09.2006
Сообщений: 633
Сказал спасибо: 78
Сказали Спасибо 69 раз(а) в 57 сообщении(ях)
Zemlyanov на пути к лучшему
По умолчанию

Я тоже этим когда то страдал.
Zemlyanov вне форума  
Непрочитано 24.06.2007, 11:04  
urry
Почётный гражданин KAZUS.RU
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
По умолчанию

Простите, плиз, напутал с конфигом. Пробуйте

Прикрепленный файл: 2146037.rar
urry вне форума  
Непрочитано 24.06.2007, 12:02  
urry
Почётный гражданин KAZUS.RU
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
По умолчанию

Не могу удалить свой предыдущий пост.

Прикрепленный файл: 6070788.rar
urry вне форума  
Непрочитано 24.06.2007, 12:03  
ew3ds
Временная регистрация
 
Регистрация: 03.03.2005
Сообщений: 52
Сказал спасибо: 9
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ew3ds на пути к лучшему
По умолчанию

Не хочет вообще управляться.Пробовал обнулить перед
трис-управляется но от проблемы не избавился.
Я паралельно открыл тему на микрочип, можешь заглянуть: http://www.microchip.su/showthread.php?p=7386#post7386
ew3ds вне форума  
Непрочитано 24.06.2007, 12:14  
ew3ds
Временная регистрация
 
Регистрация: 03.03.2005
Сообщений: 52
Сказал спасибо: 9
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ew3ds на пути к лучшему
По умолчанию

Сообщение от urry
Не могу удалить свой предыдущий пост.
Вот это я не пробовал-щас обкатаем-момент...

Прикрепленный файл: 6070788.rar
ew3ds вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна помощь по переделке программы с PIC16F84A на PIC16F628A Ivankz Микроконтроллеры, АЦП, память и т.д 14 16.08.2012 14:25
нужна помощь) scvorec492 Автоматика и аппаратура связи 6 12.08.2011 21:43
Нужна помощь!!! ШД -> UNL2003A -> PIC16F84A xxxmonejall Микроконтроллеры, АЦП, память и т.д 10 04.08.2009 00:02
Нужна помощь! Katherine Информация по радиокомпонентам 8 20.12.2006 22:58
[Решено] Нужна помощь Оленька Делимся опытом 1 02.04.2005 11:50


Часовой пояс GMT +4, время: 14:44.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot