Ir ao conteúdo

PWM, assembly e protheus


satanohj

Posts recomendados

Postado

Boa tarde,

Meu codigo nao funciona no protheus.

Na porta RC2/CCP1 deveria sair o sinal PWM, de acordo com os valores de entrada das RD0 a RD7. Ocilador de 4MHz.

PIC: 16F877

Compilador: MPLAB IDE v8.87

Segue o codigo:

__CONFIG _BODEN_ON & _DEBUG_ON & _WDT_OFF & _XT_OSC & _LVP_OFF & _BODEN_OFF

#INCLUDE <P16F877.INC> ; Cabeçalho do PIC16F877

ORG 0x00 ; Vetor de Reset

GOTO SETUP ; "Salta" para SETUP

ORG 0x04 ; Vetor de Interrupção

RETFIE ; Retorno de Interrupção

; *******************************************************************

; Inicializacao, configuração das Portas e Perifericos do PIC

; *******************************************************************

SETUP CLRF CCPR1L ; Zera o ciclo ativo do PWM

BSF STATUS,RP0 ; Seta o bit RP0 do registro STATUS

; para trabalhar no banco 1.

MOVLW B'00000000' ; Carrega W com o valor 0x00

MOVWF TRISC ; e configura o PORTC como saída.

MOVLW B'11111111' ; Carrega W com o valor 0xFF

MOVWF TRISD ; e configura o PORTD como entrada.

MOVLW 0xDF ; Carrega W com o valor 0xDF e move

MOVWF OPTION_REG ; para o registro OPÇÕES (apostila).

MOVLW 0xFF ; Carrega W com o valor 0xFF e

MOVWF PR2 ; configura o período do PWM.

BCF STATUS,RP0 ; Reseta o bit RP0 do registro STATUS

; para trabalhar no banco 0.

MOVLW 0x07 ; Carrega W com o valor 0x07 e

MOVWF T2CON ; habilita o Timer2 com 1:16.

MOVLW 0x0F ; Carrega W com o valor 0x0F e

MOVWF CCP1CON ; habilita o Sinal1 PWM.

movlw 0xFF

MOVWF CCPR1L

; *******************************************************************

; Rotina Principal

; *******************************************************************

PRINCI

; Envia o conteúdo de W para CCPR1L.

BCF CCP1CON,5 ; Habilita o

BCF CCP1CON,4 ; PWM.

GOTO PRINCI ; Retorna a rotina PRINCI

; *******************************************************************

; Fim de Programa

; *******************************************************************

END

Circuito no protheus:

exp7.png

Alguem pode me ajudar ??? :confused:

Postado

Eu li o seu tutorial e sei que usas o MPLAB para simular o programa. Mas sem simular o circuito implica montar o ver os resultados directamente na pratica. Quando eu não conhecia o proteus eu fazia isso e era uma grande dor de cabeça.

Postado
Sem dúvida. Preciso mesmo aprender a usar um simulador como o Protheus.

Vale a pena mesmo,eu projetei um circuito teste que utiliza um detor zero-cross para controlar lampadas pelo Áudio USB e foi totalmente ajustado e calculado pelo Proteus e o osciloscópio nele contido:

Todos os cálculos deste protótipo foram calculados e ajustados pelo proteus,não usei nenhum instrumento 'físico'.

Postado
Não sei usar o Proteus. Ele está fornecendo o clock para o PIC?

Com o valor escrito no CCPR1L, o semiciclo ativo do sinal PWM é de 99,6%. Talvez por isso esteja aparecendo como constante no osciloscópio.

No meu tutorial, explico detalhadamente a configuração do PWM a partir da página 149:

http://forum.clubedohardware.com.br/tutorial-pic-programacao/919942

no projeto original o valor de ccp1 e definido por switche da porta D0 a D7, achei que isso dava dando pau ai coloquei fixo 0xFF. mudei para 0xDF mesmo assim o sinal continua constate com nível lógico baixo. vou precisar de um tempo maior pra analisar esse tutorial que e muito detalhado *-*

@muder_fox: muito bom seu tutorial, posso repassar pro pessoal da faculdade??

PS: pode ser pau no protheus que e cheio de manhas, se alguém souber o macete me ensina, porque to apanhando d+ hehe.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!