⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shizhonglcd.c

📁 单片机C和汇编程序代码,其中有EEPROM,LCD的使用.
💻 C
字号:
#include <reg51.h>
#define uchar unsigned char
#define uint  unsigned int
unsigned code table[]={0x30,0x31,0x32,0x33,
					   0x34,0x35,0x36,0x37,
					   0x38,0x39};
uchar t,h,m,s,a,b,c,d,e,f;
sbit RS=P0^2;
sbit RW=P0^3;
sbit E=P0^4;
void delay(uchar x);
void init();
void display();
void fbusy();
void wc51r(uchar i);
void wc51ddr(uchar j);
void chaifen();
main()
{	init();
	while(1)
	{
		chaifen();
		display();
	}
}
void timer()	interrupt 1		//时钟中断函数
{
	TH0=(65536-50000)/256;
	TL0=(65536-50000)%256;
	t++;
	if(t==20)
	{t=0;
	  s++;
		if(s==60)
		{s=0;
		 m++;
		if(m==60)
		   {m=0;
		    h++;
		if(h==24)
			h=00;	
   	       }		
		}
	}
}
void init()
{
	TMOD=0x01;
	TH0=(65536-50000)/256;
	TL0=(65536-50000)%256;
	EA=1;
	ET0=1;
	TR0=1;
	h=14;
	m=24;
	wc51r(0x01);	//清屏
	wc51r(0x3c);	//使用8位数据,显示两行,使用5x7的字型
	wc51r(0x0e);	//显示器开,字符不闪烁
	wc51r(0x08);	//字符不动,光标自动一格
	wc51r(0x06);
	wc51r(0x82);
 	wc51ddr(0x20);
	wc51r(0x83);
  	wc51ddr(0x20);
	wc51r(0x84);
   wc51ddr(0x32);
	wc51r(0x85);
   wc51ddr(0x30);
	wc51r(0x86);
   wc51ddr(0x30);
	wc51r(0x88);
    wc51ddr(0x38);
	wc51r(0x89);
   wc51ddr(0x2e);
	wc51r(0x8a);
	  wc51ddr(0x30);
	wc51r(0x8b);
  	  wc51ddr(0x33);
	wc51r(0x8c);
    wc51ddr(0x2e);
	wc51r(0x8d);
	  wc51ddr(0x32);
	wc51r(0x8e);
	  wc51ddr(0x37);
}
void fbusy()		//检查忙标志
{	
	RS=0;RW=1;
	E=1;
	while((P2&0x80)==0x80);
	E=0;
}
void wc51r(uchar i)		//写命令函数
{
	fbusy();
	E=0;RS=0;RW=0;
	E=1;
	P2=i;
	E=0;
}
void wc51ddr(uchar j)		//写数据函数
{
	fbusy();
	E=0;RS=1;RW=0;
	E=1;
	P2=j;
	E=0;	
}
void display()
{	
	
	wc51r(0xc0);
  	wc51ddr(0x54);
 	wc51r(0xc1);
  	wc51ddr(0x49);
	wc51r(0xc2);
  	wc51ddr(0x4d);
	wc51r(0xc3);
  	wc51ddr(0x45);
	wc51r(0xc4);
	wc51ddr(0x20);
	wc51r(0xc5);
 	 wc51ddr(table[e]);
	wc51r(0xc6);
 	 wc51ddr(table[f]);
	wc51r(0xc7);
  	delay(2000);
  	wc51ddr(0x3a);
	wc51r(0xc8);
  	wc51ddr(table[c]);
	wc51r(0xc9);
 	 wc51ddr(table[d]);
	wc51r(0xca);
 	 delay(2000);
 	 wc51ddr(0x3a);
	wc51r(0xcb);
 	 wc51ddr(table[a]);
	wc51r(0xcc);
 	 wc51ddr(table[b]);
 	 delay(2000);
		
}
void chaifen()
{ a=s/10;
  b=s%10;
  c=m/10;
  d=m%10;
  e=h/10;
  f=h%10;
	
}
void delay (uchar x)			//延时1ms函数
{  uchar y,z;
	for(;x>0;x--)
	for(y=2;y>0;y--)
	for(z=248;z>0;z--);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -