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

📄 qiang da.c

📁 系统以AT89S51单片机为核心
💻 C
字号:
#include <reg51.h> 
#define uchar unsigned char
#define uint unsigned int
uchar code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0xFF}; 
sbit P2_7=P2^7;
sbit P3_3=P0^0;
sbit P2_0=P2^0;
uchar temp; 
uchar k;
uchar code_h;
bit rst;

void keyc(void);
//延时函数
void mDelay(uchar Delay)
{							// 延时子程序
	uchar i;
	while(Delay--)
	{
		for(i = 0; i< 120; i++);
	}
}

void interrupt1(void) interrupt 0 using 1
{
	rst=1;
	P2=255;
	P2_7=0;
}
//主函数
void main(void)
{
	EA=1;
	IT0=1;
	EX0=1;
	rst=0;
	while(1)
	{
		code_h=0xef;
		P1=code_h;
		temp=P1;
		while(temp==code_h)//检测键盘是否有按键按下
		{
			code_h=(code_h<<1)|0x01;
			if(code_h==0xff)
			{code_h=0xef;}
			P1=code_h;
			temp=P1;
		}
		mDelay(5);  //延时去抖
		if(P1==temp)
		{
			keyc();           
 			while(temp==P1) //等待按键放开
 			{;} 	
		}
	}
}
//键盘操作
void keyc(void)
{
	uchar key,i;
	switch(temp) 
    { 
       	case 0xee: 
       		key=12; 
     		break; 
    	case 0xed: 
     		key=13; 
       		break; 
     	case 0xeb: 
 			key=14; 
      		break;
	 	case 0xe7: 
    		key=15; 
   			break; 
		case 0xde: 
            key=8; 
            break; 
        case 0xdd: 
            key=9; 
            break; 
        case 0xdb: 
            key=10; 
            break; 
        case 0xd7: 
            key=11; 
        	break; 
		case 0xbe: 
            key=4; 
         	break; 
        case 0xbd: 
           	key=5; 
        	break; 
       	case 0xbb: 
            key=6; 
            break; 
        case 0xb7: 
            key=7; 
        	break; 
		case 0x7e: 
            key=0; 
            break; 
        case 0x7d: 
            key=1; 
            break; 
       	case 0x7b: 
            key=2; 
            break; 
        case 0x77: 
            key=3; 
            break; 
     }
	 if(rst)
     {
		P2=table[key];
		rst=0;
		P3_3=0;
		mDelay(100);
		P3_3=1;
		for(i=0;i<40;i++)
		{
			mDelay(250);
			if(rst)
				break;
		} 
	 } 
	 else
	 {
	 	rst=0;
		for(i=0;i<4;i++)
		{
		 	P2=table[key];
			P3_3=0;
			mDelay(200);
			P3_3=1;
			P2=255;
			mDelay(200);
			if(rst)
				break;
		}
	 }
}

⌨️ 快捷键说明

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