📄 timer.c
字号:
#include<LED.h>
#include<timer.h>
byte array = 0;
// word timeout = -1;
byte code right_shift[MAX_MSG][MAX_PIX][6] =
{ {
{0xa4,0xa4,0x24,0x24,0x24,0x24},
{0x34,0x34,0x24,0x24,0x24,0x24},
{0x24,0xA4,0xa4,0x24,0x24,0x24},
{0x24,0x34,0x34,0x24,0x24,0x24},
{0x24,0x24,0xA4,0xa4,0x24,0x24},
{0x24,0x24,0x34,0x34,0x24,0x24},
{0x24,0x24,0x24,0xA4,0xa4,0x24},
{0x24,0x24,0x24,0x34,0x34,0x24},
{0x24,0x24,0x24,0x24,0xA4,0xa4},
{0x24,0x24,0x24,0x24,0x34,0x34},
{0x24,0x24,0x24,0x24,0x24,0xA4},
{0x24,0x24,0x24,0x24,0x24,0x34},
},
{
{0x38,0x48,0x48,0x48,0x48,0x48},
{0x4c,0x48,0x48,0x48,0x48,0x48},
{0x48,0x38,0x48,0x48,0x48,0x48},
{0x48,0x4c,0x48,0x48,0x48,0x48},
{0x48,0x48,0x38,0x48,0x48,0x48},
{0x48,0x48,0x4c,0x48,0x48,0x48},
{0x48,0x48,0x48,0x38,0x48,0x48},
{0x48,0x48,0x48,0x4c,0x48,0x48},
{0x48,0x48,0x48,0x48,0x38,0x48},
{0x48,0x48,0x48,0x48,0x4c,0x48},
{0x48,0x48,0x48,0x48,0x48,0x38},
{0x48,0x48,0x48,0x48,0x48,0x4c},
},
{
{0x64,0x24,0x24,0x24,0x24,0x24},
{0x2C,0x24,0x24,0x24,0x24,0x24},
{0x24,0x64,0x24,0x24,0x24,0x24},
{0x24,0x2C,0x24,0x24,0x24,0x24},
{0x24,0x24,0x64,0x24,0x24,0x24},
{0x24,0x24,0x2C,0x24,0x24,0x24},
{0x24,0x24,0x24,0x64,0x24,0x24},
{0x24,0x24,0x24,0x2C,0x24,0x24},
{0x24,0x24,0x24,0x24,0x64,0x24},
{0x24,0x24,0x24,0x24,0x2C,0x24},
{0x24,0x24,0x24,0x24,0x24,0x64},
{0x24,0x24,0x24,0x24,0x24,0x2C},
},
{
{0x64,0x24,0x24,0x24,0x24,0x34},
{0x2C,0x24,0x24,0x24,0x24,0xa4},
{0x24,0x64,0x24,0x24,0x34,0x24},
{0x24,0x2C,0x24,0x24,0xa4,0x24},
{0x24,0x24,0x64,0x34,0x24,0x24},
{0x24,0x24,0x2C,0xa4,0x24,0x24},
{0x24,0x24,0x34,0x64,0x24,0x24},
{0x24,0x24,0xa4,0x2C,0x24,0x24},
{0x24,0x34,0x24,0x24,0x64,0x24},
{0x24,0xa4,0x24,0x24,0x2C,0x24},
{0x34,0x24,0x24,0x24,0x24,0x64},
{0xa4,0x24,0x24,0x24,0x24,0x2C},
},
{
{0x24,0x24,0x34,0x64,0x24,0x24},
{0x24,0x24,0x2c,0xa4,0x24,0x24},
{0x24,0x24,0x64,0x34,0x24,0x24},
{0x24,0x2c,0x24,0x24,0xa4,0x24},
{0x24,0x64,0x24,0x24,0x34,0x24},
{0x2c,0x24,0x24,0x24,0x24,0xa4},
{0x64,0x24,0x24,0x24,0x24,0x34},
{0x2c,0x24,0x24,0x24,0x24,0xa4},
{0x24,0x64,0x24,0x24,0x34,0x24},
{0x24,0x2c,0x24,0x24,0xa4,0x24},
{0x24,0x24,0x64,0x34,0x24,0x24},
{0x24,0x24,0x2c,0xa4,0x24,0x24},
},
{
{0xc8,0x48,0x48,0x48,0x48,0x48},
{0x58,0x48,0x48,0x48,0x48,0x48},
{0x48,0xc8,0x48,0x48,0x48,0x48},
{0x48,0x58,0x48,0x48,0x48,0x48},
{0x48,0x48,0xc8,0x48,0x48,0x48},
{0x48,0x48,0x58,0x48,0x48,0x48},
{0x48,0x48,0x48,0xc8,0x48,0x48},
{0x48,0x48,0x48,0x58,0x48,0x48},
{0x48,0x48,0x48,0x48,0xc8,0x48},
{0x48,0x48,0x48,0x48,0x58,0x48},
{0x48,0x48,0x48,0x48,0x48,0xc8},
{0x48,0x48,0x48,0x48,0x48,0x58},
},
{
{0x80,0x00,0x00,0x00,0x00,0x00},
{0x10,0x00,0x00,0x00,0x00,0x00},
{0x80,0x80,0x00,0x00,0x00,0x00},
{0x10,0x10,0x00,0x00,0x00,0x00},
{0x80,0x80,0x80,0x00,0x00,0x00},
{0x10,0x10,0x10,0x00,0x00,0x00},
{0x80,0x80,0x80,0x80,0x00,0x00},
{0x10,0x10,0x10,0x10,0x00,0x00},
{0x80,0x80,0x80,0x80,0x80,0x00},
{0x10,0x10,0x10,0x10,0x10,0x00},
{0x80,0x80,0x80,0x80,0x80,0x80},
{0x10,0x10,0x10,0x10,0x10,0x10},
},
{
{0x60,0x00,0x00,0x00,0x00,0x00},
{0xc0,0x00,0x00,0x00,0x00,0x00},
{0x60,0x60,0x00,0x00,0x00,0x00},
{0xc0,0xc0,0x00,0x00,0x00,0x00},
{0x60,0x60,0x60,0x00,0x00,0x00},
{0xc0,0xc0,0xc0,0x00,0x00,0x00},
{0x60,0x60,0x60,0x60,0x00,0x00},
{0xc0,0xc0,0xc0,0xc0,0x00,0x00},
{0x60,0x60,0x60,0x60,0x60,0x00},
{0xc0,0xc0,0xc0,0xc0,0xc0,0x00},
{0x60,0x60,0x60,0x60,0x60,0x60},
{0xc0,0xc0,0xc0,0xc0,0xc0,0xc0},
},
{
{0xa0,0x00,0x00,0x00,0x00,0x00},
{0x14,0x00,0x00,0x00,0x00,0x00},
{0xa0,0xa0,0x00,0x00,0x00,0x00},
{0x14,0x14,0x00,0x00,0x00,0x00},
{0xa0,0xa0,0xa0,0x00,0x00,0x00},
{0x14,0x14,0x10,0x00,0x00,0x00},
{0xa0,0xa0,0xa0,0xa0,0x00,0x00},
{0x14,0x14,0x14,0x14,0x00,0x00},
{0xa0,0xa0,0xa0,0xa0,0xa0,0x00},
{0x14,0x14,0x14,0x14,0x14,0x00},
{0xa0,0xa0,0xa0,0xa0,0xa0,0xa0},
{0x14,0x14,0x14,0x14,0x14,0x14},
},
{
{0x00,0x00,0x00,0x00,0x00,0xc0},
{0x00,0x00,0x00,0x00,0x00,0x18},
{0x00,0x00,0x00,0x00,0xc0,0xc0},
{0x00,0x00,0x00,0x00,0x18,0x18},
{0x00,0x00,0x00,0xc0,0xc0,0xc0},
{0x00,0x00,0x00,0x18,0x18,0x18},
{0x00,0x00,0xc0,0xc0,0xc0,0xc0},
{0x00,0x00,0x18,0x18,0x18,0x18},
{0x00,0xc0,0xc0,0xc0,0xc0,0xc0},
{0x00,0x18,0x18,0x18,0x18,0x18},
{0xc0,0xc0,0xc0,0xc0,0xc0,0xc0},
{0x18,0x18,0x18,0x18,0x18,0x18},
},
{
{0x20,0x00,0x00,0x00,0x00,0x20},
{0x40,0x00,0x00,0x00,0x00,0x40},
{0x20,0x20,0x00,0x00,0x20,0x20},
{0x40,0x40,0x00,0x00,0x40,0x40},
{0x20,0x20,0x20,0x20,0x20,0x20},
{0x40,0x40,0x40,0x40,0x40,0x40},
{0x00,0x00,0x20,0x20,0x00,0x00},
{0x00,0x00,0x40,0x40,0x00,0x00},
{0x00,0x20,0x20,0x20,0x20,0x00},
{0x00,0x40,0x40,0x40,0x40,0x00},
{0x20,0x20,0x20,0x20,0x20,0x20},
{0x40,0x40,0x40,0x40,0x40,0x40},
},
{
{0x80,0x00,0x60,0xc0,0x00,0x20},
{0x10,0x00,0x00,0x40,0x00,0x40},
{0x00,0x80,0x00,0x00,0x00,0x00},
{0x00,0x10,0x18,0x00,0x00,0x00},
{0x00,0x00,0x80,0x00,0xc0,0x00},
{0x00,0x00,0x10,0x18,0x00,0x00},
{0x00,0x00,0x00,0x80,0x00,0x00},
{0x40,0x00,0x00,0x10,0x00,0x00},
{0x20,0x00,0x00,0x00,0x80,0x00},
{0x40,0x00,0x00,0x10,0x10,0x00},
{0x00,0x00,0x00,0x00,0x00,0x80},
{0x18,0x00,0x00,0x1c,0x00,0x10},
},
{
{0x80,0x00,0x00,0x00,0x00,0x00},
{0x10,0x00,0x00,0x00,0x00,0x00},
{0x00,0x80,0x00,0x00,0x00,0x00},
{0x00,0x10,0x00,0x00,0x00,0x00},
{0x00,0x00,0x80,0x00,0x00,0x00},
{0x00,0x00,0x10,0x00,0x00,0x00},
{0x00,0x00,0x00,0x80,0x00,0x00},
{0x00,0x00,0x00,0x10,0x00,0x00},
{0x00,0x00,0x00,0x00,0x80,0x00},
{0x00,0x00,0x00,0x00,0x10,0x00},
{0x00,0x00,0x00,0x00,0x00,0x80},
{0x00,0x00,0x00,0x00,0x00,0x10},
},
{
{0xb4,0x90,0x90,0x90,0x90,0x90},
{0x94,0xb0,0x90,0x90,0x90,0x90},
{0x90,0xb4,0x90,0x90,0x90,0x90},
{0x90,0x94,0xb0,0x90,0x90,0x90},
{0x90,0x90,0xb4,0x90,0x90,0x90},
{0x90,0x90,0x94,0xb0,0x90,0x90},
{0x90,0x90,0x90,0xb4,0x90,0x90},
{0x90,0x90,0x90,0x94,0xb0,0x90},
{0x90,0x90,0x90,0x90,0xb4,0x90},
{0x90,0x90,0x90,0x90,0x94,0xb0},
{0x90,0x90,0x90,0x90,0x90,0xb4},
{0x90,0x90,0x90,0x90,0x90,0x94},
},
};
#pragma save
#pragma optimize (7,SPEED)
static void isr_time0(void) interrupt ISR_T0 using 3
{
byte i;
TH0 = DELAYMS(TM0_CYCLE)>>8; //Reload value
TL0 = DELAYMS(TM0_CYCLE)&0XFF;
TF0 = 0; //clear int flag
LATCH = 0;
EN = 0;
// pt = present_data;
for(i=6;i>0;i--)
{
if(master != 0)
scan_data = com_receive_data[i-1];
else
scan_data = right_shift[array][offset][i-1];//*pt;
DCLK = 0;
DOUT = bit0;
DCLK = 1;
DCLK = 0;
DOUT = bit1;
DCLK = 1;
DCLK = 0;
DOUT = bit2;
DCLK = 1;
DCLK = 0;
DOUT = bit3;
DCLK = 1;
DCLK = 0;
DOUT = bit4;
DCLK = 1;
DCLK = 0;
DOUT = bit5;
DCLK = 1;
DCLK = 0;
DOUT = bit6;
DCLK = 1;
DCLK = 0;
DOUT = bit7;
DCLK = 1;
// send_char_com(0x55);
// send_char_com(0xaa);
// send_char_com(scan_data);
// pt++;
}
LATCH = 1;
frame_cnt++;
send_flag = -1;
// speed_ctrl(5);
// if(frame_cnt>SPEED(SPEED_GRADE))
if(frame_cnt>speed_ctrl)
{
offset = offset+1;
frame_cnt = 0;
refresh_flag = -1;
}
if(offset>=MAX_PIX)
{
offset = 0;
frame_cnt = 0;
array = array + 1;
}
if(array>=MAX_MSG)
{
array = 0;
}
}
#pragma restore
void tmr0_init(void)
{
// TMOD |= 0X01; //TIMER0 MODE 1
bitset(TMOD,0);
bitclr(TMOD,1);
bitclr(TMOD,2);
bitclr(TMOD,3);
TH0 = DELAYMS(TM0_CYCLE)>>8; //Reload value
TL0 = DELAYMS(TM0_CYCLE)&0XFF;
TR0 = 1; //RUN TIMER0
EA = 1;
ET0 = 1; //TIMER0 INT ENABLE
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -