點陣屏的原始最少刷新時間為1ms
就算改到10us也依然漏點
代碼設3ms刷新
ezgif.com-gif-maker (2).gif (606.74 KB, 下載次數: 61)
下載附件
3ms刷新
2021-7-31 03:12 上傳
代碼設300ms刷新
ezgif.com-gif-maker.gif (688.96 KB, 下載次數: 52)
下載附件
300ms刷新
2021-7-31 03:12 上傳
單片機代碼如下
- #include <STC89C5xRC.H>//Code:8k Ram:512 xdata:256 EEProm:5k Addr:0x2000
- typedef unsigned char u8; //0 to 255
- typedef unsigned int u16; //0 to 65535
- u16 TMR_00_OT;
- u16 TMR_01_OT;
- unsigned char code Test[]={
- 0x80,0x00,0x88,0x00,0x88,0x00,0x88,0x00,0xfc,0x3f,0x84,0x00,0x82,0x00,0x81,0x00,
- 0x80,0x00,0xfc,0x1f,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0xff,0x7f,0x00,0x00, // 生
- 0x00,0x00,0xf8,0x0f,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xf8,0x0f,
- 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xf8,0x0f,0x08,0x08, // 日
- 0x08,0x02,0x08,0x02,0x08,0x02,0xc8,0x1f,0x18,0x12,0x2a,0x12,0x0a,0x12,0x0a,0x12,
- 0xe9,0x7f,0x08,0x02,0x08,0x05,0x08,0x05,0x88,0x08,0x88,0x08,0x48,0x10,0x28,0x60, // 快
- 0x00,0x04,0x00,0x0f,0xf8,0x00,0x08,0x00,0x88,0x00,0x84,0x00,0x84,0x00,0xfc,0x3f,
- 0x80,0x00,0x90,0x04,0x90,0x08,0x88,0x10,0x84,0x20,0x82,0x20,0xa0,0x00,0x40,0x00, // 樂
- };
- void Timer1Init(void)
- {
- //AUXR |= 0x40; //定時器時鐘1T模式
- TMOD &= 0x0F; //設置定時器模式
- TMOD |= 0x10; //設置定時器模式
- TL1 = 0x18; //設置定時初始值1ms@12.000MHz 12T
- TH1 = 0xFC; //設置定時初始值1ms@12.000MHz 12T
- TF1 = 0; //清除TF0標志
- TR1 = 1; //定時器0開始計時
- }
- void timer1_int (void) interrupt 3
- {
- TL1 = 0x18; //設置定時初始值1ms@12.000MHz 12T
- TH1 = 0xFC; //設置定時初始值1ms@12.000MHz 12T
- if(TMR_00_OT)TMR_00_OT--;
- if(TMR_01_OT)TMR_01_OT--;
- }
- void Sys_Init(void)
- {
- ET1 = 1; //Timer1 interrupt Enable
- EA = 1; //All interrupt Enable
- TMR_00_OT=0;
- TMR_01_OT=6000;
- }
- void main()
- {
- u8 i=0, j=0;
- Timer1Init();
- Sys_Init();
- while (1)
- {
- if(!TMR_00_OT)
- {TMR_00_OT=300;//<span style="background-color: rgb(255, 255, 255);">刷新時間,單位ms</span>
- P3=Test[i+1+j*32];
- P1=Test[i+j*32];
- P0 = (~((u16)1<<(i/2)))%256;
- P2 = (~((u16)1<<(i/2)))/256;
- i+=2;
- if(i>30)i=0;
- }
- if(!TMR_01_OT)
- {TMR_01_OT=6000;
- //j++;
- if(j>3)j=0;
- }
-
- }
- }
復制代碼
怎么破?
|