Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: terrarus, ivan_fd  
Симуляция 16F874, помощи прошу
Feo Дата: Сб, 09.10.2010, 23:09  |                                                                                                                Сообщение # 1
Группа: Пользователи
Ранг:  Новенький
Сообщений: 12
Репутация: 0   ±
Замечания:   ±
На сайте с 16.03.2010

Статус: Offline

Странная проблема мена постигла, прошу помощи.
Итак, пишу простейшую пробную программку - мигание светодиода.
в microcode studio 3.0.0.5, использую компилятор пикбейсик про версии 2.44 и 2.50.
В протеусе 7.4 SP3 в новом проекте сталю только МК 16f874 и задаю асм файл этой простейшей программы. Под МК появляется надпись пути доступ к HEX файлу моей программы. запускаю симуляцию и всегда вижу одно и тоже - сигнал на 17-й ноге RC6/tx/ck. пробовал компилировать разные программки простейшие - результат всегда один.
Что же я делаю не так?
Большое спасибо за помощь новичку.
ЯНДЕКС Дата: 09.10.2010
mikhail09p Дата: Вс, 10.10.2010, 10:19  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 481
Репутация: 14   ±
Замечания:   ±
На сайте с 04.05.2010

Статус: Offline

Проэкт ПОЛНОСТЬЮ в студию, тогда и помогут.
Тут не гадают на кофейной гуще happy
Feo Дата: Вс, 10.10.2010, 19:00  |                                                                                                                Сообщение # 3
Группа: Пользователи
Ранг:  Новенький
Сообщений: 12
Репутация: 0   ±
Замечания:   ±
На сайте с 16.03.2010

Статус: Offline

Конечно, сейчас все добавлю.

Во вложении файл проекта протеуса
В архиве набор файлов, которые получаю после компиляции
Сама программа взята с этого сайта, автора к сожалению не помню:

' ---------------------[Описание программы]-------------------------------------------
' Простая программа, заставляющая мигать 10 раз светодиод, включая его
' на одну секунду, а затем отключая на одну секунду.
' Светодиод должен быть подключен к выводу 0 порта PORTB
' катодом на землю и анодом на вывод порта.
' Для ограничения тока через светодиод подключите его через 150-омный резистор.
' ---------------------[Программа в формате PBPro]-------------------------------------

Symbol LED = 0 ' Переобозначить вывод 0 порта PORTB как LED

TRISB = %11111110 ' Сконфигурировать выводы RB7…RB1 порта PORTB как входы, а вывод
' RB0 — как выход
x var byte ' Определить вспомогательную переменную размером в byte

init: ' Инициализация

x = 0
portb.0 = 0

main: ' Метка начала основной программы

if x < 9 then gosub onoff ' Если х менее 9 выполнить подпрограмму onoff
x = x + 1 ' инкрементировать х
if x = 9 then END ' Если произошло 10 морганий остановить программу
goto main ' Перейти к метке начала программы, чтобы все началось сначала

END ' Эту строку вставлять не обязательно, но лучше пусть она тут будет
' на случай, если программа засбоит и начнет делать что-то не то

onoff: ' Подпрограмма моргания светодиода
High LED ' Установить ВЫСОКИЙ уровень (+5 В) на выводе 0, чтобы зажечь
' светодиод
Pause 100 ' Ждать 100 миллисекунд (0,1 секунду)

Low LED ' Установить НИЗКИЙ уровень (0 В) на выводе 0, чтобы погасить
' светодиод
Pause 100 ' Ждать 100 миллисекунд (0,1 секунду)

return ' Выход из подпрограммы в то место откуда она была вызвана

Прикрепления: first.rar (31.6 Kb) · first.dsn (68.5 Kb)
ivan_fd Дата: Вс, 10.10.2010, 19:21  |                                                                                                                Сообщение # 4
Группа: Модераторы
Ранг:  Специалист
Сообщений: 894
Репутация: 124   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Во первых у Вас в протеусе выбран контроллер 16F874 а в Microcode Studio 16F876.
И вывод MCLR нужно подключить к VDD.
Feo Дата: Вс, 10.10.2010, 19:36  |                                                                                                                Сообщение # 5
Группа: Пользователи
Ранг:  Новенький
Сообщений: 12
Репутация: 0   ±
Замечания:   ±
На сайте с 16.03.2010

Статус: Offline

Quote (ivan_fd)
Во первых у Вас в протеусе выбран контроллер 16F874 а в Microcode Studio 16F876. И вывод MCLR нужно подключить к VDD.

Все поправил - результат отрицательный

