Está en la página 1de 3

Contador de 0 a 9

R2
10k

R1
10k

Reset

U1
13 14 1 2 3 4 5 6 7 8 9 10 OSC1/CLKIN OSC2/CLKOUT MCLR/Vpp/THV RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD 33 34 35 36 37 38 39 40 15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30 7 1 2 6 4 5 3

U2
A B C D BI/RBO RBI LT 7448 QA QB QC QD QE QF QG 13 12 11 10 9 15 14

RA0/AN0 RA1/AN1 RA2/AN2/VREFRA3/AN3/VREF+ RA4/T0CKI RA5/AN4/SS RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RE0/AN5/RD RC2/CCP1 RE1/AN6/WR RC3/SCK/SCL RE2/AN7/CS RC4/SDI/SDA RC5/SDO RC6/TX/CK RC7/RX/DT RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 PIC16F877

R3 R4 R5 220 R6 220 R7 220 R8 220 R9 220


220 220

;Contador de 0 a 9 en un display con PIC877 ; ******** DEFINICION DE REGISTROS UTILIZADOS pcl equ status equ ptoa equ ptob equ ptoc equ ptod equ ptoe equ pclath equ intcon equ pir1 equ rcsta equ txreg equ rcreg equ adresh equ adcon0 equ trisa equ trisb equ trisc equ trisd equ trise equ txsta equ spbrg equ adresl equ 02h 03 05 06 07 08 09 0ah 0bh 0ch 18h 19h 1ah 1eh 1fh 85h 86h 87h 88h 89h 98h 99h 9eh

adcon1 equ

9fh

;Definicin de bits utilizados rp0 rp1 irp z c txif go equ equ equ equ equ equ equ 5 6 7 2 0 4 2

;Variables del usuario loops equ loops2 equ loops3 equ dig0 equ dig1 equ dig2 equ dig3 equ contador equ 30h 31h 36h 32h 33h 34h 35h 37h

; ************ Configuracin para el simulador Proteus list p=16f877 _CP_ALL _CP_HALF _CP_UPPER_256 _CP_OFF _DEBUG_ON _DEBUG_OFF _WRT_ENABLE_ON _WRT_ENABLE_OFF _CPD_ON _CPD_OFF _LVP_ON _LVP_OFF _BODEN_ON _BODEN_OFF _PWRTE_OFF _PWRTE_ON _WDT_ON _WDT_OFF _LP_OSC _XT_OSC _HS_OSC _RC_OSC EQU EQU EQU EQU H'0FCF' H'1FDF' EQU H'2FEF' H'3FFF' H'37FF' EQU H'3FFF' EQU H'3FFF' EQU H'3DFF' H'3EFF' H'3FFF' H'3FFF' H'3F7F' EQU H'3FFF' EQU H'3FBF' EQU H'3FFF' EQU H'3FF7' EQU H'3FFF' EQU H'3FFB' H'3FFC' H'3FFD' H'3FFE' H'3FFF'

EQU EQU EQU EQU

EQU EQU EQU EQU

__CONFIG _CP_OFF & _WDT_OFF & _XT_OSC & _PWRTE_ON org goto retarms otro2 otro 00 inicio ;retardo de milisegundos cargado desde afuera

movwf loops movlw d'110' movwf loops2 nop nop

nop nop nop nop decfsz goto decfsz goto return puertos bcf bsf movlw movwf movlw movwf movlw movwf movlw movwf movlw movwf movlw movwf bcf return

loops2,1 otro loops,1 otro2 status,6 status,5 b'1111111' trisa b'11110000' trisb b'11111111' trisc b'11111111' trisd b'11101111' trise b'11110111' adcon1 status,5

; ******** Programa Principal inicio call clrf mostrar ciclo movwf btfsc goto movlw call btfss goto incf movlw xorwf btfss goto goto end puertos contador ;borra contador

espera

movf contador,0 ;borrar W ptob ;poner en cero el display ptoa,0 ;pregunta botn ciclo d'40' ;retardo de 40 ms retarms ptoa,0 ;pregunta si soltaron botn espera contador,1 ;incrementa numero del display d'10' ;pregunta si paso de 9 para enviarlo a cero contador,0 ;compara con xor status,2 ;pregunta si es igual con bit de cero mostrar ;diferente a diez entonces muestra el dgito inicio ;igual a diez entonces empieza en cero otra vez

También podría gustarte