📄 1783.c
字号:
draw_circle(99,30,5,0x07,0xE0,0x07,0xE0); delay(wait*5);
draw_circle(21,39,5,0xFF,0xC0,0xFF,0xC0); delay(wait*5);
draw_circle(69,39,5,0x07,0xE0,0x07,0xE0); delay(wait*5);
draw_circle(81,39,5,0xFF,0xC0,0xFF,0xC0); delay(wait*5);
draw_circle(27,48,5,0x07,0xE0,0x07,0xE0); delay(wait*5);
draw_circle(39,48,5,0x00,0x1F,0x00,0x1F); delay(wait*5);
draw_circle(63,48,5,0xFF,0xC0,0xFF,0xC0); delay(wait*5);
draw_circle(87,48,5,0xFF,0xC0,0xFF,0xC0); delay(wait*5);
draw_circle(57,57,5,0xF8,0x00,0xF8,0x00); delay(wait*5);
draw_circle(69,57,5,0x00,0x1F,0x00,0x1F); delay(wait*20);
draw_circle(64,144,5,0x00,0x1F,0x00,0x1F); delay(wait*20);
for(i=0;i<=50;i+=10) //dotted line
{
draw_line(64,123-i,64,118-i,0xFF,0xFF); //white
delay(wait*2);
}
}
void Snooker_demo() // snooker
{
int i;
fill(1);
draw_rect(10,10,117,149,0xFB,0xE0,0xFB,0xE0); //table border line deep, fill light
delay(wait);
draw_rect(15,15,112,144,0xFB,0xE0,0x07,0xE0); //green table (both line & fill color = deep green)
delay(wait);
draw_circle(15,15,7,0x00,0x00,0x00,0x00); // 6 pockets
draw_circle(112,15,7,0x00,0x00,0x00,0x00);
draw_circle(15,144,7,0x00,0x00,0x00,0x00);
draw_circle(112,144,7,0x00,0x00,0x00,0x00);
draw_circle(15,79,7,0x00,0x00,0x00,0x00);
draw_circle(112,79,7,0x00,0x00,0x00,0x00);
fill(1);
for(i=0;i<48;i+=12) // 4 red balls on first line
{
draw_circle(46+i,28,5,0xF8,0x00,0xF8,0x00);
}
for(i=0;i<36;i+=12) // 3 red balls on second line
draw_circle(52+i,38,5,0xF8,0x00,0xF8,0x00);
for(i=0;i<24;i+=12) // 2 red balls on third line
draw_circle(58+i,48,5,0xF8,0x00,0xF8,0x00);
draw_circle(64,58,5,0xF8,0x00,0xF8,0x00); // 1 red ball on bottom line
delay(wait*20);
draw_circle(64,129,5,0xFF,0xFF,0xFF,0xFF); // white ball
delay(wait*30);
draw_rect(63,147,65,149,0xFF,0xFF,0xFF,0xFF); // sticker moving - line & fill = white
for(i=1;i<11;i++)
{
draw_rect(63,147-i,65,149-i,0xFF,0xFF,0xFF,0xFF); // line & fill = white
delay(wait);
draw_rect(63,149-i,65,149,0x00,0x00,0x00,0x00); // line & fill = black
delay(wait);
}
for(i=0;i<59;i++)
{
copy_region(58,124-i,69,135,58,123-i); // white ball moving
delay(wait);
}
copy_region(25,22,91,64,25,21); // all balls move up 2 pixels
copy_region(25,21,91,63,25,20);
delay(wait);
fill(1);
for(i=1;i<6;i++)
{
draw_circle(48-i*2,28-i,5,0x07,0xE0,0x07,0xE0); // top left ball clear
draw_circle(80+i*2,28-i,5,0x07,0xE0,0x07,0xE0); // top right ball clear
draw_circle(58,28-i,5,0x07,0xE0,0x07,0xE0); // middle 1 ball clear
draw_circle(70,28-i,5,0x07,0xE0,0x07,0xE0); // middle 2 ball clear
draw_circle(46-i*2,27-i,5,0xF8,0x00,0xF8,0x00); // top left ball move
draw_circle(82+i*2,27-i,5,0xF8,0x00,0xF8,0x00); // top right ball move
draw_circle(58,27-i,5,0xF8,0x00,0xF8,0x00); // middle 1 ball move
draw_circle(70,27-i,5,0xF8,0x00,0xF8,0x00); // middle 2 ball move
delay(wait);
}
for(i=1;i<4;i++)
{
draw_circle(39-i*3,21+i,5,0x07,0xE0,0x07,0xE0); // top left ball clear
draw_circle(89+i*3,21+i,5,0x07,0xE0,0x07,0xE0); // top right ball clear
draw_circle(58,21+i,5,0x07,0xE0,0x07,0xE0); // middle 1 ball clear
draw_circle(70,21+i,5,0x07,0xE0,0x07,0xE0); // middle 2 ball clear
draw_circle(36-i*3,22+i,5,0xF8,0x00,0xF8,0x00); // top left ball move
draw_circle(92+i*3,22+i,5,0xF8,0x00,0xF8,0x00); // top right ball move
draw_circle(58,22+i,5,0xF8,0x00,0xF8,0x00); // middle 1 ball move
draw_circle(70,22+i,5,0xF8,0x00,0xF8,0x00); // middle 2 ball move
delay(wait*3);
}
draw_circle(101,25,5,0x07,0xE0,0x07,0xE0); // top right ball clear
}
/****************************************************
* Demo Program for SSD1781 *
****************************************************/
void rotate_line_full()
{
int i,line_count,r,d,color1,color2;
color1=0x00;
color2=0x00;
for(i=0;i<8;i++)
{
r=50;
d=3-r*2;
for(line_count=0; line_count<r; line_count++)
{
color1++;
color2++;
if(!(i%4))
{
draw_line(64-line_count,64-r,64+line_count,64+r,color1+0x0C,color2+0x0C);
}
if(i%4)
{
draw_line(64+line_count,64-r,64-line_count,64+r,color1+0x0C,color2+0x0C);
}
if((i%4)==2)
{
draw_line(64-r,64+line_count,64+r,64-line_count,color1+0x80,color2);
}
if((i%4)==3)
{
draw_line(64-r,64-line_count,64+r,64+line_count,color1+0x80,color2);
}
if(d<0)
{
d+=4*line_count+6;
}
else
{
d+=4*(line_count-r)+10;
r--;
}
delay(wait);
}
}
}
void clock_circle()
{
int i,r,d,sec;
fill(1); // clock outline and color
draw_circle(64,64,50,0xf8,0x00,0xFF,0xC0); // (64,64) r=50 with light yellow background color filled
delay(wait);
fill(0); // pointer routine
draw_circle(64,64,40,0xf8,0x00,0xF8,0x00); // (64,64) r=40 without fill - line red and light yellow fill
draw_line(64,15,64,24,0x00,0x1F); // 3,6,9,12 o'clock marking with blue color
draw_line(112,64,103,64,0x00,0x1F);
draw_line(64,112,64,103,0x00,0x1F);
draw_line(15,64,24,64,0x00,0x1F);
delay(wait*20);
draw_line(65,63,91,60,0x00,0x1F); // Hour pointer
draw_line(65,64,91,60,0x00,0x1F);
draw_line(66,65,88,61,0x00,0x1F);
delay(wait*10);
draw_line(57,28,63,64,0xF8,0xF8); // Minute pointer
draw_line(57,28,64,64,0xF8,0xF8);
draw_line(58,33,65,64,0xF8,0xF8);
draw_line(58,32,66,64,0xF8,0xF8);
delay(wait*10);
r=38; // second pointer moving
d=3-2*r;
for(sec=0;sec<r-10;sec+=2)
{
draw_line(64,64,64-r,64-sec,0x0F,0x0F);
delay(wait*20); // assume wait = 1sec
draw_line(64,64,64-r,64-sec,0xFF,0xC0);
for(i=0;i<2;i++)
{
if (d<0)
d+=4*sec+6;
else
{
d+=4*(sec-r)+10;
r--;
}
}
}
}
//1781 application
/****************************************************
* E) Main Program *
****************************************************/
void main(void)
{
resetchip();
init_lcd();
do
{
fill(1);
draw_rect(0,0,131,159,0xff,0xff,0xff,0xff);
delay(wait*10);
fill(1);
draw_rect(31,49,95,109,0x00,0x00,0x00,0x00);
delay(wait*1500);
fill(1);
draw_rect(0,0,131,159,0x00,0x00,0x00,0x00);
delay(wait*10);
fill(1);
draw_rect(31,49,95,109,0xff,0xff,0xff,0xff);
delay(wait*1500);
fill(1);
draw_rect(0,0,131,159,0xf8,0x00,0xf8,0x00);
delay(wait*1500);
fill(1);
draw_rect(0,0,131,159,0x07,0xe0,0x07,0xe0);
delay(wait*1500);
fill(1);
draw_rect(0,0,131,159,0x00,0x1f,0x00,0x1f);
delay(wait*1500);
//**************** Load_pattern about LOGO and part no. ************//
Note_line(); // Note Line demo
delay(wait*10);
fill(1); draw_rect(0,0,131,159,0xff,0xff,0xff,0xff); delay(wait*10);
rotate_line();
delay(wait*20);
fill(1); draw_rect(0,0,131,159,0xff,0xff,0xff,0xff); delay(wait*10);
Bubbles_circle();
delay(wait*50);
fill(1); draw_rect(0,0,131,159,0xff,0xff,0xff,0xff); delay(wait*10);
Snooker_demo();
delay(wait*50);
fill(1); draw_rect(0,0,131,159,0xff,0xff,0xff,0xff); delay(wait*10);
rotate_line_full();
delay(wait*20);
fill(1); draw_rect(0,0,131,159,0xff,0xff,0xff,0xff); delay(wait*10);
clock_circle();
delay(wait*20);
} while(-1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -