Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; TP#1 MICROCONTROLADORES == PIC16F877A Rafael Freitas(13951) & Fabio Oliveira(13958) com sensor(potenciometro), interrupção externa, reset e utilização de conversor A/D do PIC
- list p=16f877a
- #include <p16f877a.inc>
- __config _RC_OSC & _WDT_OFF & _PWRTE_ON & _BOREN_OFF & _LVP_ON & _CPD_OFF & _WRT_OFF & _DEBUG_OFF & _CP_OFF
- #define bank0 banksel PORTA
- #define bank1 banksel TRISA
- #define interrup PORTB,RB0
- #define potencia PORTA,RA0
- #define unid PORTC,RC7
- #define dec PORTC,RC6
- W_TEMP EQU H'20'
- STATUS_TEMP EQU H'21'
- PCLATH_TEMP EQU H'22'
- UNID_DISP EQU H'23'
- DEC_DISP EQU H'24'
- W_TEST EQU H'25'
- ORG 0x0000
- nop
- goto main
- ORG 0x0004
- MOVWF W_TEMP
- SWAPF STATUS,W
- CLRF STATUS
- MOVWF STATUS_TEMP
- MOVF PCLATH, W
- MOVWF PCLATH_TEMP
- CLRF PCLATH
- btfss INTCON, INTF
- goto exit_ISR
- bcf INTCON, INTF
- bsf ADCON0, GO_DONE
- wait_ADC
- btfsc ADCON0,GO_DONE
- goto wait_ADC
- movf ADRESH, W
- movwf W_TEST
- rrf W_TEST, F
- bcf W_TEST, 7
- movlw B'11110000'
- movwf UNID_DISP
- movlw B'00001111'
- movwf DEC_DISP
- movf W_TEST,W
- call TABELA
- movwf W_TEST
- call ALUNO_NUM
- call DISPLAY
- exit_ISR
- MOVF PCLATH_TEMP, W
- MOVWF PCLATH
- SWAPF STATUS_TEMP,W
- MOVWF STATUS
- SWAPF W_TEMP,F
- SWAPF W_TEMP,W
- retfie
- main
- bank1
- movlw H'00'
- movwf CMCON
- movlw H'FF'
- movwf TRISB
- movlw H'FF'
- movwf TRISA
- movlw H'30'
- movwf TRISC
- bsf OPTION_REG, 6
- movlw H'0E'
- movwf ADCON1
- bank0
- movlw H'00'
- movwf PORTC
- bsf ADCON0, ADON
- movlw B'10000000'
- movwf UNID_DISP
- movlw B'01000000'
- movwf DEC_DISP
- movlw H'D0'
- movwf INTCON
- loop
- CALL ATUALIZA_UNID
- CALL ATUALIZA_DEC
- ; bsf INTCON, INTF
- goto loop
- ALUNO_NUM
- btfsc W_TEST,0
- return
- btfsc W_TEST,1
- return
- btfsc W_TEST,2
- return
- btfsc W_TEST,3
- return
- btfsc W_TEST,4
- return
- btfsc W_TEST,5
- return
- btfsc W_TEST,6
- return
- btfsc W_TEST,7
- retlw W_TEST
- movlw B'00011000'
- movwf W_TEST
- retlw B'00011000'
- DISPLAY
- andwf UNID_DISP
- swapf UNID_DISP
- movf W_TEST, W
- ANDWF DEC_DISP
- return
- ATUALIZA_UNID:
- bcf dec
- clrf PORTC
- movf UNID_DISP,W
- movwf PORTC
- bsf unid
- return
- ATUALIZA_DEC:
- bcf unid
- clrf PORTC
- movf DEC_DISP,W
- movwf PORTC
- bsf dec
- return
- TABELA
- ADDWF PCL,F
- RETLW 0x00
- RETLW 0x00
- RETLW 0x01
- RETLW 0x01
- RETLW 0x02
- RETLW 0x02
- RETLW 0x02
- RETLW 0x03
- RETLW 0x03
- RETLW 0x04
- RETLW 0x04
- RETLW 0x04
- RETLW 0x05
- RETLW 0x05
- RETLW 0x05
- RETLW 0x06
- RETLW 0x06
- RETLW 0x07
- RETLW 0x07
- RETLW 0x07
- RETLW 0x08
- RETLW 0x08
- RETLW 0x09
- RETLW 0x09
- RETLW 0x09
- RETLW 0x10
- RETLW 0x10
- RETLW 0x11
- RETLW 0x11
- RETLW 0x11
- RETLW 0x12
- RETLW 0x12
- RETLW 0x12
- RETLW 0x13
- RETLW 0x13
- RETLW 0x14
- RETLW 0x14
- RETLW 0x14
- RETLW 0x15
- RETLW 0x15
- RETLW 0x16
- RETLW 0x16
- RETLW 0x16
- RETLW 0x17
- RETLW 0x17
- RETLW 0x18
- RETLW 0x18
- RETLW 0x18
- RETLW 0x19
- RETLW 0x19
- RETLW 0x20
- RETLW 0x20
- RETLW 0x20
- RETLW 0x21
- RETLW 0x21
- RETLW 0x21
- RETLW 0x22
- RETLW 0x22
- RETLW 0x23
- RETLW 0x23
- RETLW 0x23
- RETLW 0x24
- RETLW 0x24
- RETLW 0x25
- RETLW 0x25
- RETLW 0x25
- RETLW 0x26
- RETLW 0x26
- RETLW 0x27
- RETLW 0x27
- RETLW 0x27
- RETLW 0x28
- RETLW 0x28
- RETLW 0x28
- RETLW 0x29
- RETLW 0x29
- RETLW 0x30
- RETLW 0x30
- RETLW 0x30
- RETLW 0x31
- RETLW 0x31
- RETLW 0x32
- RETLW 0x32
- RETLW 0x32
- RETLW 0x33
- RETLW 0x33
- RETLW 0x34
- RETLW 0x34
- RETLW 0x34
- RETLW 0x35
- RETLW 0x35
- RETLW 0x35
- RETLW 0x36
- RETLW 0x36
- RETLW 0x37
- RETLW 0x37
- RETLW 0x37
- RETLW 0x38
- RETLW 0x38
- RETLW 0x39
- RETLW 0x39
- RETLW 0x39
- RETLW 0x40
- RETLW 0x40
- RETLW 0x41
- RETLW 0x41
- RETLW 0x41
- RETLW 0x42
- RETLW 0x42
- RETLW 0x43
- RETLW 0x43
- RETLW 0x43
- RETLW 0x44
- RETLW 0x44
- RETLW 0x44
- RETLW 0x45
- RETLW 0x45
- RETLW 0x46
- RETLW 0x46
- RETLW 0x46
- RETLW 0x47
- RETLW 0x47
- RETLW 0x48
- RETLW 0x48
- RETLW 0x48
- RETLW 0x49
- RETLW 0x49
- RETLW 0x50
- RETLW 0x50
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement