test01.c

来自「8051单片机学习源码 包括定时器、键盘、液晶显示等」· C语言 代码 · 共 117 行

C
117
字号
#include<reg52.h>
sbit k2=P3^4;
sbit k3=P3^5;
sbit k4=P3^6;
sbit k5=P3^7;

sbit light1=P1^7;
sbit dula=P2^6;
sbit wela=P2^7;
#define uchar unsigned char
#define uint unsigned int

uchar code tabledu[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};

uchar code tablewe[]={
0x01,0x02,0x04,0x08,
0x10,0x20  
};

uchar num; 

void display(uchar );
uchar scan();
delay(uchar);
void main()
{
	P0=0x01;
	wela=1;
	wela=0;
	while(1)
	{
		display(scan());
	}
}


uchar scan()
{
        //-------------------------
        if(k2==0)
		   {
			delay(20);	 
			if(k2==0)	 
			 { 
			   while(!k2);
			   num=1;
			   
			 }
 		   }
		   //---------------

		   if(k3==0)
		   {
			delay(20);	 
			if(k3==0)	 
			 { 
			   while(!k3);
			   num=2;
			   
			 }
 		   }
		   //-------------------

		   if(k4==0)
		   {
			delay(20);	 
			if(k4==0)	 
			 { 
			   while(!k4);
			   num=3;
			   
			 }
 		   }
		   //---------------------

		   if(k5==0)
		   {
			delay(20);	 
			if(k5==0)	 
			 { 
			   while(!k5);
			   num=4;
			   
			 }
 		   }

		   return num;

}


void display(uchar num1)
{
    P0=0x00;
	wela=1;
	wela=0;
	P0=~tabledu[num1];
	dula=1 ;
	dula=0 ;
	P0=0x01;
	wela=1;
	wela=0;
	delay(10);	
}

delay(uchar x)
{
	uchar a,b;
	for(a=x;a>0;a--)
	 for(b=255;b>0;b--);
}

⌨️ 快捷键说明

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