Например TDA7294

Форум РадиоКот • Просмотр темы - Мигалка на 16f628a. Нужна ваша консультация
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Вс дек 28, 2025 15:12:51

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Мигалка на 16f628a. Нужна ваша консультация
СообщениеДобавлено: Чт авг 09, 2012 14:20:27 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Пт июн 29, 2012 23:48:11
Сообщений: 175
Рейтинг сообщения: 0
Итак, хрон я все таки сделал :)) немного подправив прошивку все отлично заработало :)
Так как остался еще один мк 16f628a продолжаю его изучение, обучаюсь так скать написанию прошивок.
Вот накатал простенький код, который мигает свеодиодом. в коде задана частота и скважность импульсов.
Пожалуйста, посмотрите его, и если есть ошибки/недочеты укажите. Вроде все правильно.
Код:
   list        p=16f628A
   #include <P16F628.inc>
   __CONFIG    _PWRTE_ON & _WDT_OFF & _XT_OSC & _BODEN_OFF & _LVP_OFF

;****************************************************************************;
;   Блок переменных
;****************************************************************************;
cblock 70H
        SecL            ; Младший разряд счетчика таймера
        SecM            ; Средний разряд счетчика таймера
        SecH            ; Старший разряд счетчика таймера
endc
;****************************************************************************;
;   Блок дефайнов
;****************************************************************************;
#define Port_Led        PORTB   ; Порт светодиода
#define Tris_Led        TRISB   ; TRIS порта светодиода
#define Bit_Num_Led     0       ; № бита порта леда
;****************************************************************************;



;****************************************************************************;
;****************************************************************************;
;****************************************************************************;
org     0                   ; Вектор сброса
goto    main                ; Переход на начало программы
;****************************************************************************;
; delay
; Подпрограмма паузы
;
; Входные параметры :
;                       SecL, SecM, SecH
;****************************************************************************;
delay
    decfsz      SecL,F          ; Декремент SecL до 0
    goto        delay
    decfsz      SecM,F          ; Декремент SecM до 0
    goto        delay
    decfsz      SecH,F          ; Декремент SecH до 0
    goto        delay
return                          ; Возврат из ПП
;****************************************************************************;
;   Начало программы
;****************************************************************************;
main       

    bcf     STATUS,   RP0           ; 0-ой банк
    movlw   .7                      ; Отключаем компараторы
    movwf   CMCON                   ; В CMCON запысываем .7
   
    banksel Tris_Led                ; Настраиваем ПИН светодиода на выход
    bcf     Tris_Led, Bit_Num_Led   ;
    banksel Port_Led                ; Сбрасываем ПИН светодиода
    bcf     Port_Led, Bit_Num_Led   ;

;----------;
;   Основной цикл
;----------;
main_loop:

    movlw       .50                 ; Загрузка счетчика
    movwf       SecL                ; SecL
    movlw       .50                 ; Загрузка счетчика
    movwf       SecM                ; SecМ
    movlw       .2                  ; Загрузка счетчика
    movwf       SecH                ; SecH
    call    delay
   
    bsf   Port_Led, Bit_Num_Led     ; Зажечь светодиод
   
    movlw       .100                 ; Загрузка счетчика
    movwf       SecL                ; SecL
    movlw       .100                 ; Загрузка счетчика
    movwf       SecM                ; SecМ
    movlw       .4                  ; Загрузка счетчика
    movwf       SecH                ; SecH
    call    delay
   
    bcf   Port_Led, Bit_Num_Led     ; Погасить светодиод

goto    main_loop
;----------;
;
;----------;
;****************************************************************************;
end
;****************************************************************************;

Некст задача: теперь хочу его заставить мигать только по нажатию кнопки. Постает вопрос: как мне нужно организвать код для такого действия?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мигалка на 16f628a. Нужна ваша консультация
СообщениеДобавлено: Чт авг 09, 2012 15:33:39 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1494
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15331
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
mmm... для этой цели (генерация временных интервалов) в 628 таймеров предостаточно...
а кнопик как кнопик просто добавь его опознание хош в примитиве, хош в максимуме (с антидребезгом и блокировкой повторного исполнения до полного отпускания) :sleep:
и #define ... ... стараюсь не пользоваться - в ассемблерах pic-avr-mcs51 у данной директивы различное назначение ... :cry:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мигалка на 16f628a. Нужна ваша консультация
СообщениеДобавлено: Чт авг 09, 2012 17:23:21 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Пт июн 29, 2012 23:48:11
Сообщений: 175
Рейтинг сообщения: 0
можно кусочек кода для примера (кнопка)?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мигалка на 16f628a. Нужна ваша консультация
СообщениеДобавлено: Чт авг 09, 2012 20:06:36 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1432
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4599
Откуда: Планета Земля
Рейтинг сообщения: -1
Медали: 1
Получил миской по аватаре (1)
Цитата:
Вот накатал простенький код, который мигает свеодиодом.
Что то кодик знакомый :)) А сами ли Вы его накатали ? :)))


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: Мигалка на 16f628a. Нужна ваша консультация
СообщениеДобавлено: Чт авг 09, 2012 20:23:47 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1494
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15331
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
код под схемку пишется однако...
надо хош какую-нибудь для начала сочинить...
у меня есть вот такая, но... это pic18f1320 (хоша по разводке подобен 628) а доводить "до ума" вломкии... :sleep:


Вложения:
ttmk1320.pdf [232.36 KiB]
Скачиваний: 369
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мигалка на 16f628a. Нужна ваша консультация
СообщениеДобавлено: Чт авг 09, 2012 20:38:18 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Пт июн 29, 2012 23:48:11
Сообщений: 175
Рейтинг сообщения: 0
почти сам. Написал его по примеру с гугла, подробно разбирая.
Кстати, BOB51, я тоже с донецка, точнее завтра в универе буду)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мигалка на 16f628a. Нужна ваша консультация
СообщениеДобавлено: Чт авг 09, 2012 21:11:02 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1432
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4599
Откуда: Планета Земля
Рейтинг сообщения: -1
Медали: 1
Получил миской по аватаре (1)
virus33 писал(а):
почти сам.
ссылка :)))

По теме : Минусы в этом коде - программа всегда зациклена, выполняя задержки. Добавить что-то в неё свое почти нереально.
Переходите на таймеры.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мигалка на 16f628a. Нужна ваша консультация
СообщениеДобавлено: Чт авг 09, 2012 22:13:21 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1494
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15331
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
жабко токмо что у средне-младших токмо один вектор входа на все прерывания... даже у 18-й их всего два с двумя приоритетами... совсем тоскно по сравнению с mcs51 :roll:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Мигалка на 16f628a. Нужна ваша консультация
СообщениеДобавлено: Пт авг 17, 2012 00:29:37 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пт авг 20, 2010 18:31:05
Сообщений: 101
Рейтинг сообщения: 0
virus33Я бы кнопку прицепил к 6-му выводу PIC16F628A. Разрешил бы прерывание от внешнего источника по входу INT, в векторе прерывания отслеживал прерывание INT, и запускал бы таймер RP0. А далее, играясь таймером, добился бы необходимого мерцания светодиода. :)


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 21


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y