本帖最后由 aimie 于 2013-8-29 16:00 编辑
或者有什么其他更好的实现方法
思路是先把显示数据缓存到temp里面,,送0x00(关闭显示),隔一段时间在把temp里面的值赋值到缓存里面 送显示,,,这样循环几次。。。。。。真是基础太差,有想法写不出来。
我下面的代码闪是闪了,,,但是似乎闪的不正常,,,本来定义了4个位闪的只有一个位闪,
我想是不是一下红色部分代码出问题了
void falsh()
{
unsigned char temp[4],i ;
// unsigned char i;
for(i=0;i<3;i++){DspBuf=temp;}
void time5msint()
{
TMOD = 0x01;
TH0 = 0x0D4;
TL0 = 0x0CD;
EA = 1;
ET0 = 1;
TR0 = 1;
}
void Timer0Interrupt(void) interrupt 1
{
TH0 = 0x0D4;
TL0 = 0x0CD;
times[0]--;
times[1]--;
times[2]--;
}
//////////////////////
/* 闪烁 */
void falsh()
{
unsigned char temp[4],i ;
// unsigned char i;
for(i=0;i<3;i++){DspBuf[i]=temp[i];}
if(times[2]<100){for(i=0;i<3;i++){DspBuf[i]=0x0;}TM1629_DEMO2(); }
if(times[2]==0){times[2]=200;for(i=0;i<3;i++){DspBuf[i]=temp[i];}TM1629_DEMO2(); }
}
|