【51蛋骗鸡单按键控制计数开始暂停复位】
缘由为什么把TR0置零后 计数器的值也会清零啊-编程语言-CSDN问答
#include<reg52.h>//头文件
unsigned char code smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
unsigned char alt;//数据移动定时时间
void zdsz()
{TMOD=0x01;//定时器0 模式1 16位定时模式TH0=-5000>>8;//(65536-10000)/256;//定时10.000ms12MTL0=-5000;//(65536-10000)%256;ET0=1;//使能定时器0EA=1;//开启总中断TR0=0;//开始计数
}
void main() //主函数
{unsigned char b=0, j=0, xd=0, h=0, aa=0, sj=0, ls=1;unsigned int ys=0;zdsz();while(1){P3=~smgduan[j/10];P2=~smgduan[j%10];if(P1==0xFE&&++xd==0) //定义按键K1,按键接P1^0口 1111 1110 接地变为低电平{++b;while(P1==0xFE);}if(b==1){TR0=1;}else if(b==2){TR0=0;}else if(b==3){j=b=0;}if(alt==20){if(++j==100)j=0;alt=0;}}
}
void timer0() interrupt 1
{TH0=-5000>>8;TL0=-5000;++alt;
}