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

 
 
> очень нужна помощь с пиком
Mari-999
сообщение Oct 31 2006, 20:07
Сообщение #1


Участник
*

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



помогите, пожалуйста с пиком 16f84А, лаба заключается в следующем на любой вывод подключить светодиод, когда 0 светодид горит - 2 секунды, когда 1 светодиод не горит 1 секунду...и так цикл, прогу надо написать на ассемблере, и подробно опишите пожалуйста, чтоб разобраться, спасибо
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
napper
сообщение Nov 7 2006, 16:14
Сообщение #2


Участник
*

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



Условий Вашей задачи я не знаю, поэтому генератор взял RC и частоту 4 МГц, выводим на 0 ногу порта B:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

LIST p=16F84A ;объявляем тип используемого МК
include "P16F877a.inc"
__CONFIG _RC_OSC & _CP_OFF & _BODEN_OFF & _PWRTE_ON & _WDT_OFF
;_RC_OSC -тип генератора
;_CP_OFF -бит защиты отключен
;_BODEN_OFF -запретить МК делать сброс при снижении напряжения питания
;_PWRTE_ON -разрешаем таймер включения питания
;_WDT_OFF -запрещаем сторожевой таймер

CBLOCK 0x0C
Count1 ;старший байт счетчика
Count2 ;средний байт счетчика
Count3 ;младший байт счетчика
ENDC

ORG 0x0000
goto Start

Start
bsf STATUS,RP0
bcf STATUS,RP1 ;переключаемся на Банк 1
clrf OPTION_REG ;конфигурация МК
clrf TRISA
clrf TRISB ;все ноги на вывод
bcf STATUS,RP0 ;переключаемся на Банк 0
Blink1 ;метка 1
clrf PORTB ;выставляем 0 на всех ножках порта В
movlw 0xFF
movwf Count3 ;устанавливаем счетчик на 2 секунды
movlw 0x30
movwf Count2
movlw 0x0B
movwf Count1
Blink2 ;метка2
decfsz Count3,f
goto Blink2
decfsz Count2,f
goto Blink2
decfsz Count1,f
goto Blink2 ;декрементируем (уменьшаем) счетчик и проверяем, если он стал нулевым,
movlw b'00000001' ;то выставляем на нужной ноге 1
movwf PORTB
movlw 0xFF
movwf Count3 ;устанавливаем счетчик на 1 секунду
movlw 0x15
movwf Count2
movlw 0x06
movwf Count1
Blink3 ;метка 3
decfsz Count3,f ;опять декрементируем счетчик с той же целью
goto Blink3
decfsz Count2,f
goto Blink3
decfsz Count1,f
goto Blink3
goto Blink1 ;счетчик = 0, переходим на метку 1

end

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

P.S. Счетчик выставил не совсем точно - ноль на ноге 2,008 сек, единица - 1,002 сек
...Лень было подгонять



Е-мое, форум не поддерживает форматирование, табуляция сбилась.
Если программа все еще нужна, пишите, пришлю по e-mail
Go to the top of the page
 
+Quote Post
Edmundo
сообщение Nov 9 2006, 09:35
Сообщение #3


Мастер
****

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



Цитата(napper @ Nov 7 2006, 19:14) *
Е-мое, форум не поддерживает форматирование, табуляция сбилась.

Форум поддерживает форматирование, если использовать BB-тэг code (кнопка ):

Код
    LIST    p=16F84A;объявляем тип используемого МК
    include "P16F877a.inc"
        __CONFIG _RC_OSC & _CP_OFF & _BODEN_OFF & _PWRTE_ON & _WDT_OFF    
;_RC_OSC -тип генератора
;_CP_OFF -бит защиты отключен
;_BODEN_OFF -запретить МК делать сброс при снижении напряжения питания
;_PWRTE_ON -разрешаем таймер включения питания
;_WDT_OFF -запрещаем сторожевой таймер

    CBLOCK 0x0C
Count1;старший байт счетчика
Count2;средний байт счетчика
Count3;младший байт счетчика
    ENDC

    ORG    0x0000
    goto    Start

Start
    bsf    STATUS,RP0
    bcf    STATUS,RP1;переключаемся на Банк 1
    clrf    OPTION_REG;конфигурация МК
    clrf    TRISA        
    clrf    TRISB;все ноги на вывод
    bcf    STATUS,RP0;переключаемся на Банк 0
Blink1    ;метка 1
    clrf    PORTB;выставляем 0 на всех ножках порта В
    movlw    0xFF
    movwf    Count3;устанавливаем счетчик на 2 секунды
    movlw    0x30
    movwf    Count2
    movlw    0x0B
    movwf    Count1
Blink2    ;метка2
    decfsz Count3,f
    goto    Blink2
    decfsz Count2,f
    goto    Blink2
    decfsz Count1,f
    goto    Blink2;декрементируем (уменьшаем) счетчик и проверяем, если он стал нулевым,
    movlw    b'00000001';то выставляем на нужной ноге 1
    movwf    PORTB
    movlw    0xFF
    movwf    Count3;устанавливаем счетчик на 1 секунду
    movlw    0x15
    movwf    Count2
    movlw    0x06
    movwf    Count1
Blink3    ;метка 3
    decfsz Count3,f;опять декрементируем счетчик с той же целью
    goto    Blink3
    decfsz Count2,f
    goto    Blink3
    decfsz Count1,f
    goto    Blink3
    goto    Blink1;счетчик = 0, переходим на метку 1
    
    end


--------------------
شامل
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Mari-999   очень нужна помощь с пиком   Oct 31 2006, 20:07
- - Herz   Цитата(Mari-999 @ Oct 31 2006, 22:07...   Nov 1 2006, 06:24
- - napper   Цитата(Mari-999 @ Nov 1 2006, 00:07)...   Nov 4 2006, 22:38
|- - upc2   Цитата(napper @ Nov 5 2006, 01:38) [ Что ...   Nov 6 2006, 05:29
- - napper   Схема то хоть такая?   Nov 6 2006, 12:27
|- - upc2   Цитата(napper @ Nov 6 2006, 15:27) Схема ...   Nov 6 2006, 14:03
- - napper   Действительно непонятно: если на ноге 0, то светод...   Nov 6 2006, 15:58
|- - upc2   Цитата(napper @ Nov 6 2006, 18:58) Действ...   Nov 7 2006, 05:25
|- - napper   Я думаю подпрограмму мигания надо организовать вот...   Nov 10 2006, 20:36
|- - Mari-999   [quote name='napper' date='Nov 10 2006...   Nov 14 2006, 12:31
|- - napper   Цитата(Mari-999 @ Nov 14 2006, 15:31...   Nov 14 2006, 13:07
|- - Mari-999   Цитата(napper @ Nov 14 2006, 16:07) Цитат...   Nov 14 2006, 13:52
|- - napper   Полная версия программы: КодLIST p=16F84 INTCON E...   Nov 14 2006, 19:06
|- - Mari-999   Цитата(napper @ Nov 14 2006, 22:06) О рез...   Nov 16 2006, 04:15
|- - Edmundo   Цитата(Mari-999 @ Nov 16 2006, 07:15...   Nov 16 2006, 05:20
|- - napper   Цитата(Mari-999 @ Nov 16 2006, 07:15...   Nov 16 2006, 05:39
|- - Mari-999   Цитата(napper @ Nov 16 2006, 08:39) Цитат...   Nov 16 2006, 06:53
||- - napper   Цитата(Mari-999 @ Nov 16 2006, 09:53...   Nov 16 2006, 07:46
||- - Mari-999   Цитата(napper @ Nov 16 2006, 10:46) Цитат...   Nov 19 2006, 07:06
||- - Edmundo   Цитата(Mari-999 @ Nov 19 2006, 10:06...   Nov 19 2006, 11:51
||- - napper   Цитата(Edmundo @ Nov 19 2006, 14:51) 5 - ...   Nov 19 2006, 15:01
|- - Edmundo   Цитата(napper @ Nov 16 2006, 08:39) А при...   Nov 16 2006, 09:23
- - upc2   napper Написана Си и компилятор выдал аsm- файл.Дл...   Nov 8 2006, 05:34
|- - napper   Цитата(upc2 @ Nov 8 2006, 08:34) napper Н...   Nov 8 2006, 05:42
|- - Mari-999   Цитата(napper @ Nov 8 2006, 08:42) Цитата...   Nov 10 2006, 19:39
|- - napper   КодLIST p=16F84 INTCON EQU 0x0B OPTION EQU ...   Nov 10 2006, 20:23
|- - dosikus   Цитата(Mari-999 @ Nov 10 2006, 22:39...   Nov 11 2006, 09:57
|- - Mari-999   Цитата(dosikus @ Nov 11 2006, 12:57) Цита...   Nov 11 2006, 22:43
- - upc2   Тогда приношу свои извинения. Куда делся автор не ...   Nov 8 2006, 06:10
- - upc2   MPASM старенький компилятор. Пора переходить на MP...   Nov 16 2006, 09:38
- - MariSev   Цитата(Mari-999 @ Oct 31 2006, 20:07...   Nov 21 2006, 21:03


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

 


RSS Текстовая версия Сейчас: 25th July 2025 - 02:41
Рейтинг@Mail.ru


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