我写了一个程序想要让数码管显示1234.2345.3456.4567.5678.6789.789a.89ab.9abc.abcd.bcde.cdef.这样循环显示前面已经改得差不多了,但是我要它不停的循环,也就是说当它显示到cdef后又要显示1234我怎么写.我到这里就卡壳了,高手指点一下<br />#include <AT89X51.H>//声明<br />unsigned char LedT0;<br />unsigned char Led1;<br />unsigned char Led2;<br />unsigned char Led3;<br />unsigned char Led4;<br />unsigned int i;<br />const unsigned char table[16]={0x28,0xEB,0x32,0xA2,0xE1,0xA4,0x24,0xEA,0x20,0xA0,0x60,0x25,0x3c,0x23,0x34,0x74};<br /><br />void int1() interrupt 1 using 1<br />{<br /> TF0 = 0; //清定时0中断标志<br /> TH0 = 0xF6; //2.5MS<br /> TL0 = 0x3D;<br /> <br /> P2 |= 0xF0; //对P2口的高四位置1,关数码管<br /><br /> switch(LedT0)<br /> { case 0:<br /> P0 = table[Led1];<br /> P2_4 = 0;<br /> LedT0 = 1;<br /> break;<br /> case 1:<br /> P0 = table[Led2];<br /> P2_5 = 0;<br /> LedT0 = 2;<br /> break;<br /> case 2:<br /> P0 = table[Led3];<br /> P2_6 = 0;<br /> LedT0 = 3;<br /> break;<br /> case 3:<br /> P0 = table[Led4];<br /> P2_7 = 0;<br /> LedT0 = 0;<br /> break;<br /> default://语句d<br /> LedT0 = 0;<br /> break;<br /> }<br />}<br />void main(void) //主程序<br />{<br /> TMOD = 0x01; //设定T0为十六位定时模式。<br /> TH0 = 0xF6;<br /> TL0 = 0x3D; //2MS<br /> TR0 = 1; //开定时器0<br /> ET0 = 1; //致能定时0中断<br /> TF0 = 0; //清定时0中断标志<br /> EA = 1; //开总中断<br /> <br /> LedT0 = 0;<br /> <br /> Led1 = 1;<br /> Led2 = 2;<br /> Led3 = 3;<br /> Led4 = 4;<br /> for(i=0;i<60000;i++);<br /> for(LedT0=0;LedT0<12;LedT0++)循环<br />{<br /> LedT0+=1;<br /> Led1+=1;<br /> Led2+=1;<br /> Led3+=1;<br /> Led4+=1;<br /> for(i=0;i<60000;i++);}<br />} |
|