Форум программистов, компьютерный форум, киберфорум
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/64: Рейтинг темы: голосов - 64, средняя оценка - 4.67
6 / 6 / 1
Регистрация: 05.03.2009
Сообщений: 88

работа с PIC16F877

05.06.2009, 17:51. Показов 12862. Ответов 65
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
в общем мне нада сделать прерывание... тоисть када я буду нажимать на кнопку то по RB0/INT даст прерывание, в котором при каждом нажатии на кнопку будет ФЛАГ менятся с 0 на 1.... в основной программе мы смотрим если ФЛАГ =1 то бегущая строка диодов бежит в одну сторону.... если ФЛАГ =0 то диоды бегут в другую сторону... вот так...

и как всегда код в котором я не могу сохранить значения регистров

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
#include <P16F877.INC>
FLAG EQU 0x30;
      ORG 0;
      bsf STATUS,RP0
      clrf TRISB
      GOTO START
      bcf          STATUS,RP0
      ORG 4;
 
    MOVWF    W_TEMP;
    SWAPF    STATUS,W;
    clrf    STATUS;
    MOVWF    STATUS_TEMP;
    MOVF    PCLATH,w;
    MOVWF    PCLATH_TEMP;
 
      BTFSS     INTCON,INTF;
      GOTO     INTERRUPT;
      INCF     FLAG,1;
      MOVF     FLAG,W;
      SUBLW     .2;
      MOVLW     .1;
      BTFSC    STATUS,Z;
      MOVWF     FLAG;
      BCF          INTCON,INTF;
INTERRUPT:
    MOVf    PCLATH_TEMP,w;
    MOVWF    PCLATH;
    SWAPF    STATUS_TEMP,w;
    MOVWF    STATUS;
    SWAPF    W_TEMP,F;
    SWAPF    W_TEMP,w;
    RETFIE;
START:
        MOVLW     .1;
        MOVWF     FLAG;
BTFSS     FLAG,1;
goto        label;
goto         label2;
label:
        MOVLW     b'11000000';
        MOVWF     PORTD;
        RRF          PORTD,1;
        GOTO     label;
label2:
        RLF          PORTD,1;
        GOTO     label2;
END
кто что посоветует ? вложение с ошибками ниже )
Миниатюры
работа с PIC16F877  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.06.2009, 17:51
Ответы с готовыми решениями:

Работа с RTC DS1307 по I2C (PIC16F877)
При эмуляции схемы в Proteus светодиод D1 начинает мигать. Почему схема работает только с резистором R4 на 10к? void main() ...

Счётчик импульсов на PIC16F877 + работа с АЦП
Всем доброго дня. Хочу реализовать пульсометр на PIC16F877 в протеусе. Для начала решил упростить задачу путём вывода на дисплей...

MPLAB PIC16F877
Здравствуйте Я тут новичок, взялся за голову, начал учиться Мне нужна ваша помощь, надеюсь, что вы поможете Не могу сделать...

65
инженер-системотехник
 Аватар для Haster
111 / 111 / 5
Регистрация: 10.03.2009
Сообщений: 533
05.06.2009, 19:11
Блин, вроде 21 век на дворе, зачем писать на ASMе, если полно СИшных компиляторов...
Я правда писал под 18-ые пики, но и под 16 тоже есть...
Там все проще )))
А вообще, на сколько я помню, в даташитах на МК приводят куски кода с организацией прерываний
1
6 / 6 / 1
Регистрация: 05.03.2009
Сообщений: 88
05.06.2009, 19:24  [ТС]
ну вот предмет у меня в универе такой "программирование микрокантроллеров" все на ассемблере... если можеш то выслушаю любые добавки
0
инженер-системотехник
 Аватар для Haster
111 / 111 / 5
Регистрация: 10.03.2009
Сообщений: 533
06.06.2009, 17:46
Лень искать MPLAB, если все еще не разобрался, до дай ссылку, откуда его скачать можно...

Судя по ошибкам, у тебя не определены переменные W_TEMP, STATUS_TEMP, PCLATH_TEMP...
1
6 / 6 / 1
Регистрация: 05.03.2009
Сообщений: 88
06.06.2009, 19:42  [ТС]
так скажи как их определить ))))
0
инженер-системотехник
 Аватар для Haster
111 / 111 / 5
Регистрация: 10.03.2009
Сообщений: 533
06.06.2009, 20:34
Такс, судя по тому, что ты используешь команду MOVWF с этими переменными, то это не что иное, как переопределение регистров общего назначения...
Попробуй так:
Assembler
1
2
3
W_TEMP EQU 0x31;
STATUS_TEMP EQU 0x32;
PCLATH_TEMP EQU 0x33;
Соответственно вставь это после инклуда

И еще вариант: написать на Си, затем при компиляции сделать MAP-файл и посмотреть получившийся ассемблерный код ))
1
6 / 6 / 1
Регистрация: 05.03.2009
Сообщений: 88
06.06.2009, 21:59  [ТС]
на одном форуме мне посоветовали убрать _temp ... сделал, и все скомпилило )))

но вот НЕХ файл када подключаю в протеусе то там не корректно прога работает )))
0
инженер-системотехник
 Аватар для Haster
111 / 111 / 5
Регистрация: 10.03.2009
Сообщений: 533
06.06.2009, 23:10
Ну естественно, что она будет работать не корректно. Т.к. ты просто подогнал синтаксис, чтобы скомпилировалась прога, нарушив тем самым логику работы...
Попробуй добавить описания, как я писал раньше.
Если не покатит, то завтра поставлю MPLAB... Протеус у меня уже стоит...
1
6 / 6 / 1
Регистрация: 05.03.2009
Сообщений: 88
07.06.2009, 16:35  [ТС]
большое спасибки !!!! с утричка все сделаю и отпишусь.... а вообще протеус интересная штукенсия ))))

Добавлено через 15 часов 53 минуты 46 секунд
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
#include <P16F877.INC>
FLAG EQU 0x30;
W_TEMP EQU 0x31
STATUS_TEMP EQU 0x31
PCLATH_TEMP EQU 0x31
count   EQU 0x35;
      ORG 0;
      bsf STATUS,RP0
      clrf TRISD
      GOTO START
      bcf          STATUS,RP0
      ORG 4;
 
    MOVWF   W_TEMP;
    SWAPF   STATUS,W;
    clrf    STATUS;
    MOVWF   STATUS_TEMP;
    MOVF    PCLATH,w;
    MOVWF   PCLATH_TEMP;
      BTFSS     INTCON,INTF;
      GOTO     INTERRUPT;
      INCF     FLAG,1;
      MOVF     FLAG,W;   
      SUBLW     .1;
      MOVLW     .0;
      BTFSC    STATUS,Z;
      MOVWF     FLAG;
      BCF          INTCON,INTF;
INTERRUPT:
    MOVf    PCLATH_TEMP,w;
    MOVWF   PCLATH;
    SWAPF   STATUS_TEMP,w;
    MOVWF   STATUS;
    SWAPF   W_TEMP,F;
    SWAPF   W_TEMP,w;
    RETFIE;
START:
        MOVLW     .1;
        MOVWF     FLAG;
        MOVLW     d'11000000';
        MOVWF     PORTD;
BTFSS     FLAG,1;
goto        label;
goto        label2;
label:
        RLF          PORTD,1;
        call    delay;
        GOTO     label;
label2:
        RRF          PORTD,1;
        call    delay;
        GOTO     label2;
 
delay:
        movlw .30       ;AA9
        movwf count
LOOP:   DECFSZ count,f
        goto LOOP
        return
        end
