|
****************************************************************************************************************************************** #include<at89x51.h> void init(); void delay(); int low[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0 1 2 3 4 5 6 7 8 9 ************* int count=1; int k=0; //******************************************************************************************************************************************* void main() { //选多路数码管的最后一位, 不用改变!~ //P1=11111110; while(1) {
while(count<20) { init();//延时20秒! count++; }
while(TF0==1) //50ms的时间已到了********************************** { ;P0=low[k]; k++; delay(); TF0=0;
while(k>=10) { k=0; } count=1; } }
}
//****************************************************************************************** void init() { TMOD=00000001;//TRX=1时启动定时器。定时器工作方式。16位工作方式。只设置T0,T1随意。 TR0=1; //TCON=00010000出错? TH0=0x3C; //65536-50000=15536 用计算器算得:3CB0 。50000微秒,即50毫秒。 TL0=0xB0;
} //****************************************************************************************** void delay() { int i,j; for(i=0;i<50;i++) for(j=0;j<20;j++); } //******************************************************************************************
为什么我设置的这个1s的定时完全不起作用呢 编译器好像直接把它当成普通的程序执行了 求助 谢谢!!
|
|