led时钟的设计    
      
        
            
        	
				
            
            
              
                - 文件介绍: 
 
                - 该文件为 docx 格式,下载需要 1 积分 
 
- 实验3#include
#include
#include
#define uchar unsigned char
#define uint unsigned int 
#define out P0
sbit RS=P3^0;
sbit RW= P3^1;
sbit E=P3^2;
uchar int_time;
uchar second; 
uchar minute;
uchar hour;
uchar code date[]=" H.I.T. CHINA ";
uchar code time[]="TIME  23:59:55 ";
uchar second =55,minute = 59,hour = 23;
void check_busy(void)
{
	uchar dt;
	do
	{
		dt = 0xff;
		E=0;
		RS=0;
		RW=1;
		E=1;
		dt= out;
	}while(dt&0x80);
	E=0;
}
void delay(uint j)	
{
	uchar i =250;
	for(;j>0;j--)
	{
		while(--i);
		i=249;
		while(--i);
		i=250;
	}
}       
void write_com(uchar com)
{
	check_busy();
	E=0;
	RS=0;
	RW=0;
	out= com;
	E=1;
	_nop_();
	E=0;
	delay(1);
}
void write_data(uchar dat)
{
	check_busy();
	E=0;
	RS=1;
	RW=0;
	out=dat;
	E=1;
	_nop_();
	E=0;
	delay(1);
}
void write_sfm(uchar add,uchar date)	
{
        uchar shi,ge;
        shi=date/10;
        ge=date%10;
        write_com(0x80+0x40+add);
        write_data(0x30+shi);
        write_data(0x30+ge);
}
         
void clock_init()
{
	uchar i,j;
	for(i=0;i<16;i++)
	{
		write_data(date[i]);
	}
	write_com(0x80+0x40);
	for(j=0;j<16;j++)
	{
		write_data(time[j]);
	}
}
void clock_write(uint s,uint m,uint h)
{
	write_sfm(0x47,h);
	write_sfm(0x4a,m);
	write_sfm(0x4d,s);
}
void main()
{
	init1602();
	clock_init();
	TMOD=0x01;
	EA=1;
	ET0=1;
	TH0=(65536-15536)/256;
	TL0=(65536-15536)%256;
	TR0=1;
	int_time=0;
	second=55;
	minute=59;
	hour=23;
	while(1)
	{
		clock_write(second,minute,hour);
	}
}
...