獨立按鍵c語言程式詳解?

獨立按鍵c語言程式詳解

方法/步驟

獨立按鍵0~F數碼管顯示,實現加一加二,減一減二數碼管顯示

獨立按鍵c語言程式詳解

#include "reg51.h"//包含標頭檔案,一般情況不需要改動,標頭檔案包含特殊功能暫存器的定義

獨立按鍵c語言程式詳解

#define uint unsigned int

#define uchar unsigned char

sbit k0=P3^0;//定義按鍵

sbit k1=P3^1;//定義按鍵

sbit k2=P3^2;//定義按鍵

sbit k3=P3^3;//定義按鍵

獨立按鍵c語言程式詳解

uchar smg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f

,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0-F

獨立按鍵c語言程式詳解

/******************************************************************/

/* 延時函式宣告 */

/******************************************************************/

/*void mdelay(uint t)

{

uchar n;

for(;t>0;t--)

for(n=0;n<125;n++)

{;}

}*/

void mdelay(uint t)

{

uchar n;

while(t--)

{

for(n=0;n<123;n++)

{;}

}

}

獨立按鍵c語言程式詳解

/******************************************************************/

/* 主函式 */

/******************************************************************/

void main()

{

uchar count=0;

while(1)

{

P2=0x00;

P0=smg[count];//給數碼管賦個初值

if(k0==0)

{

mdelay(100);//去抖動

if(k0==0)

{

P0=smg[count];//k0按下數值加一

count++;

while(!k0);//如果按鍵按下,在此停下;如果按鍵鬆開,繼續檢測

if(count==16)

count=0;

}

}

獨立按鍵c語言程式詳解

if(k1==0)

{

mdelay(100);//去抖動

if(k1==0)

{

P0=smg[count];//k1按下數值減一

while(!k1);

if(count==0)

count=15;

else

count--;

}

}

獨立按鍵c語言程式詳解

if(k2==0)

{

mdelay(100);//去抖動

if(k2==0)

{

P0=smg[count];//k0按下數值加二

count=count+2;

while(!k2);//如果按鍵按下,在此停下;如果按鍵鬆開,繼續檢測

if(count==16)

count=0;

if(count==17)

count=1;

}

}

獨立按鍵c語言程式詳解

if(k3==0)

{

mdelay(100);//去抖動

if(k3==0)

{

P0=smg[count];//k1按下數值減二

while(!k3);

if(count==0)

count=14;

else if(count==1)

count=15;

else

count=count-2;

}

}

}

}

獨立按鍵c語言程式詳解

本經驗只供參考,如有不足,還請見諒。。

相關問題答案