/*
标题:范例 4-6
版本:1.0
Target:89S51
程序描述:这个范例说明如何使用按钮输入数据 (此例中,缺点:循环执行时无法进行其它工作)*/
/* ********************************************************************************* */
#include <REGX51.H>
#define TRUE 1
#define FALSE 0
const
seven_seg[10]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,
0X90};
void delay (void) { /* wait function */
unsigned char i,j; /* only to delay for LED flashes */
for (i=0;i<96;i++)
for(j=0;j<255;j++)
;
}
//
// 函数 keypressed 检查是否有按键按下
//
int keypressed()
{
do {
while (P2_0==1); /* W 用P2^0也可以*/
delay();
if(P2_0==0)
{
delay(); /*利用循环延长一段时间以消除谈起的时间*/
if (P2_0==0) /*再次检查按钮*/
return TRUE;
}
} while(1);
}
void main (void)
{
int c;
P1=seven_seg[c];
do {
if ( keypressed() ) c++;
if(c==10) c=0;
P1=seven_seg[c];
} while(1);
}