Assembléia ajuda .. como fazer um quadrado sine RRF RLF

M

markosweb

Guest
Desculpem, não posso pensar agora .. Como posso fazer isso sine quadrado com RLF RRF e porta-bandeira
cJOPk.jpg
Code:
 CLRF PORTB MOVLW D'8 'MOVWF REG1 MOVLW B'10100110' MOVWF REG2 LOOP BCF STATUS, C RRF REG2 RLF REG2 MOVF PORTB DECFSZ REG1 GOTO END LOOP
 
Um sine praça, que há de novo! Eu acho que você pretende imprimir o padrão de bits em um dos pinos PORTB. Você está quase correto, mas mudando RRF então RLF apenas move os bits direito depois novamente à esquerda. O que você precisa fazer é fazer um cadastro simples mudança em que os bits continuam se movendo na mesma direção até que todos os 8 foram deslocados para fora: clrf PORTB movlw D'8 'movwf REG1; REG1 está contando quantas vezes os bits foram deslocados movlw B'10100110 '; o padrão de altos e baixos de ser a saída movwf REG2; REG2 é a real mudança de registo bcf STATUS, C, você só precisa fazer isso uma vez para que você tenha um loop ponto de partida conhecido: RLF REG2; pouco mais à esquerda agora no STATUS btfss carry flag, C, verificar se o carry é agora definida Goto OutputLow bsf PORTB, goto IsThereMore OutputLow: bcf PORTB, IsThereMore: decfsz REG1, f; contagem regressiva do número de turnos END goto loop eu não tive tempo para apresentar este formato, você realmente não precisa de dois pontos após o nome de etiqueta, eu adicionei-los para torná-los mais evidente. Brian.
 

Welcome to EDABoard.com

Sponsor

Back
Top