彩屏 表盘 时钟.zip
解压之后,main文件中,有keil能打开的文件
打开后,应该是这个样子,(不太确定,新的机子上keil需不需要设置文件路径)
个人偏好用Source Insight编辑,这个对应的文件放在了source文件夹下,.PR格式
打开后是这样
如果打不开文件,留言我帮你解决!继续努力做...压缩包里的ILI9325控制器驱动跟GUI函数,如果能用到彩屏,那可以直接复制到你的工程中就能用。目前2.4寸最多用的控制器貌似是9325.
需要电脑的一个串口,波特率可调,很好用...详见PDF,有代码实例
——回复可见内容——
#include "STC12C5A.h"
#include "delay.h"
#include "ds1302.h"
#include "ILI9325.h"
#include "gui.h"
void Draw_Scale(void);
uint X_axis[] = {120, 128, 136, 144, 152, 159, 166, 172, 178, 183, 188, 191, 194, 196, 198, 198,
198, 196, 194, 191, 188, 183, 178, 172, 166, 159, 152, 144, 136, 128, 120,
112, 104, 96, 88, 81, 74, 68, 62, 57, 52, 49, 46, 44, 42, 42,
42, 44, 46, 49, 52, 57, 62, 68, 74, 81, 88, 96, 104,112};
uint Y_axis[] = { 42, 42, 44, 46, 49, 52, 57, 62, 68, 74, 81, 88, 96, 104,112, 120,
128, 136, 144, 152, 159, 166, 172, 178, 183, 188, 191, 194, 196, 198, 198,
198, 196, 194, 191, 188, 183, 178, 172, 166, 159, 152, 144, 136, 128, 120,
112, 104, 96, 88, 81, 74, 68, 62, 57, 52, 49, 46, 44, 42};
//时针终止坐标
uint Hour_Xaxis[] = {120, 123, 126, 129, 132, 136, 139, 142, 144, 147,
150, 153, 155, 158, 160, 162, 165, 167, 169, 170,
172, 173, 175, 176, 177, 178, 179, 179, 180, 180,
180, 180, 180, 179, 179, 178, 177, 176, 175, 173,
172, 170, 169, 167, 165, 162, 160, 158, 155, 153,
150, 147, 144, 142, 139, 136, 132, 129, 126, 123,
120, 117, 114, 111, 108, 104, 101, 98, 96, 93,
90, 87, 85, 82, 80, 78, 75, 73, 71, 70,
68, 67, 65, 64, 63, 62, 61, 61, 60, 60,
60, 60, 60, 61, 61, 62, 63, 64, 65, 67,
68, 70, 71, 73, 75, 78, 80, 82, 85, 87,
90, 93, 96, 98, 101, 104, 108, 111, 114, 117,
};
uint Hour_Yaxis[] = { 60, 60, 60, 60, 61, 62, 63, 64, 65, 67,
68, 70, 71, 73, 75, 78, 80, 82, 85, 87,
90, 93, 96, 98, 101, 104, 108, 111, 114, 117,
120, 123, 126, 129, 132, 136, 139, 142, 144, 147,
150, 153, 155, 158, 160, 162, 165, 167, 169, 170,
172, 173, 175, 176, 177, 178, 179, 180, 180, 180,
180, 180, 180, 180, 179, 178, 177, 176, 175, 173,
172, 170, 169, 167, 165, 162, 160, 158, 155, 153,
150, 147, 144, 142, 139, 136, 132, 129, 126, 123,
120, 117, 114, 111, 108, 104, 101, 98, 96, 93,
90, 87, 85, 82, 80, 78, 75, 73, 71, 70,
68, 67, 65, 64, 63, 62, 61, 60, 60, 60,
};
uchar Second_Count = 0;
uchar Minute_Count = 0;
uchar Hour_Count = 0;
uint Sum_Minute = 0;
uchar s;
void main()
{
ILI9325_initial();/*TFT彩屏初始化*/
delayms(20);
GUI_clearscreen(0);
TMOD=0x01;
TH0=0xb8;//装入初值,定时10ms
TL0=0;
ET0=1;
EA=1;
TR0=1;
while(1)
{
}
}
void Time0_Ser(void) interrupt 1
{
uchar i;
TH0=0xb8;//装入初值,定时10ms
TL0=0;
i++;
Display_DS1302(); //获取此刻实时时间,并将数据保存到预先设置的数组中
if(i == 80) //判断是否90次中断时间,即为<<1s
{
i = 0;
GUI_line(120,120,X_axis[Second_Count],Y_axis[Second_Count],0);//清除前一秒的秒针
GUI_line(120,120,X_axis[Minute_Count],Y_axis[Minute_Count],0);
GUI_line(120,120,Hour_Xaxis[s],Hour_Yaxis[s],0);
Second_Count = (tab2[6]-0x30)*10+(tab2[7]-0x30); //计算下一秒秒针直线的结束坐标
Minute_Count = (tab2[3]-0x30)*10+(tab2[4]-0x30);
Hour_Count = (tab2[0]-0x30)*10+(tab2[1]-0x30);
if (Hour_Count>=12)
{
Hour_Count-=12;
}
Sum_Minute = Hour_Count*60 + Minute_Count;
s = Sum_Minute/6;
GUI_line(120,120,X_axis[Second_Count],Y_axis[Second_Count],RED);//画新的秒针
GUI_line(120,120,X_axis[Minute_Count],Y_axis[Minute_Count],YELLOW);
GUI_line(120,120,Hour_Xaxis[s],Hour_Yaxis[s],YELLOW);
GUI_sprintf_string(88,220,tab2,0xffff,0); //实时时钟显示
GUI_sprintf_string(64,240,tab1,0xffff,0);
Draw_Scale(); //重新刷新表盘坐标
}
}
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
与电子爱好者谈读图四被打赏50分 | |
与电子爱好者谈读图二被打赏50分 | |
【FRDM-MCXN947评测】Core1适配运行FreeRtos被打赏50分 | |
【FRDM-MCXN947评测】双核调试被打赏50分 | |
【CPKCORRA8D1B评测】---移植CoreMark被打赏50分 | |
【CPKCORRA8D1B评测】---打开硬件定时器被打赏50分 | |
【FRDM-MCXA156评测】4、CAN loopback模式测试被打赏50分 | |
【CPKcorRA8D1评测】--搭建初始环境被打赏50分 | |
【FRDM-MCXA156评测】3、使用FlexIO模拟UART被打赏50分 | |
【FRDM-MCXA156评测】2、rt-thread MCXA156 BSP制作被打赏50分 |