Модераторы: PILOT, ManiaK, Mazzi
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Программирование реального PIC12F675, Не работает реальный микроконтроллер 
:(
    Опции темы
BIV
Дата 9.11.2011, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 20.12.2007

Репутация: нет
Всего: 1



Всем доброе время суток!
Наконец-то удалось написать код для микроконтроллера PIC12F675 на ассемблере. В среде протеус светодиодики зажигались когда поступала нужная команда. Собрал реальную схему, проверил все контакты,подавал на площадку, где должен сидеть микроконтроллер, землю или напряжение, все горело как надо. Делаю вывод,что схема собрана правильно. Возникли проблемы с микроконтроллером. Попытался загрузить программу, которую отлаживал в протеусе, вроде бы записалась. Единственное что, на экране поразила одна из надписей:
 Генератор:IN I OSC, I/O function on CLKOUT

Вставил микроконтроллер в схему, подал питание, землю, нулевая реакция, как-будто его и нет.

Ниже рабочий код на протеусе. Почему на реальном чипе он не сработал?
Код

list p=pic12f675
#include <P12F675.INC>
; настройка слова конфигурации микроконтроллера
; _CP_OFF защита программного кода выключена
; _DEBUG_OFF режим отладки выключен
; _WRT_OFF защита записи FLASH выключена
; _CPD_OFF защита памяти EEPROM выключена
; _LVP_OFF режим низковольтового программирования выключен
; _BODEN_ON сброс по снижению питания включен
; _PWRTE_ON таймер задержки по квлючению питания включен
; _XT_OSC использование кварцевого резонатора на 4МГц
__CONFIG _CPD_OFF&_CP_OFF & _BODEN_ON & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT 

ERRORLEVEL 2    ;Вывод только ошибок

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

ANSEL equ 9Fh    ;
ADRESH equ 1Eh    ; Регистры для АЦП
ADRESL equ 9Eh    ;

ADCL equ 21h    ; Результат оцифровки
ADCH equ 22h    ;

SIGNAL equ 23h    ;Подсчет сигнала (Младшие разряды)
SIGNALH equ 24h    ;Подсчет сигнала (Старшие разряды)

METK equ 25h     ;Для метки
CONTROLS equ 26h ;Для настройки

 org 0x00


;------------------------------------------------------
; Начальные настройки
;------------------------------------------------------
bcf STATUS,RP0            ;Выбираем банк 0
movlw b'00000001'
movwf ADCON0
movlw b'01011110' ;Режимы работы компаратора
movwf CMCON

bsf STATUS,RP0            ;Выбираем банк 1

movlw b'00011001'
movwf TRISIO
movlw b'00000001'
movwf ANSEL
movlw b'10001000' ;Настраиваем компаратор  /   4 1х бита, это выбор выходного напряжения Vref  /  Настроено на минимум
movwf VRCON  
bcf STATUS,RP0

;Обнуляем регистры
movlw b'00000000'
movwf SIGNAL                  
movlw b'00000000'
movwf SIGNALH
;------------------------------------------------------

;------------------------------------------------------
; Старт
;------------------------------------------------------
PREOBR
bsf GPIO,1
bsf GPIO,5
bsf GPIO,2

;BTFSS GPIO,4    ; Регулировка порога
BTFSC GPIO,4
GOTO CONTROL    ;

BTFSS CMCON,6    ;
GOTO B0        ; Ищем уровень сигнала
BTFSC CMCON,6    ; выше порога
GOTO B1        ;

goto PREOBR
;------------------------------------------------------

;------------------------------------------------------
; Значения меньше порога
;------------------------------------------------------
B0 ;При 0 гаснет индикатор и сбрасывает на 0 счетчик
movlw b'00000000'
movwf SIGNAL                  
movlw b'00000000'
movwf SIGNALH
goto PREOBR
;------------------------------------------------------

;------------------------------------------------------
; Значения выше порога
;------------------------------------------------------
B1
;Запускающий счетчик
;Отсчитывает 511 тактов

movlw b'00000001'
ADDWF SIGNAL,1

BTFSS SIGNAL,7
GOTO PREOBR
BTFSS SIGNAL,6
GOTO PREOBR
BTFSS SIGNAL,5
GOTO PREOBR
BTFSS SIGNAL,4
GOTO PREOBR
BTFSS SIGNAL,3
GOTO PREOBR
BTFSS SIGNAL,2
GOTO PREOBR
BTFSS SIGNAL,1
GOTO PREOBR
BTFSC SIGNAL,0
GOTO B2
goto PREOBR

B2    ;Продолжение счета
movlw b'00000001'
ADDWF SIGNALH,1 ;Прибавляем след.разряд
BTFSS SIGNALH,0
GOTO MESSAGE
goto PREOBR
;------------------------------------------------------

;------------------------------------------------------
; Сигнализация
;------------------------------------------------------
ALARM
bCf GPIO,1
movlw b'00000000'
movwf SIGNAL
movlw b'00000000'
movwf SIGNALH
;BTFSS GPIO,3
BTFSC GPIO,3
GOTO PREOBR
;BTFSS GPIO,4
BTFSC GPIO,4
GOTO CONTROL
GOTO ALARM
;------------------------------------------------------

;------------------------------------------------------
; Отправка сообщения
;------------------------------------------------------
MESSAGE        
movlw b'00000000'
movwf METK

;01110011 Серийный номер

bcf GPIO,2    ;Ctart
nop        ;
nop        ;    -\___
bcf GPIO,2    ;    ---\_
bcf GPIO,5    ;
nop        ;
bsf GPIO,5    ;

bsf GPIO,2
bcf GPIO,5
nop
bsf GPIO,5

bsf GPIO,2
bcf GPIO,5
nop
bsf GPIO,5

bsf GPIO,2
bcf GPIO,5
nop
bsf GPIO,5
    
bcf GPIO,2
bcf GPIO,5
nop
bsf GPIO,5

bcf GPIO,2
bcf GPIO,5
nop
bsf GPIO,5

bsf GPIO,2
bcf GPIO,5
nop
bsf GPIO,5

bsf GPIO,2
bcf GPIO,5
nop
bsf GPIO,5

bcf GPIO,2    ;Для метки
bcf GPIO,5
nop
bsf GPIO,5


;Отправка кода сигнала
;---------------------------
MESS
movlw b'00000001'    ;Отключаем опорное напряжение
movwf ADCON0
bsf ADCON0,1      ;Запуск преобразования
btfsc ADCON0,1
goto $-1

nop
nop
nop
nop

movf ADRESH,W
movwf ADCH
bsf STATUS,RP0
movf ADRESL,W
bcf STATUS,RP0
movf ADCL

BTFSC ADCL,0
call M1
BTFSS ADCL,0
call M0
BTFSC ADCL,1
call M1
BTFSS ADCL,1
call M0
BTFSC ADCL,2
call M1
BTFSS ADCL,2
call M0
BTFSC ADCL,3
call M1
BTFSS ADCL,3
call M0
BTFSC ADCL,4
call M1
BTFSS ADCL,4
call M0
BTFSC ADCL,5
call M1
BTFSS ADCL,5
call M0
BTFSC ADCL,6
call M1
BTFSS ADCL,6
call M0
BTFSC ADCL,7
call M1
BTFSS ADCL,7
call M0
BTFSC ADCH,0
call M1
BTFSS ADCH,0
call M0
BTFSC ADCH,1
call M1
BTFSS ADCH,1
call M0
bcf GPIO,2

BTFSS CMCON,6
GOTO mess_off
BTFSC CMCON,6
GOTO MESS

mess_off
;-----------------------------

bcf GPIO,2    ;Stop
nop        ;    ___/--
nop        ;    _/----
bsf GPIO,2    ;
GOTO ALARM
;------------------------------------------------------

;------------------------------------------------------
; Подпрограммы отправки сигнала
;------------------------------------------------------
M0
bcf GPIO,2
bcf GPIO,5
nop
bsf GPIO,5
call METKA
return

M1
bsf GPIO,2
bcf GPIO,5
nop
bsf GPIO,5
call METKA
return
;-------------------------------------------------------

;------------------------------------------------------
; Подпрограмма метки
;------------------------------------------------------
METKA
movlw b'00000001'
ADDWF METK,1

BTFSS METK,3
return
BTFSC METK,2
return
BTFSC METK,1
return
BTFSC METK,0
return

bcf GPIO,5
bcf GPIO,2
bsf GPIO,5
movlw b'00000000'
movwf METK
return
;------------------------------------------------------

;------------------------------------------------------
; Процедура регулировки порога
;------------------------------------------------------
CONTROL
movlw b'00000001'
ADDWF SIGNAL,1

BTFSS SIGNAL,7
GOTO CONTROL
BTFSS SIGNAL,6
GOTO CONTROL
BTFSS SIGNAL,5
GOTO CONTROL
BTFSS SIGNAL,4
GOTO CONTROL
BTFSS SIGNAL,3
GOTO CONTROL
BTFSS SIGNAL,2
GOTO CONTROL
BTFSS SIGNAL,1
GOTO CONTROL
BTFSS SIGNAL,0
GOTO CONTROL

bsf STATUS,RP0
BSF VRCON,7 ;Настраиваем чувствительность
BSF VRCON,3

movlw b'00000001'
ADDWF CONTROLS,1
BTFSC CONTROLS,3
BCF CONTROLS,3

BTFSC CONTROLS,0
BSF VRCON,0
BTFSC CONTROLS,1
BSF VRCON,1
BTFSC CONTROLS,2
BSF VRCON,2
BTFSS CONTROLS,0
BCF VRCON,0
BTFSS CONTROLS,1
BCF VRCON,1
BTFSS CONTROLS,2
BCF VRCON,2
bcf STATUS,RP0

CONTR
BTFSC GPIO,4
GOTO CONTR

movlw b'00000000'
movwf SIGNAL
CONTR1
movlw b'00000001'
ADDWF SIGNAL,1

BTFSS SIGNAL,7
GOTO CONTR1
BTFSS SIGNAL,6
GOTO CONTR1
BTFSS SIGNAL,5
GOTO CONTR1
BTFSS SIGNAL,4
GOTO CONTR1
BTFSS SIGNAL,3
GOTO CONTR1
BTFSS SIGNAL,2
GOTO CONTR1
BTFSS SIGNAL,1
GOTO CONTR1
BTFSS SIGNAL,0
GOTO CONTR1

movlw b'00000000'
movwf SIGNAL
GOTO PREOBR
;------------------------------------------------------

END



Это сообщение отредактировал(а) BIV - 9.11.2011, 20:32
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)"
PILOT ManiaK
UniBomb Mazzi

На данный раздел помимо Правил форума распространяются текже следующие правила:


  • Прежде чем создать тему воспользуйтесь поиском или посмотрите в faq. Возможно на форуме уже есть ответ на ваш или близкий к вашему вопрос.
  • В заголовке темы в квадратных скобках обозначьте используемое семейство микроконтроллера: [avr],[pic],[arm].
  • При создании темы с вопросом указывайте участок кода с ошибкой, версию компилятора, схемы подключения, fuse биты и прочие данные, которые помогут найти правильный ответ. Для форматирования текста программ используйте кнопку код.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Для флуда, просьб выполнить задание, поиска партнёров или исполнителей существуют свои разделы.
  • Если вы заметили несовместимое с правилами сообщение, то можете уведомить об этом модератора раздела нажав кнопку Репорт у соответствующего сообщения.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема »


 




[ Время генерации скрипта: 0.0627 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.