Académique Documents
Professionnel Documents
Culture Documents
'Pic 16f877A
Define
Define
Define
Define
CONF_WORD = 0x3f71
CLOCK_FREQUENCY = 4
LCD_LINES = 4
LCD_CHARS = 20
'-------------------------------------Puertos del LCD---------------------------------------------Define LCD_BITS = 4 'indicamos que el bus de datos del lcd sera de 8bit
Define LCD_DREG = PORTB 'el bus de datos sera el puerto B
Define LCD_DBIT = 4 '(0/4) indiferente en bus de 8 bits
Define LCD_RSREG = PORTB 'el bit RS est en el puerto A
Define LCD_RSBIT = 1 'se usa RA0 RS
Define LCD_EREG = PORTB 'el bit E est en el puerto A
Define LCD_EBIT = 2 'se usa RA1 para E
Define LCD_COMMANDUS = 2000 'Tiempo de espera despues de ejecutar un comand del
lcd en uSeg.
Define LCD_DATAUS = 100 'Tiempo de espera despues de enviar un dato al LCD en u
Seg.
Define LCD_INITMS = 100 'Tiempo de espera despues de inicializar el Display, so
lo se ejecuta una vez en mSeg.
Lcdinit
'-----------------------------------Puerto I2C---------------------------------------------------Symbol sda = PORTC.4 'asignamos nombre al pin que hara de SDA del puerto I2C
Symbol scl = PORTC.3 'asignamos nombre al pin que hara de SCL del puerto I2C
'***********************************DEFINICION DE VARIABLES*********************
*****************
'--------------------------------------Variables Programa--------------------------------------Dim addr(7) As Byte
Dim data As Byte
Dim escribe As Byte
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
sec As Byte
min As Byte
hour As Byte
day As Byte
daym As Byte
month As Byte
year As Byte
d_hi As Byte
d_lo As Byte
WaitMs 1000
'bucle que escribe los datos iniciales en DS1307
For addr = 0 To 6
escribe = LookUp(0x00, 0x15, 0x16, 0x01, 0x22, 0x06, 0x08), addr
I2CWrite sda, scl, 0xd0, addr, escribe 'escribe los datos al DS1307
Next addr
'bucle para lectura de datos desde el DS1307
loop:
addr = 0
I2CRead sda,
addr = 1
I2CRead sda,
addr = 2
I2CRead sda,
addr = 3
I2CRead sda,
addr = 4
I2CRead sda,
addr = 5
I2CRead sda,
addr = 6
I2CRead sda,