Programa pic

Disponível somente no TrabalhosFeitos
  • Páginas : 6 (1382 palavras )
  • Download(s) : 0
  • Publicado : 10 de outubro de 2012
Ler documento completo
Amostra do texto
adc

; Compiled with: PIC Simulator IDE v6.80
; Microcontroller model: PIC16F877
; Clock frequency: 4.0 MHz
;
; The address of 'ad_action' (bit) (global) is 0x1F,2
; The address of 'display' (byte) (global) is 0x6
display EQU 0x6
; Begin
R0L EQU 0x20; Define o R0L como sendo uma constante de valor 20 Hexadecimal (H)
R0H EQU 0x21; Define o R0L como sendo uma constantede valor 21 (H)
R1L EQU 0x22; Define o R1L como sendo uma constante de valor 22 (H)
R1H EQU 0x23; Define o R1H como sendo uma constante de valor 23 (H)
R2L EQU 0x24; Define o R2L como sendo uma constante de valor 24 (H)
R2H EQU 0x25; Define o R2H como sendo uma constante de valor 25 (H)
R3L EQU 0x26; Define o R3L como sendo uma constante de valor 26 (H)
R3H EQU 0x27; Defineo R3H como sendo uma constante de valor 27 (H)
R4L EQU 0x28; Define o R4L como sendo uma constante de valor 28 (H)
R4H EQU 0x29; Define o R4H como sendo uma constante de valor 29 (H)

R5L EQU 0x2A; Define o R5L como sendo uma constante de valor 2A (H)
R5H EQU 0x2B; Define o R5H como sendo uma constante de valor 2B (H)
ORG 0x0000; Coloca o endereço 0000 (H) no registo PC
BCFPCLATH,3; Limpa o que se encontra no registo PCLATH no bit 3
BCF PCLATH,4; Limpa o que se encontra no registo PCLATH no bit 4
GOTO L0003; Ir para o endereço
ORG 0x0004; Coloca o endereço 0004 (H) no registo PC
RETFIE; Voltar ao interrupt
L0003:
; 1: Symbol ad_action = ADCON0.GO_DONE 'set new name for A/D conversion start bit
; 2: Symbol display = PORTB 'set new name for PORTB used todisplay the conversion result
; 3:
; 4: TRISB = %00000000 'set PORTB pins as outputs
BSF STATUS, RP0; Faz set do STATUS do bit RP0 em OUT
CLRF 0x06 ; Apaga registo de 0x06
; 5: TRISA = %111111 'set PORTA pins as inputs
MOVLW 0x3F; Move o literal 3F para o acumulador (W)
MOVWF 0x05; Move o que está no acumulador para 05 (F)

; 6: ADCON0 = 0xc0 'set A/D conversion clock to internal sourceBCF STATUS,RP0; Limpa o bit RP0 do STATUS
MOVLW 0xC0; Move o literal C0 para o acumulador (W)
MOVWF 0x1F; Move o que está no acumulador para 1F (F)
; 7: ADCON1 = 0 'set PORTA pins as analog inputs
BSF STATUS,RP0; Faz set do STATUS do bit RP0
CLRF 0x1F; Apaga o registo 0x1F
; 8: High ADCON0.ADON 'turn on A/D converter module
BCF STATUS,RP0; Limpa o bit RP0 do STATUS
BSF 0x1F,0; Fazset do 0x1F do bit 0
; 9:
; 10: main:
L0001:
; 11: Gosub getadresult 'go to conversion routine
CALL L0002; Chama a sub-rotina L0002
; 12: display = ADRESH 'display the result of the conversion
MOVLW 0x1E; Move o literal 1E para o acumulador (W)
MOVWF 0x06; Move o que está no acumulador para 06 (F)
; 13: Goto main 'repeat forever
GOTO L0001; Vai para o adress L0001
; 14: EndL0004: GOTO L0004; Vai para o adress L0004
; 15:
; 16: getadresult: 'conversion routine
L0002:
; 17: High ad_action 'start the conversion
BSF 0x1F,2; Faz set do 0x1F do bit 2
; 18: While ad_action 'wait until conversion is completed
L0005:
BTFSS 0x1F,2; Testa o bit F, se estiver em set, passa à frente
GOTO L0006; Vai para o adress L0006
; 19: Wend
GOTO L0005; Vai para o adress L0005L0006:MOVLW 0x1F; Move o literal 1F para o acumulador (W)
ANDWF STATUS,F; Soma literal com W com F
; 20: Return
RETURN; Regressa à sub-rotina
; End of program
L0007:GOTO L0007; Vai para o adress L0007
; End of listing
END; Fim de programa

MULTIPLY

; Compiled with: PIC Simulator IDE v6.80
; Microcontroller model: PIC16F84
; Clock frequency: 4.0 MHz
;
; The address of 'a'(word) (global) is 0x18
a EQU 0x18
; The address of 'b' (word) (global) is 0x1A
b EQU 0x1A
; The address of 'x' (word) (global) is 0x1C
x EQU 0x1C
; Begin
R0L EQU 0xC; Define o R0L como sendo uma constante de valor C Hexadecimal (H)
R0H EQU 0xD; Define o R0H como sendo uma constante de valor D (H)
R1L EQU 0xE; Define o R1L como sendo uma constante de valor E (H)...
tracking img