Ir ao conteúdo

Pwm - 89c52


Helga Gisele

Posts recomendados

Postado

Oi será q alguém poderia m ajudar c/ esse PWM "//

uso o proteus p/ simular e coloquei um osciloscópio na saída e

ele até apresenta uma frequência a qual preciso ajustar também, mas o problem maior é q não aparece uma onda quadradinha - retangular ele na verdade fica c/ o topo curvado "// o q estou fazendo de errado??? aq vai o programa

ORG 00H

BOTAO EQU P3.6

BOTAO_2 EQU P3.5

MOTOR EQU P3.7

CLR MOTOR

TESTE_BUT: JNB BOTAO, INICIO ;O programa só começa realmente quando

LJMP TESTE_BUT ;botao é precionado

INICIO: SETB MOTOR

ACALL CONT_1

JNB BOTAO_2,INICIO_1

AJMP FIM

INICIO_1: SETB MOTOR ;ao apertar o botão ele seta motor

JNB BOTAO_2,INICIO_2 ;compara também se botao 2 foi precionado

ACALL CONT_2 ;caso não chama tempo

AJMP FIM_1 ;e depois vai p/ fim ond

INICIO_2: SETB MOTOR ;botao dois precionado

ACALL CONT_3 ;vai p/ uma segunda rotina de tempo

AJMP FIM_2 ;mas cont eguindo a mesmo rotina

FIM: CLR MOTOR ;motor é desligado

ACALL CONT ;o tempo chamado

AJMP INICIO ; e retorna p/ inicio

FIM_1: CLR MOTOR

ACALL CONT

AJMP INICIO_1

FIM_2: CLR MOTOR

ACALL CONT

AJMP INICIO_2

CONT: MOV R2,#1

TEMPO: MOV R0,#250

VOLTA: MOV R1,#250

AQUI: DJNZ R1, AQUI

DJNZ R0, VOLTA

DJNZ R2, TEMPO

RET

CONT_1: MOV R2,#5

TEMPO_1: MOV R0,#250

VOLTA_1: MOV R1,#250

AQUI_1: DJNZ R1, AQUI_1

DJNZ R0, VOLTA_1

DJNZ R2, TEMPO_1

RET

CONT_2: MOV R2,#10

TEMPO_2: MOV R0,#250

VOLTA_2: MOV R1,#250

AQUI_2: DJNZ R1, AQUI_2

DJNZ R0, VOLTA_2

DJNZ R2, TEMPO_2

RET

CONT_3: MOV R2,#15

TEMPO_3: MOV R0,#250

VOLTA_3: MOV R1,#250

AQUI_3: DJNZ R1, AQUI_3

DJNZ R0, VOLTA_3

DJNZ R2, TEMPO_3

RET

END

desde já obrigada "//

  • Membro VIP
Postado

oi.

dica: compartilhe o projeto todo. compacte e anexe o .dsn, .hex ponto etecétera. De repente alguém simula e verifica pra voce.

Dica+: Verifique se teu MC possui pwm por hw (circuito interno) e (ab)use-o. (trabalhei com 51´s mas não me lembro+)

Dica++: Queira por gentileza cogitar em aprender a programar em C (p.ex.). Vai obter + ajuda e + rápido. Creia-me.

Com relação a onda, verifique se não tem algum capacitor intrometido curvando a onda. Também a freq pode estar muito alta. Tente reduzir o clock

bj

Postado

José muito obrigada pela ajuda e dicas ^^ há o fato de estar em assembly é simplesmente porque o prof quer em assembly >.<"

vou aumentar a frequência e ver o q acontece ^^V

Postado

Pode ser o seguinte.

A onda provavelmente é retangular pois o sinal tem uma largura de pulso variada (PWM).

Esse micro não tem PWM por Hardware,logo terá que programar mesmo e principalmente em ASM,ou vai gastar muita memória e tempo só para implementar corretamente o PWM em C,além que não acredito que muita gente tenha feito uma rotina de PWM em C.

A vantagen do Soft e poder usar em qualquer micro e ter vários PWM.

PS/;Aqui no forum,o nível de resposta é igual a todas as linguagens (ASM,C,Basic etc).

Qual compilador está usando?

Seu professor comentou que o resultado da rotina não está bom?

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!