本帖最后由 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(); }
- }
|