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

📄 anjian.c

📁 一个单片机的按键程序。没有使用延时。但是使用其他的方式来达到了延时的目的。
💻 C
字号:
#include<reg51.h>
#include<intrins.h>
#include<stdio.h>
#include<absacc.h>
#define uchar unsigned char
#define uint unsigned int
///////////////////////////////////
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//段显示码0-f
uchar BUFFER[13]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00};              //显示缓冲区
uchar m;
uchar timer=0;
bit key_on=0;				  //锁键变量
bit flag;
bit button=0;
bit button1=0;
bit button2=0;
sbit Key0=P2^3;
sbit Key1=P2^4;
sbit Key2=P2^5;



void	key(void)		   //按键设置
{uchar i;

uchar j=0;
uchar l=0;
uchar k[7];


 P2=0xff;
 if(Key0==0){
 	if(Key0==0&&key_on==0)
	{key_on=1;}
	if(Key0==0&&key_on==1)
	{
         m++;
	 if(m>=13){m=0;}
         } }
 if(m){P2=0xff;
      	if(P2!=0xff){
		if(Key1==0&&button==0){button=1;}
		if(Key1==0&&button==1){BUFFER[m]=BUFFER[m]+1;
                                       if(BUFFER[m]>=10){BUFFER[m]=0;}}
		if(Key2==0&&button1==0){button1=1;}
		if(Key2==0&&button1==1){BUFFER[m]=BUFFER[m]-1;
                                        if(BUFFER[m]<0){BUFFER[m]=0;} }
	              }
         if(P2==0xff){j++;
                   if(j==1000){j=0;l++;
                               if(l=256){l=0;
                                         m=0;
                                         key_on=0;
                                         button1=0;
                                         button2=0;
                                         }
                               }
                      }
              }


}

void play(){
uchar i;
if(timer>=10)
{timer=0;
BUFFER[0]++;}
P1=0xff;
P0=0xff;
for(i=0;i<8;i++)
    {P0=table[BUFFER[i]];
    if(i<8)
    {P1=_crol_(0xfe,i);}
    }
}

main(){
while(1){
play();
key();}}
void timer0(void) interrupt 1 using 1      //中断部分
{
  TH0=0x3c;
  TL0=0xb0;
  timer++;  							   // 记时
}

⌨️ 快捷键说明

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