Прикрепления: second.dsn (57.7 Kb) · second.rar (16.5 Kb)
ivan_fd Дата: Вс, 10.10.2010, 19:55  |                                                                                                                Сообщение # 6
Группа: Модераторы
Ранг:  Специалист
Сообщений: 894
Репутация: 124   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

А у меня почему то работает.

В протеусе Вам не нужно указывать ASM файл. В Program File укажите SECOND.HEX.

Feo Дата: Вс, 10.10.2010, 21:00  |                                                                                                                Сообщение # 7
Группа: Пользователи
Ранг:  Новенький
Сообщений: 12
Репутация: 0   ±
Замечания:   ±
На сайте с 16.03.2010

Статус: Offline

Quote (ivan_fd)
А у меня почему то работает. В протеусе Вам не нужно указывать ASM файл. В Program File укажите SECOND.HEX.

А у меня беда какая-то. Не важно что выбирать ASM или HEX в результате протеус все-равно подтягивает HEX.

Смотрите вложение, что я получаю в итоге симуляции.

Что самое ужасное, прошив контроллер этой компиляцией у меня действительно так и работает. Т.е диод не мигает, но постоянно висит высокий сигнал на ноге Tx

Прикрепления: 3903435.jpg (177.0 Kb)

Сообщение отредактировал Feo - Вс, 10.10.2010, 21:02
ivan_fd Дата: Вс, 10.10.2010, 21:15  |                                                                                                                Сообщение # 8
Группа: Модераторы
Ранг:  Специалист
Сообщений: 894
Репутация: 124   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Выкладываю Вам, то как у меня работает.
А в реальной схеме нужно биты конфигурации установить, кварц поставить. Да и в MicroCode у Вас наверное частота 4 Мгц, а в Протеусе стояло 1Мгц.
Прикрепления: Second.zip (11.5 Kb)
Feo Дата: Вс, 10.10.2010, 22:04  |                                                                                                                Сообщение # 9
Группа: Пользователи
Ранг:  Новенький
Сообщений: 12
Репутация: 0   ±
Замечания:   ±
На сайте с 16.03.2010

Статус: Offline

не открывается, говорит создан в более поздней версии протеуса.

В железе я подключал к кварцу на 4 Мгц, + 2 рекомендованных конденсатора на несколько пикофарад в соответствии с даташитом, одной лапой на кварц, а другой на землю.
+5 от прецезионного источника питания подаю на MCRL(1 лапа по даташиту) и vdd(20 лапа ппо даташиту) , землю на эти кондеры и Vss(19 лапа по даташиту).

ivan_fd Дата: Вс, 10.10.2010, 22:08  |                                                                                                                Сообщение # 10
Группа: Модераторы
Ранг:  Специалист
Сообщений: 894
Репутация: 124   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Proteus у меня 7.7 SP2.

Quote (Feo)
В железе я подключал к кварцу на 4 Мгц, + 2 рекомендованных конденсатора на несколько пикофарад в соответствии с даташитом, одной лапой на кварц, а другой на землю.

Это все хорошо, а биты конфигурации Вы выставили в MicrocodeStudio?

Сообщение отредактировал ivan_fd - Вс, 10.10.2010, 22:08
Feo Дата: Вс, 10.10.2010, 22:10  |                                                                                                                Сообщение # 11
Группа: Пользователи
Ранг:  Новенький
Сообщений: 12
Репутация: 0   ±
Замечания:   ±
На сайте с 16.03.2010

Статус: Offline

Quote (ivan_fd)
Это все хорошо, а биты конфигурации Вы выставили в MicrocodeStudio?

Прошу прощения за свою неосведомленность, где их смотреть эти биты и какие выставлять?

Большое спасибо!!!

ЯНДЕКС Дата: 10.10.2010
ivan_fd Дата: Вс, 10.10.2010, 22:22  |                                                                                                                Сообщение # 12
Группа: Модераторы
Ранг:  Специалист
Сообщений: 894
Репутация: 124   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

В даташите на PIC есть описание битов конфигурации, тем более на 16f876 есть русский.

А в Компиляторе пишите, что то типа этого:

Code
@ device PIC16F876A, HS_OSC, WDT_OFF, PWRT_ON,PROTECT_OFF, CPD_OFF, BOD_OFF, LVP_OFF, WRT_OFF
Feo Дата: Вс, 10.10.2010, 23:02  |                                                                                                                Сообщение # 13
Группа: Пользователи
Ранг:  Новенький
Сообщений: 12
Репутация: 0   ±
Замечания:   ±
На сайте с 16.03.2010

Статус: Offline

Ваш код работает, из этого следует - дело в компиляторе.
Вашу строку вставил в текст программы - не работает моя программа.
surprised
  • Страница 1 из 1
  • 1
Поиск: