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

📄 jianpan.txt

📁 1602 液晶 实现对立式键盘的操作 使用的是新华龙单片机 100脚 的
💻 TXT
字号:
#include<c8051f020.h>
#define uchar unsigned char
#define uint unsigned int
#define SYSCLK 22118400
sbit rs=P2^5;
sbit en=P2^7;
uchar table[]="00:00:00:00";
uchar temp,num,keynum,n,n1,n2,n3;
//void key_com();
void delay(uint t)
{
   uint i,j;
   for(i=t;i>0;i--)
      for(j=110;j>0;j--);
} 
void init()
{
  WDTCN=0xde;//关看门狗
  WDTCN=0xad;
  XBR2=0x40;//设置交叉开关使能
  P2MDOUT=0xf0;//P2^57推挽式输出
  P74OUT=0xf0;//P67推挽式输出
}
void SYSCLK_init()
{
  OSCXCN=0x67;
  delay(5);
  OSCICN=0x04;
  CKCON=0X00;
}
void write_com(uchar com)
{
	rs=0;
	P7=com;
	delay(5);
	en=1;
	delay(5);
	en=0;
}
void write_data(uchar date)
{
	rs=1;
	P7=date;
	delay(5);
	en=1;
	delay(5);
	en=0;
}

void write_anjian(uchar x,uchar y)
{
  uchar g,s;
  s=y/10; 
  g=y%10;
  write_com(0x80+x);
  write_data(0x30+s);
  write_data(0x30+g);

}

void key_com()
{
char  m;

 while(1)
 {
  P5=0xf0;
  temp=P5;
    if(temp!=0xf0)
  {
	temp=temp&0xf0;
	
	  m=temp;
	    switch(m)
	  {
	      case 0xe0:{  
                       n=n+1;
					   delay(500);
					   write_anjian(9,n);
					   delay(500);	
                                           write_com(0x80+0x40+9);
					   write_data('2');
					   delay(1000);
					   write_com(0x80+0x40+9);
					   write_data(' ');
				       }
					   break;
	                  
		 case 0xd0: {     
		                  n1=n1+1;
		                  delay(500);
						 write_anjian(6,n1);
					
						 delay(500);
						 write_com(0x80+0x40+6);
					     write_data('3');
						 delay(1000);
						 write_com(0x80+0x40+6);
					    write_data(' ');	
					  }
					  break;         
	                  
		  case 0xb0: {   
		                  n2=n2+1;
		                  delay(500);
						  write_anjian(3,n2);
					
						delay(500);
						 write_com(0x80+0x40+3);
					     write_data('4');
						 delay(1000);
						 write_com(0x80+0x40+3);
					     write_data(' ');	
					 }
					 break;
	                  

		   case 0x70: {     
		                    n3=n3+1;
		                   delay(500);
						   write_anjian(0,n3);
						  
						  delay(500);
						  write_com(0x80+0x40+0);
					      write_data('5');
						  delay(1000);
						  write_com(0x80+0x40+0);
					      write_data(' ');	
					  }
					  break ;
					  
	    }   

	   }
	  }

 }
void main()
{
   init();
   SYSCLK_init();
   P2=0x0f;
   P6=0x00;
   en=0;
   write_com(0x38);
   write_com(0x0f);
   write_com(0x06);
   write_com(0x01);

  for(num=0;num<11;num++)
	{
		write_data(table[num]);
		delay(20);
	
	}
  while(1)
  { 	
	key_com();
	delay(20);
   }
 
}

⌨️ 快捷键说明

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