Ir ao conteúdo
  • Cadastre-se

Pwm - 89c52


Helga Gisele

Posts recomendados

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 "//

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

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

Link para o comentário
Compartilhar em outros sites

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?

Link para o comentário
Compartilhar em outros sites

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