Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
Neitro
0 / 0 / 0
Регистрация: 05.12.2013
Сообщений: 54
1

Контроль светодиодов в таймере (PIC16F676, ASM)

18.07.2015, 13:03. Просмотров 1232. Ответов 4
Метки нет (Все метки)

На микроконтроллере PIC16F676 не получается добавить таймер чтобы по нулевым значениям через таймер с паузой в секунду зажигались лампочки, буду благодарен за помощь.
Контроль светодиодов в таймере (PIC16F676, ASM)

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
    processor 16F676    ;Используемый процессор.
    include "p16f676.inc"   ;Заголовочный файл для микроконтроллера PIC16F877.
 
    org 0x0000      ;Вектор сброса процессора, после сброса программа
                ;начинает выполняться отсюда.
 
    goto Start      ;Обход вектора прерывания и блока подпрограмм.
 
    org 0x0004      ;Вектор прерывания.
LOOP1
Start               ;Тело программы начинается здесь.
    clrf PORTC      ;Все выводы PORTD переводим в '0'
 
    movlw b'00100000'   ;
    movwf STATUS        ;Выбираем Bank 1 RAM (адреса 80h - FFh)
 
    movlw b'00110110'   ;
    movwf TRISC     ;Все линии PORTc переключаем на выход
    clrf STATUS     ;Возвращаемся в Bank 0 RAM (адреса RAM 00h - 7Fh)
 
    bcf PORTC,1 
    bcf PORTC,2
    bcf PORTC,4
    bcf PORTC,5 
    call Pause
Loop
    bsf PORTC,1 
    bsf PORTC,4 
    bcf PORTC,2 
    bcf PORTC,5     
    call Pause
    bsf PORTC,2 
    bsf PORTC,4 
    bcf PORTC,1 
    bcf PORTC,5 
    call Pause 
    bsf PORTC,2 
    bsf PORTC,5 
    bcf PORTC,1 
    bcf PORTC,4 
    call Pause 
    bsf PORTC,1 
    bsf PORTC,5 
    bcf PORTC,2 
    bcf PORTC,4 
    call Pause 
    goto Loop       ;Бесконечный цикл.
 
Pause        
        MOVWF   LOOP1
DELAY_10USEC_1:
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        DECFSZ  LOOP1, F
        GOTO    DELAY_10USEC_1
        RETURN
                            ; если переполнен выход из пп.(возврат по стеку)
 
    END ;Конец исходного кода программы
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.07.2015, 13:03
Ответы с готовыми решениями:

Считывание кнопок и контроль светодиодов (MSP430, IAR Embedded Workbench, Cи)
Доброго времени суток форумчанам. Мне нужно запрограммировать Микроконтраллер MSP430. Для...

Последовательное зажигание светодиодов по кнопке (ATmega8515, ASM)
Добрый день. Требуется помощь для написания программы на ассемблере под AVR ATmega8515...

Нет контроля светодиодов по последовательному каналу (ASM, ATMega128)
.include "m128def.inc" ldi r16, 0b00011000 sts UCSR1B, r16 ldi r16, 0b110 sts UCSR1C, R16...

PIC16F676
делаю плату и не могу найти диаметр для PIC16F676

PIC16F676. Конфигурация МК
Уважаемые форумчане помогите новичку. Я пытаюсь написать программу под pic16f676. вернее пытаюсь...

4
Voland_
1699 / 1043 / 98
Регистрация: 04.01.2010
Сообщений: 3,535
18.07.2015, 14:02 2
чтобы сделать вызов прерывания, вам надо в таблицу векторов вписать команду, которая организует переход к функции прерывания. И написать эту функцию, выход из которой будет осуществляться согласно ассемблеру PIC.
А у вас на месте этой команды висит функция Start.
0
Neitro
0 / 0 / 0
Регистрация: 05.12.2013
Сообщений: 54
18.07.2015, 15:36  [ТС] 3
А можно пример какой нибудь? Заранее спасибо
0
Voland_
1699 / 1043 / 98
Регистрация: 04.01.2010
Сообщений: 3,535
18.07.2015, 16:48 4
Лучший ответ Сообщение было отмечено Neitro как решение

Решение

Цитата Сообщение от Neitro Посмотреть сообщение
А можно пример какой нибудь? Заранее спасибо
я бы для начала пошерстил в Сети. Вот, к примеру.
0
pyzhman
809 / 499 / 70
Регистрация: 15.05.2012
Сообщений: 2,826
18.07.2015, 17:23 5
В приведенной программе
Assembler
1
org 0x0004      ;Вектор прерывания.
Именно с этого места нужно писать обработчик прерывания.
0
18.07.2015, 17:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.07.2015, 17:23

Работа с АЦП (PIC16F676)
МК pic16f676 Задача: попробовать сделать АЦП. Код программы: #include <htc.h> ...

Delphi и ASM - не работает вызов функции Invoke через asm
В Delphi не работает вызов функции Invoke через asm. часть кода: asm invoke...

Создание проекта с участием c++ и asm модулей. Ошибка asm модуля
Доброго времени суток! Подскажите, пожалуйста, как исправить данную ошибку (А2008)?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru