V.- Uso do microcontrolador PIC16F628

NOTA: modificar o micro utilizado em Define Code Generation Tools... dentro do menu Source.

 

 

 

 

 

 

Circuito:

 

Componentes:

·         MICRO (PIC16F628A)

Programa:


DEFINE OSC 4
CMCON = 7 ' PortA = digital I/O
VRCON = 0 ' A/D Voltage reference disabled

    ' Set LCD Data port
DEFINE LCD_DREG PORTB
    ' Set starting Data bit (0 or 4) if 4-bit bus
DEFINE LCD_DBIT 0
    ' Set LCD Register Select port
DEFINE LCD_RSREG PORTA
    ' Set LCD Register Select bit
DEFINE LCD_RSBIT 2
    ' Set LCD Enable port
DEFINE LCD_EREG PORTA
    ' Set LCD Enable bit
DEFINE LCD_EBIT 3
    ' Set LCD bus size (4 or 8 bits)
DEFINE LCD_BITS 4
    ' Set number of lines on LCD
DEFINE LCD_LINES 2
    '  Set command delay time in us
DEFINE LCD_COMMANDUS 2000
    ' Set data delay time in us
DEFINE LCD_DATAUS 50

PAUSE 20

LCDOUT $FE, 1, "NOMBRE"


ASB:

GOTO ASB

END

 

vi.- Uso do Display Alfanumérico e Teclado.

Trocar o tipo de micro da mesma forma que o circuito anterior para -P16F877

 

Componentes:

ACTIVE (KEYPAD-SMALLCALC)

 

 

 

Programa:


DEFINE OSC 20
'DEFINE LOADER_USED 1
ADCON1 = 7
TRISE = 0
TRISB = %00001111
OPTION_REG = %00010101
'INTCON2 = %00000000

DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTE
DEFINE LCD_RSBIT 0
DEFINE LCD_EREG PORTE
DEFINE LCD_EBIT 1
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2
DEFINE LCD_COMMANDUS 2000
DEFINE LCD_DATAUS 50

Tecla var byte
FLAG VAR BIT

L1 CON %01110000
L2 CON %10110000
L3 CON %11010000
L4 CON %11100000

PAUSE 20

LCDOUT $FE, 1,"Listo" 'Clear display and show “Preparado”

Rastreo:

PORTB = L1
SELECT CASE PORTB & $0F
CASE %1110
LCDOUT $FE, 1,"ON/C"
FLAG = 1
CASE %1101
LCDOUT $FE, 1,"0"
FLAG = 1
CASE %1011
LCDOUT $FE, 1,"="
FLAG = 1
CASE %0111
LCDOUT $FE, 1,"+"
FLAG = 1
END SELECT

PORTB = L2
SELECT CASE PORTB & $0F
CASE %1110
LCDOUT $FE, 1,"1"
FLAG = 1
CASE %1101
LCDOUT $FE, 1,"2"
FLAG = 1
CASE %1011
LCDOUT $FE, 1,"3"
FLAG = 1
CASE %0111
LCDOUT $FE, 1,"-"
FLAG = 1
END SELECT

PORTB = L3
SELECT CASE PORTB & $0F
CASE %1110
LCDOUT $FE, 1,"4"
FLAG = 1
CASE %1101
LCDOUT $FE, 1,"5"
FLAG = 1
CASE %1011
LCDOUT $FE, 1,"6"
FLAG = 1
CASE %0111
LCDOUT $FE, 1,"X"
FLAG = 1
END SELECT

PORTB = L4
SELECT CASE PORTB & $0F
CASE %1110
LCDOUT $FE, 1,"7"
FLAG = 1
CASE %1101
LCDOUT $FE, 1,"8"
FLAG = 1
CASE %1011
LCDOUT $FE, 1,"9"
FLAG = 1
CASE %0111
LCDOUT $FE, 1,"/"
FLAG = 1
END SELECT

IF FLAG = 1 THEN
PAUSE 150
FLAG = 0
ENDIF

GOTO Rastreo

 

 


Volta               Inicio               Avança