질문할때는 다음 사항을 정확히 설명해주셔야 답변하시는 분도 최대한 정답에 가깝게 답할 수 있습니다.
---------------------------------------------------------------------------------------------------------------------------------------------------------
1. 컴파일러등의 개발환경 : 케일4
2. 회로나 소스코드의 제어목적 : LCD시계
3. 증상과 예상되는 문제점 :
4. 기타 :
회로도와 소스 첨부했습니다.
왜 안되는지 모르겠네요 LCD는 16*2구요
ds1302칩과 at89c51ed2 cpu칩 사용햇습니다
LCD를 통한 시간/날짜 표시와 시간/날짜 조정기능 소스인데 안되네요 ㅠㅠ
왜 안되는지 버그가 머먼지 부탁좀 드립니다
---------------------------------------------------------------------------------------------------------------------------------------------------------
오늘 처음 가입한 초보이지만
혹시 도움이 될까해서 한번 살펴보았읍니다..
너무 양이 많네요...어떻게 동작이 안되는지 알 수 있다면 좋을텐데요..
아예 안되는 건지 RTC가 읽히기는 하는데 제대로 안읽히는 건지...
LCD display가 잘 안되는건지 모르겠네요..
잠깐 살펴보다 보니까 앞 부분에
unsigned char DS1302_Read(unsigned char sending_cmd) 함수에서
읽어들일때 8051 은 포트를 high 로 해주어서 입력으로 해주어야 하는데
그런 부분이 없더군요(케일C 에서는 자동으로 해주는지 모르겠지만...전 케일을 안쓰거든요...ㅜㅜ)
DS1302_IO = 1; //port 를 read 상태로 하기 위해 high로 써넣는 부분이 추가됨...^^;
DS1302_data = 0 ; //data buffer clear
for(bit_num=0;bit_num<8;bit_num++) //0~7 Bit Continue
{
DS1302_SCLK = 0 ; //Make Clock Pulse Low
DS1302_data >>=1 ; //Bit shift to make one byte data
//Data is output starting with bit 0
if(DS1302_DIO) DS1302_data |=0x80 ; //If data bit 1
else DS1302_data &=0x7f ; //If data bit 0
ddelay(2);
DS1302_SCLK = 1 ; //Make Clock Pulse High
}
혹시 다른 컴파일러와 호환을 위해서라도 위의 한줄은 받드시 추가되어야 될 것으로 보입니다...^^;