- /*********
- 函數功能:模擬時鐘
- **********/
- void LCD_Draw_Point_h(u16 Xpos, u16 Ypos, u16 Color)
- {
- int i;
- LCD_ILI9486_CMD(0x2A); //發送0x2A命令,設置X軸坐標
- LCD_ILI9486_Parameter((Xpos -2& 0xff00) >> 8); //發送X軸起始坐標的高8位
- LCD_ILI9486_Parameter((Xpos -2& 0x00ff)); //發送X軸起始坐標的低8位
- LCD_ILI9486_Parameter((Xpos +2& 0xff00) >> 8); //發送X軸結束坐標的高8位
- LCD_ILI9486_Parameter((Xpos +2& 0x00ff)); //發送X軸結束坐標的低8位
- LCD_ILI9486_CMD(0x2B); //發送0x2B命令,設置Y軸坐標
- LCD_ILI9486_Parameter((Ypos -2& 0xff00) >> 8); //發送Y軸起始坐標的高8位
- LCD_ILI9486_Parameter((Ypos -2& 0x00ff)); //發送Y軸起始坐標的低8位
- LCD_ILI9486_Parameter((Ypos +2& 0xff00) >> 8); //發送Y軸結束坐標的高8位
- LCD_ILI9486_Parameter((Ypos +2& 0x00ff)); //發送Y軸結束坐標的低8位
- LCD_ILI9486_CMD(0x2C);//發送像素點的顏色信息
- for(i=0;i<25;i++)//顏色漸變
- LCD_ILI9486_Parameter(Color);
- }
- void LCD_Draw_Point_m(u16 Xpos, u16 Ypos, u16 Color)
- {
- int i;
- LCD_ILI9486_CMD(0x2A); //發送0x2A命令,設置X軸坐標
- LCD_ILI9486_Parameter((Xpos -1& 0xff00) >> 8); //發送X軸起始坐標的高8位
- LCD_ILI9486_Parameter((Xpos -1& 0x00ff)); //發送X軸起始坐標的低8位
- LCD_ILI9486_Parameter((Xpos +1& 0xff00) >> 8); //發送X軸結束坐標的高8位
- LCD_ILI9486_Parameter((Xpos +1& 0x00ff)); //發送X軸結束坐標的低8位
- LCD_ILI9486_CMD(0x2B); //發送0x2B命令,設置Y軸坐標
- LCD_ILI9486_Parameter((Ypos -1& 0xff00) >> 8); //發送Y軸起始坐標的高8位
- LCD_ILI9486_Parameter((Ypos -1& 0x00ff)); //發送Y軸起始坐標的低8位
- LCD_ILI9486_Parameter((Ypos +1& 0xff00) >> 8); //發送Y軸結束坐標的高8位
- LCD_ILI9486_Parameter((Ypos +1& 0x00ff)); //發送Y軸結束坐標的低8位
- LCD_ILI9486_CMD(0x2C);//發送像素點的顏色信息
- for(i=0;i<9;i++)//顏色漸變
- LCD_ILI9486_Parameter(Color);
- }
- void LCD_Draw_Point_s(u16 Xpos, u16 Ypos, u16 Color)
- {
- //int i;
- LCD_ILI9486_CMD(0x2A); //發送0x2A命令,設置X軸坐標
- LCD_ILI9486_Parameter((Xpos & 0xff00) >> 8); //發送X軸起始坐標的高8位
- LCD_ILI9486_Parameter((Xpos & 0x00ff)); //發送X軸起始坐標的低8位
- LCD_ILI9486_Parameter((Xpos & 0xff00) >> 8); //發送X軸結束坐標的高8位
- LCD_ILI9486_Parameter((Xpos & 0x00ff)); //發送X軸結束坐標的低8位
- LCD_ILI9486_CMD(0x2B); //發送0x2B命令,設置Y軸坐標
- LCD_ILI9486_Parameter((Ypos & 0xff00) >> 8); //發送Y軸起始坐標的高8位
- LCD_ILI9486_Parameter((Ypos & 0x00ff)); //發送Y軸起始坐標的低8位
- LCD_ILI9486_Parameter((Ypos & 0xff00) >> 8); //發送Y軸結束坐標的高8位
- LCD_ILI9486_Parameter((Ypos & 0x00ff)); //發送Y軸結束坐標的低8位
- LCD_ILI9486_CMD(0x2C);//發送像素點的顏色信息
- //for(i=0;i<9;i++)//顏色漸變
- LCD_ILI9486_Parameter(Color);
- }
- void draw_line_h(u16 a,u16 b,double u,u16 r,u16 color)
- {
- u16 x,y,i;
- for(i=0;i<r;i++)
- {
- x=a+i*cos(u);
- y=b+i*sin(u);
- LCD_Draw_Point_h(x,y,color);
- }
- }
- void draw_line_m(u16 a,u16 b,double u,u16 r,u16 color)
- {
- u16 x,y,i;
- for(i=0;i<r;i++)
- {
- x=a+i*cos(u);
- y=b+i*sin(u);
- LCD_Draw_Point_m(x,y,color);
- }
- }
- void draw_line_s(u16 a,u16 b,double u,u16 r,u16 color)
- {
- u16 x,y,i;
- for(i=0;i<r;i++)
- {
- x=a+i*cos(u);
- y=b+i*sin(u);
- LCD_Draw_Point_s(x,y,color);
- }
- }
- //主函數
- int t,m,s,h;
- LCD_Init();
- yuan(156,110,90,BLACK);//見上一個帖子
- while(1)
- {
- for(t=0;t<12;t++)
- {
- draw_line_h(156,110,3.14*(6.0/180)*t,50,BLACK);
- for(m=0;m<60;m++)
- {
- draw_line_m(156,110,3.14*(6.0/180)*m,70,BLACK);
- for(s=0;s<60;s++)
- {
- draw_line_s(156,110,3.14*(6.0/180)*s,90,BLACK);
- delay_ms(500);
- draw_line_s(156,110,3.14*(6.0/180)*s,90,WHITE);
- if(s==m)
- {
- //再畫一下分鐘
- draw_line_m(156,110,3.14*(6.0/180)*m,70,BLACK);
- }
- else if(s==t)
- {
- //再畫一下時鐘
- draw_line_h(156,110,3.14*(6.0/180)*t,50,BLACK);
- }
- }
- draw_line_m(156,110,3.14*(6.0/180)*m,70,WHITE);
- if(m==t*5)
- {
- //在畫一下時鐘
- draw_line_h(156,110,3.14*(6.0/180)*t,50,BLACK);
- }
- }
- draw_line_h(156,110,3.14*(6.0/180)*t,50,WHITE);
- }
- }
- }
視頻:
新建文件夾 (2).rar
(7.56 MB, 下載次數: 27)
2019-10-22 13:16 上傳
點擊文件名下載附件
|