51单片机控制触碰开关,每次按下一下,显示屏数值加1
#include void?Timer0Init(void)??//1毫秒@12。 000MHz { ?AUXR?&=?0x7F;??//定时器时钟12T模式 ?TMOD?&=?0xF0;??//设置定时器模式 ?TMOD?|=?0x01;??//设置定时器模式 ?TL0?=?0x18;??//设置定时初值 ?TH0?=?0xFC;??//设置定时初值 ?ET0?=?1;??//清除TF0标志 ?TR0?=?1;??//定时器0开始计时 } void?interrupttimer0()?interrupt?1 { ????static?unsigned?char?i?=?0; ?????...全部
#include void?Timer0Init(void)??//1毫秒@12。
000MHz { ?AUXR?&=?0x7F;??//定时器时钟12T模式 ?TMOD?&=?0xF0;??//设置定时器模式 ?TMOD?|=?0x01;??//设置定时器模式 ?TL0?=?0x18;??//设置定时初值 ?TH0?=?0xFC;??//设置定时初值 ?ET0?=?1;??//清除TF0标志 ?TR0?=?1;??//定时器0开始计时 } void?interrupttimer0()?interrupt?1 { ????static?unsigned?char?i?=?0; ?????TL0?=?0x18;??//设置定时初值 ?????TH0?=?0xFC;??//设置定时初值 ????if(key==0) { ????t ; if(t>=10) { ????t?=?10; ??num ; if(num?>=?100) { ????num?=?0; } } } else { ????t?=?0; } ? P0?=?0xFF; switch(i) { ????case?0:?P0?=?ledchar[num];?P2?=?0xFe;?i=1;?break;//ledchar?是数码管的段码表,P0接段选,?P2?接位选,共阴极数码管 case?1:?P0?=?ledchar[num/10];?P2?=?0xFD;?i?=?0;?break; default:?break; } } 追答 : main函数里 调用 init 的那个初始化函数, 然后主循环里空着就好 追答 : num 可以在开头就定义成 一个char 变量。收起