END
ВОТ ))) СКОМПИЛИЛО БЕЗ ОШИБОК.... НО ПРЕРЫВАНИЕ НЕ ХОЧЕТ РАБОТАТЬ....
0
6 / 6 / 1
Регистрация: 05.03.2009
Сообщений: 88
07.06.2009, 16:39  [ТС]
вот схема протеуса... када я нажму на кнопку то диоды в другую сторону должны побежать.... и так с каждым нажатием на кнопку... насколько я понял то перывание не работает (((
Миниатюры
работа с PIC16F877  
0
инженер-системотехник
 Аватар для Haster
111 / 111 / 5
Регистрация: 10.03.2009
Сообщений: 533
07.06.2009, 16:49
Во-первых, у тебя переменные W_TEMP, STATUS_TEMP,PCLATH_TEMP указывают на один регистр, что не верно... Присваивай им разные (как я тебе выше писал, т.е.
W_TEMP EQU 0x31
STATUS_TEMP EQU 0x32 и т.д)
Второй момент - это протеус... Выставил ли ты частоту работы МК? Смотрю, внешний кварц у тебя не подключен... проверь правильность настроек )
1
инженер-системотехник
 Аватар для Haster
111 / 111 / 5
Регистрация: 10.03.2009
Сообщений: 533
07.06.2009, 16:56
Кстати, кнопка тоже подключена не верно...
Ибо в одном случае ножка весит в "воздухе" и ловит помехи, а при замыкании
вообще образуется петля.

Вкладываю рисунок, как примерно должно выглядеть
Миниатюры
работа с PIC16F877  
1
Флудер
 Аватар для Ensase
195 / 33 / 11
Регистрация: 23.03.2007
Сообщений: 334
07.06.2009, 21:09
а чё трудно спаять?
так ведь неинтересно
0
инженер-системотехник
 Аватар для Haster
111 / 111 / 5
Регистрация: 10.03.2009
Сообщений: 533
07.06.2009, 21:50
Нафига паять, чтоб потом спалить все это от неверно-написанной проги или от неверно припаяных элементов ..
1
Флудер
 Аватар для Ensase
195 / 33 / 11
Регистрация: 23.03.2007
Сообщений: 334
07.06.2009, 22:44
паять и программировать нужно правильно.
и датащиты читать
на реальном железе интереснее работать
а эту ерунду можно и в мплаб сим прогнать, хотя тут сразу всё видно
0
6 / 6 / 1
Регистрация: 05.03.2009
Сообщений: 88
08.06.2009, 00:04  [ТС]
мужики )) ваще ниче не пойму ))))) вот второе заземление не могу подулючить (((

ич е то за стрелка над резистором ???

регистры переназначил )

Добавлено через 45 секунд
помогите плз )))) сдавать во вторник (((((
0
инженер-системотехник
 Аватар для Haster
111 / 111 / 5
Регистрация: 10.03.2009
Сообщений: 533
08.06.2009, 00:16
Ensase, мы люди, а не роботы... Хотя и роботы ошибаются, поэтому учиться стоит на таких вещах, как Протеус, чтобы зря деньги не тратить и чтоб током не убило... Не бывает такого, чтоб сразу и без ошибок, так и охоту чем-то заниматься отобъет.

buba3230, прикрепляю рисунок, где брать землю и питание(тот самый треугольник)... Если не прокатит, то завтра постараюсь на работе сделать... Только ссылку найди, где MPLAB качнуть можно.
1
инженер-системотехник
 Аватар для Haster
111 / 111 / 5
Регистрация: 10.03.2009
Сообщений: 533
08.06.2009, 00:16
Вот сам рисунок
Миниатюры
работа с PIC16F877  
1
6 / 6 / 1
Регистрация: 05.03.2009
Сообщений: 88
08.06.2009, 00:20  [ТС]
я тебе МП ЛАб в аську скину ))))) а если нет то щас ссылку найду ))) просто очень нада ... единственный долг по сессии (((

Добавлено через 31 секунду
а рисунок чето не работает ((

Добавлено через 2 минуты 32 секунды
заземление не могу выкинуть (((
0
инженер-системотехник
 Аватар для Haster
111 / 111 / 5
Регистрация: 10.03.2009
Сообщений: 533
08.06.2009, 00:24
В смысле выкинуть не можешь? Тыкай на него, а затем на поле рядом с процом, он там его и разместит
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.06.2009, 00:24
Помогаю со студенческими работами здесь

светодиодные Эффекты на МК PIC16F877
Дорогие юзеры форума помогите пожалйуста написать код на СИ для МК PIC16F877 В MPLAB․мне нужно создать несколько Эффектов с помощью...

Бегущая строка на PIC16F877
Доброе время суток! Прошу помочь в написании команд для PIC16F877. Нудно сделать бегущую строку из светодиодов, схему прилагаю… ...

Есть ли INT2 в PIC16F877?
Есть ли INT2 в PIC16F877?

ПП задержки для PIC16F877
Доброго времени суток! К сожалению у меня нет опыта в компилировании кода на ассемблере. Прошу помочь с увеличением ПП задержки. Я...

Датчик освещенности на pic16f877
Помогите пожалуйста поправить код. Выводит по USORT только 0-и. Где ошибка? Прилагаю проект в PROTEUS. list p=16F877 ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
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
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru