Форум программистов, компьютерный форум, киберфорум
Микропроцессоры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/16: Рейтинг темы: голосов - 16, средняя оценка - 4.88
 Аватар для ПавелИтель
9 / 9 / 3
Регистрация: 21.02.2010
Сообщений: 75

ПП задержки для PIC16F877

25.04.2011, 16:21. Показов 3408. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
К сожалению у меня нет опыта в компилировании кода на ассемблере.
Прошу помочь с увеличением ПП задержки.
Я рассчитал задержку для 250 микросекунд, а нужно 250 миллисекунд.
Вот программа «Бегущая строка» с задержкой 250 микросекунд:
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
LIST P=16F877
#INCLUDE <P16F877.INC>
COUNT EQU 0CH
W1 EQU 0DH
    ORG 0
START: BSF STATUS, RP0
    CLRF TRISB
    BCF STATUS,RP0
RUN: MOVLW B'00000011'
    MOVWF W1
M1: MOVF W1,W
    MOVWF PORTB
    CALL DELAY
    RRF W1,F
    BTFSC STATUS,C
    GOTO M2
    BCF W1,7
    GOTO M1
M2: BSF W1,7
    GOTO M1
    GOTO RUN
 
DELAY: MOVLW 62
    MOVWF COUNT
LOOP: NOP
    DECFSZ COUNT,F
    GOTO LOOP
    NOP
    RETURN
END
Теперь нужно немного переделать задержку. Для этого внешний цикл 250, а внутренний 248
Вот как-то так. но при компиляции выдает ошибку.
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
LIST P=16F877
#INCLUDE <P16F877.INC>
COUNT EQU 0CH
R1 EQU 0x20
W1 EQU 0DH
    ORG 0
START: BSF STATUS, RP0
    CLRF TRISB
    BCF STATUS,RP0
RUN: MOVLW B'00000011'
    MOVWF W1
M1: MOVF W1,W
    MOVWF PORTB
    CALL DELAY
    RRF W1,F
    BTFSC STATUS,C
    GOTO M2
    BCF W1,7
    GOTO M1
M2: BSF W1,7
    GOTO M1
    GOTO RUN
 
DELAY: MOVLW 250
    MOVWF COUNT
 
T997: MOVLW 248
    MOVWF R1
M1: NOP
    DECFSZ R1,F
    GOTO M1
    RETURN
 
LOOP: CALL T997
    DECFSZ COUNT,F
    GOTO LOOP
    NOP
    RETURN
END
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.04.2011, 16:21
Ответы с готовыми решениями:

Написать программу для PIC16F877 для работы с LCD дисплеем LM016L
День добрый, форумчане. Только начинаю разбираться с пиками и асмом. Столкнулся с недопониманием, почему во время старта симуляции в...

подскажите тип ЖКИ индикатора для связи PIC16F877
желательно со встроенным контроллером для отображения цифро-буквенной инфы размер индикатора примерно 10 на 15 см

Разработайте функцию, реализующую для момента времени t расчет выхода y для устройства задержки
Разработайте функцию, реализующую для момента времени t расчет выхода y для устройства задержки: на входе – значения сигнала x(i) в...

4
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
25.04.2011, 19:24
А вы знаете что длительность задержки зависит от частоты задающего генератора?
Вот подпрограмма задержки на 250 мс, при частоте задающего генератор 4МГц.
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
DELAY:      Movlw       169
            Movwf       Reg_1
            Movlw       69
            Movwf       Reg_2
            Movlw       2
            Movwf       Reg_3
LOOP:       Decfsz      Reg_1,F
            Goto        LOOP
            Decfsz      Reg_2,F
            Goto        LOOP
            Decfsz      Reg_3,F
            Goto        LOOP
            Return
В начале программы пропишите регистры Reg_1, Reg_2 и Reg_3
0
Эксперт по компьютерным сетямЭксперт NIX
 Аватар для Dmitry
13440 / 7534 / 829
Регистрация: 09.09.2009
Сообщений: 29,554
25.04.2011, 19:28
лучше научитесь пользоваться прерываниями и таймерами. тупо висеть в цикле четверть секунды - на кой тогда процессор?...
0
 Аватар для ПавелИтель
9 / 9 / 3
Регистрация: 21.02.2010
Сообщений: 75
15.05.2011, 15:42  [ТС]
Я понимаю, что лучше… Но это задание и в нем сказано реализовать задержку именно так.
Нашел пример, переделал его, показал - подходит!!!
Вот программа:
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
LIST P=16F877
#INCLUDE <P16F877.INC>
COUNT EQU 0CH
R1 EQU 0x20
W1 EQU 0DH
    ORG 0
START: BSF STATUS, RP0
    CLRF TRISB
    BCF STATUS,RP0
     MOVLW B'00000011'
    MOVWF W1
M1: MOVF W1,W
    MOVWF PORTB
DELAY: MOVLW .250
        MOVWF COUNT
LOOP: CALL T997
        DECFSZ COUNT,F
        GOTO LOOP
    RRF W1,F
    BTFSC STATUS,C
    GOTO M2
    BCF W1,7
    GOTO M1
M2: BSF W1,7
    GOTO M1
T997: MOVLW .248
    MOVWF R1
M3: NOP
    DECFSZ R1,F
    GOTO M3
        NOP
    RETURN
     END
Потом мне ее защищать, кому не тяжело прошу помочь – сделайте комментарий буквально к каждой строке.
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
07.06.2011, 07:13
Цитата Сообщение от Dmitry Посмотреть сообщение
учше научитесь пользоваться прерываниями и таймерами. тупо висеть в цикле четверть секунды - на кой тогда процессор?...
У моего троюродного брата точно такой же подход.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.06.2011, 07:13
Помогаю со студенческими работами здесь

Разработайте функцию, реализующую для момента времени t расчет выхода y для устройства задержки: на входе – значения
Разработайте функцию, реализующую для момента времени t расчет выхода y для устройства задержки: на входе – значения сигнала x(i) в...

Подпрограмма задержки для 50 мс
Нужно составить программу задержки для 50 мс. Добавлено через 30 минут Нужно сделать языком команд Ассемблер

Подпрограмма задержки для клавиатуры
Для чего это надо ? ;=================================================================== ;Подпрограмма задержки для клавиатуры ...

Программа для задержки нажатия кнопки
Помогите написать программу(или дайте ссылку, я не нашел), для регулирования, времени удержания нажатия определенных кнопок, после их...

Сигнал во время задержки для AVR
Добрый вечер! У меня такая проблема. В обработчике прерываний по переполнению таймера 0 происходит присвоение значения переменной...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru