¿Por qué no funciona al agregar ds1302 al módulo lcd12864? Me pregunto dónde salió mal el programa.
Si se trata de programación modular, es posible que tenga dos preguntas. Simplemente responda las preguntas que encontré antes en la programación modular.
El primer problema: tu NUM[] se inicializa varias veces. La solución es extern NUM[];
El segundo problema: el programa está escrito mal.
Además, el archivo adjunto es el módulo de programa que escribí anteriormente para DS1302 y LCD1602
El siguiente es el archivo .h de 1302
#ifndef __DS1302_H__
#define __DS1302_H__
#include<. reg52.h>
#include "delay.h"
extern uchar now_time[13] ;
sbit SCLK=P2^3; //bit aserción
sbit IO=P2^2;
sbit RST=P2^4; >
void write_byte_to_ds1302(uchar dat); //Escribe un byte
void write_date_too_ds1302(uchar add,uchar dat); //Escribe la dirección y el número de hora
extern uchar read_from_ds1302 ( uchar add); //leer la dirección
void init_ds1302(); //inicializar la hora
void read_clock() //leer la hora
void chang_too_bcd(); //convierte el código BCD a un número hexadecimal
//void display(); //tubo digital para mostrar la hora
#endif
A continuación se muestra el archivo .h
#ifndef __LCD1602_H__
#define __LCD1602_H__
#include
# incluir "delay.h"
#include "ds1302.h"
#include "24C02.h"
#include "18b20.h"
p>sbit lcden=P2^7;
sbit lcdrw=P2^6;
sbit lcdrs=P2^5;