这个程序能显示数字但是不能倒记时,数字一直显示15,请高手帮忙找找原因,谢谢!<br />#include<reg51.h><br />#include<absacc.h><br />#define zhiwei XBYTE [0x3fff] //字位的地址<br />#define zhixing XBYTE [0x5fff] //字型的地址<br />#define deng XBYTE [0x1fff] //灯的地址<br />#define uchar unsigned char<br />#define uint unsigned int<br />light(uchar a) ;<br />xianshi(uint b);<br />void delay();<br /><br />uint e,b;<br />//===============中断服务程序===================<br />time() interrupt 1 using 1<br />{TH0=0x3c;<br />TL0=0xb0;<br />if(--e==0)<br />{--b;<br />e=20;}<br />}<br />void delay()<br />{uint i;<br />for(i=0;i<100;++i);<br />}<br />//====灯显示程序====<br />light(uchar a)<br />{deng=a;<br />}<br />//===倒记时程序========<br />xianshi(uint b)<br />{while(b)<br />{const unsigned char design[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xf8,0x80,0x90};<br />zhiwei=0x02; //确定字位<br />zhixing=design[b/10]; //确定字型<br />zhiwei=0x00;<br />delay();<br />zhiwei=0x01;<br />zhixing=design[b%10];<br />zhiwei=0x00;<br />delay();<br /><br />}<br />}<br /><br />void main()<br />{<br />e=20;<br />TMOD=0X01; //定时和中断的初始化<br />EA=1;<br />TR0=1;<br />ET0=1;<br />TH0=0x3c;<br />TL0=0xb0;<br />while(1)<br />{light(0x80);<br />xianshi(15);<br />light(0x40);<br />xianshi(6);<br />light(0x20);<br />xianshi(7);<br />}<br />}<br /> |
|