PIC16F630 не работает программа

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Аватара пользователя
dr.faust
Потрогал лапой паяльник
Сообщения: 317
Зарегистрирован: Чт июл 15, 2010 13:47:09
Откуда: Лютый Питер
Контактная информация:

PIC16F630 не работает программа

Сообщение dr.faust »

Код: Выделить всё

;***********************************************************************************************
; Multi.asm
; Автоколебательный  мультивибратор.
; PIC16F84A      Кварц 4 мГц.
;=======================
            LIST        p=16F84A    ; Установка типа микроконтроллера.
            __CONFIG    03FF1H      ; Бит защиты выключен, WDT выключен, 
                                    ; стандартный XT - генератор.
;=======================
; Определение  положения  регистров  специального  назначения.
;=======================
Status      equ         03h         ; Регистр выбора банка.
TrisB       equ         06h         ; Регистр выбора направления работы выводов порта В.
PortB       equ         06h         ; Регистр управления защелками порта В.
;=======================
; Определение  названия  и  положения  регистров  общего  назначения.
;=======================
Sec         equ         0Ch         ; Счетчик времени полупериода.
;=======================
; Определение места размещения результатов операций.
;=======================
F           equ         1           ; Результат направить в регистр.
;=======================
            org         0           ; Начать выполнение программы с адреса 0 PC.
            goto        Start       ; Переход в ПП Start.


;***********************************************************************************************
;                          Текст рабочей части программы.
;***********************************************************************************************
; Установка направления работы RB0 - на выход.
;-----------------------------------------------------------------------------------------------
Start       bsf         Status,5    ; Перейти в 1-й банк (установить в 1 5-й бит
                                    ; регистра Status).
            movlw       .0          ; Записать константу 0 в аккумулятор (W).
            movwf       TrisB       ; Скопировать 0 из W в регистр TrisB.

            bcf         Status,5    ; Перейти в 0-й банк (установить в 0 5-й бит
                                    ; регистра Status).
;-----------------------------------------------------------------------------------------------
; Определение времени полупериода (закладка константы в регистр Sec).
;-----------------------------------------------------------------------------------------------
            movlw       .32         ; Записать в регистр W константу .32
            movwf       Sec         ; Скопировать .32 из W в регистр Sec.
;-----------------------------------------------------------------------------------------------
; Формирование на выводе RB0 нулевого уровня.
;-----------------------------------------------------------------------------------------------
            bcf         PortB,0     ; Установить на выходе защелки RB0 ноль.

            nop                     ; Калибровочный машинный цикл.
            nop                     ; -------------"--------------
Pause_1     decfsz      Sec,F       ; Декремент содержимого регистра Sec с помещением резуль-
            goto        Pause_1     ; тата декремента в этот же регистр.
                                    ; Если этот результат не=0, то осуществляется переход
                                    ; в ПП Pause_1 ("закольцовка" в этой ПП).
                                    ; Если =0, то программа исполняется далее.
;-----------------------------------------------------------------------------------------------
; Определение времени полупериода (закладка константы в регистр Sec).
;-----------------------------------------------------------------------------------------------
            movlw       .30         ; Записать в регистр W константу .30
            movwf       Sec         ; Скопировать .30 из W в регистр Sec.
;-----------------------------------------------------------------------------------------------
; Формирование на выводе RB0 единичного уровня.
;-----------------------------------------------------------------------------------------------
            bsf         PortB,0     ; Установить на выходе защелки RB0 единицу.

            nop                     ; То же самое, что и для нулевого уровня,
            nop                     ; только "закольцовка" происходит в ПП Pause_2.
Pause_2     decfsz      Sec,F       ; ------------------"-------------------
            goto        Pause_2     ; ------------------"-------------------

            goto        Start       ; Переход на новый полный цикл программы.
;***********************************************************************************************                        
            end                     ; Директива конца программы (всегда последняя снизу).                              
Изначально программа для PIC16F84A. Я переопределил регистры и заменил идентификатор процессора, но в Протеусе ничего не работает. Среда - MPLAB. На 16F84 все прекрасно работает. Что исправить? В MPLAB процессор выставлен f630, на встроенном симуляторе все отрабатывает как и должно.
Господа, [url=http://google.ru/][b]это[/b][/url] - не стыдно.
Реклама
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7360
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: PIC16F630 не работает программа

Сообщение uldemir »

первая грубая ошибка, что бросилась в глаза (дальше даже не смотрел):

Код: Выделить всё

Sec         equ         0Ch         ; Счетчик времени полупериода.
у 630-го микроконтроллера там нет ОЗУ. Прежде чем "переносить" программу на другой микроконтроллер потрудитесь почитать даташит на него. Еще посмотрите какая периферия у него наличествует. Возможно, перед тем как выводы использовать как цыфровые, надо сделать дополнительные телодвижения... итд.

p.s. и кстати, у него даже нет порта B :shock:
Последний раз редактировалось uldemir Чт янв 12, 2012 23:32:48, всего редактировалось 1 раз.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Реклама
Аватара пользователя
dr.faust
Потрогал лапой паяльник
Сообщения: 317
Зарегистрирован: Чт июл 15, 2010 13:47:09
Откуда: Лютый Питер
Контактная информация:

Re: PIC16F630 не работает программа

Сообщение dr.faust »

Спасибо, пробую. :)

UPD: PortB обозвал PortC, адреса его
Господа, [url=http://google.ru/][b]это[/b][/url] - не стыдно.
otest
Друг Кота
Сообщения: 7853
Зарегистрирован: Ср фев 11, 2009 20:35:58

Re: PIC16F630 не работает программа

Сообщение otest »

в Протеусе ничего не работает.
Если Протеус не работает ,то тема в другом разделе
Что исправить?
А что именно не работает?
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
dr.faust
Потрогал лапой паяльник
Сообщения: 317
Зарегистрирован: Чт июл 15, 2010 13:47:09
Откуда: Лютый Питер
Контактная информация:

Re: PIC16F630 не работает программа

Сообщение dr.faust »

В железе еще не проверял, в Протеусе выходы отмечены серыми квадратами (вроде так обозначается работа на вход).
Биты trisC по-всякому пробовал выставлять, не в них проблема.

Регистр Sec определил как 21h, все так же
Господа, [url=http://google.ru/][b]это[/b][/url] - не стыдно.
Реклама
alex_p_82
Встал на лапы
Сообщения: 86
Зарегистрирован: Ср сен 09, 2009 11:27:29
Откуда: Украина

Re: PIC16F630 не работает программа

Сообщение alex_p_82 »

Покажите исправленный исходник
Реклама
Аватара пользователя
dr.faust
Потрогал лапой паяльник
Сообщения: 317
Зарегистрирован: Чт июл 15, 2010 13:47:09
Откуда: Лютый Питер
Контактная информация:

Re: PIC16F630 не работает программа

Сообщение dr.faust »

Код: Выделить всё

#include p16f630.inc
            LIST        p=16F630    
            __CONFIG    03FF1H      
                                    

Status      equ         03h         
TrisC       equ         07h         
PortC       equ         07h        

Sec         equ         21h        
F           equ         1          

            org         0           
            goto        Start     

Start       bsf         Status,5                              
            bcf	        TrisC,4		
            bcf         Status,5                                    
            movlw       .32         
            movwf       Sec         
            bcf         PortC,0 
            nop                     
            nop                     
Pause_1     decfsz      Sec,F       
            goto        Pause_1                                    
            movlw       .30         
            movwf       Sec         
            bsf         PortC,0 
            nop                     
            nop                     
Pause_2     decfsz      Sec,F       
            goto        Pause_2     
            goto        Start       
            end
Господа, [url=http://google.ru/][b]это[/b][/url] - не стыдно.
alex_p_82
Встал на лапы
Сообщения: 86
Зарегистрирован: Ср сен 09, 2009 11:27:29
Откуда: Украина

Re: PIC16F630 не работает программа

Сообщение alex_p_82 »

Вы понимаете смысл этой строчки?

Код: Выделить всё

bcf           TrisC,4
Аватара пользователя
dr.faust
Потрогал лапой паяльник
Сообщения: 317
Зарегистрирован: Чт июл 15, 2010 13:47:09
Откуда: Лютый Питер
Контактная информация:

Re: PIC16F630 не работает программа

Сообщение dr.faust »

Да. Установить бит 4 регистра TrisC в ноль > сделать RC4 работающим на вход. Пробовал менять на bsf, ничего.
Последний раз редактировалось dr.faust Пт янв 13, 2012 00:06:40, всего редактировалось 1 раз.
Господа, [url=http://google.ru/][b]это[/b][/url] - не стыдно.
alex_p_82
Встал на лапы
Сообщения: 86
Зарегистрирован: Ср сен 09, 2009 11:27:29
Откуда: Украина

Re: PIC16F630 не работает программа

Сообщение alex_p_82 »

А работаете вы с каким битом?
Аватара пользователя
dr.faust
Потрогал лапой паяльник
Сообщения: 317
Зарегистрирован: Чт июл 15, 2010 13:47:09
Откуда: Лютый Питер
Контактная информация:

Re: PIC16F630 не работает программа

Сообщение dr.faust »

Исправил на рабочий бит. Все так же.
Господа, [url=http://google.ru/][b]это[/b][/url] - не стыдно.
alex_p_82
Встал на лапы
Сообщения: 86
Зарегистрирован: Ср сен 09, 2009 11:27:29
Откуда: Украина

Re: PIC16F630 не работает программа

Сообщение alex_p_82 »

Мой вам совет , возьмите скачайте даташит на pic16f630, откройте страницу 28, и посмотрите как делается инициализация порта С.
Аватара пользователя
dr.faust
Потрогал лапой паяльник
Сообщения: 317
Зарегистрирован: Чт июл 15, 2010 13:47:09
Откуда: Лютый Питер
Контактная информация:

Re: PIC16F630 не работает программа

Сообщение dr.faust »

Код: Выделить всё

bcf STATUS,RP0 ;Bank 0
clrf PORTC ;Init PORTC
bsf STATUS,RP0 ;Bank 1
movlw 0Ch ;Set RC<3:2> as inputs
movwf TRISC ;and set RC<5:4,1:0>
;as outputs
bcf STATUS,RP0 ;Bank 0
Делал так. Не помогает.

Код: Выделить всё

#include p16f630.inc
            LIST        p=16F630    
            __CONFIG    03FF1H      
                                    

Status      equ         03h         
TrisC       equ         07h         
PortC       equ         07h
ANSEL	    equ         91h        

Sec         equ         21h        
F           equ         1          

            org         0           
            goto        Start     

Start	    bcf 	STATUS,5 	;Bank 0
	    clrf 	PORTC 		;Init PORTC
	    bsf 	STATUS,5 	;Bank 1
	    movlw 	01h 		;Set RC<3:2> as inputs
	    movwf 	TRISC 		;and set RC<5:4,1:0>
					;as outputs
	    bcf 	STATUS,5 	;Bank 0                                    
            movlw       .32         
            movwf       Sec         
            bcf         PortC,0 
            nop                     
            nop                     
Pause_1     decfsz      Sec,F       
            goto        Pause_1                                    
            movlw       .30         
            movwf       Sec         
            bsf         PortC,0 
            nop                     
            nop                     
Pause_2     decfsz      Sec,F       
            goto        Pause_2     
            goto        Start       
            end  
Господа, [url=http://google.ru/][b]это[/b][/url] - не стыдно.
alex_p_82
Встал на лапы
Сообщения: 86
Зарегистрирован: Ср сен 09, 2009 11:27:29
Откуда: Украина

Re: PIC16F630 не работает программа

Сообщение alex_p_82 »

Одну строчку потеряли (самую важную), посмотрите еще раз.
Аватара пользователя
dr.faust
Потрогал лапой паяльник
Сообщения: 317
Зарегистрирован: Чт июл 15, 2010 13:47:09
Откуда: Лютый Питер
Контактная информация:

Re: PIC16F630 не работает программа

Сообщение dr.faust »

Код: Выделить всё

clrf ANSEL ;digital I/O
только в 16F676 есть.
Господа, [url=http://google.ru/][b]это[/b][/url] - не стыдно.
Аватара пользователя
uldemir
Друг Кота
Сообщения: 7360
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Re: PIC16F630 не работает программа

Сообщение uldemir »

может у вас проблемы с протеусом. вроде криминала больше не вижу. только хочу добавить если пишете

Код: Выделить всё

#include p16f630.inc
то это писать совсем не нужно

Код: Выделить всё

Status      equ         03h         
TrisC       equ         07h         
PortC       equ         07h       
F           equ         1         
оно там уже написано
alex_p_82 писал(а):Одну строчку потеряли (самую важную), посмотрите еще раз.
у 630-го нет АЦП - она не нужна.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Аватара пользователя
dr.faust
Потрогал лапой паяльник
Сообщения: 317
Зарегистрирован: Чт июл 15, 2010 13:47:09
Откуда: Лютый Питер
Контактная информация:

Re: PIC16F630 не работает программа

Сообщение dr.faust »

uldemir, я тоже так думаю. Сейчас таки прошью, посмотрю, работает ли в железе.
Господа, [url=http://google.ru/][b]это[/b][/url] - не стыдно.
alex_p_82
Встал на лапы
Сообщения: 86
Зарегистрирован: Ср сен 09, 2009 11:27:29
Откуда: Украина

Re: PIC16F630 не работает программа

Сообщение alex_p_82 »

Ёлы палы :facepalm: , почему 1 , а не 0

Код: Выделить всё

 movlw    01h       ;Set RC<3:2> as inputs
       movwf    TRISC       ;and set RC<5:4,1:0>
Аватара пользователя
dr.faust
Потрогал лапой паяльник
Сообщения: 317
Зарегистрирован: Чт июл 15, 2010 13:47:09
Откуда: Лютый Питер
Контактная информация:

Re: PIC16F630 не работает программа

Сообщение dr.faust »

так же.
Господа, [url=http://google.ru/][b]это[/b][/url] - не стыдно.
alex_p_82
Встал на лапы
Сообщения: 86
Зарегистрирован: Ср сен 09, 2009 11:27:29
Откуда: Украина

Re: PIC16F630 не работает программа

Сообщение alex_p_82 »

Что также?
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»