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

实验名称:独立按键实验一

实验目的:数码管前三位显示一个跑表,从000到999之间

       以1%秒速度运行,当按下一个独立键盘时跑表

  停止,松开手后跑表继续。用定时器设计表。

实验备注:按下按键时跑表是停止了,但只显示最后一位

  数字,因为执行按键程序的while了,display

 就没有继续动态显示前两位数码管的数字,能

 否改善这个问题咧?

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


#include<reg52.h>


#define uchar unsigned char

#define uint unsigned int


sbit key_01 = P3^4;

sbit DUAN = P2^6;

sbit WEI = P2^7;


uchar flag;

uint num;

uchar bai, shi, ge;

uchar code duan_table[]=

{0x3f,0x06,0x5b,0x4f,

 0x66,0x6d,0x7d,0x07,

 0x7f,0x6f,0x77,0x7c,

 0x39,0x5e,0x79,0x71};


uchar code wei_table[]=

{0xfe,0xfd,0xfb,

 0xf7,0xef,0xdf};


void delay_1ms(uchar);

void display(uchar,uchar,uchar);


void main()

{


num = 0;

flag = 0;

TMOD = 0x01;

TH0 = (65536-9216)/256;

TL0 = (65536-9216)%256;

EA = 1;

ET0 = 1;

TR0 = 1;

while(1)

{

while(key_01 == 0)//等待按键释放

{

delay_1ms(5);

if(key_01 == 0)

{

ET0 = 0;

}

}

ET0 = 1;

if(flag == 10)

{

flag