找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8478|回复: 17
收起左侧

彩屏万年历2.2寸SIP接口中LED屏+ds3231+15w4k58s4带24节气及节日

  [复制链接]
ID:164850 发表于 2017-10-13 15:37 | 显示全部楼层 |阅读模式
用2.2寸SPI接口的彩色TFT液晶DIY个彩屏万年历,带24节气及节日。
    有位坛友前些时说DIY个彩屏万年历,到现在还没见影踪。我来放一个用2.2寸SPI接口的彩色TFT液晶制作的万年历,这个万年历是下一个制作的时钟部份以下是图片本制作是用STC的单片机,采用它的硬件SPI接口,p10接个10K的NTC测温电阻,上接10k电阻VCC,下接10K电阻,10K电阻下接地。{vcc10k+10K的NTC测温电阻+p10,p10+10K电阻下接地,各脚的接法在程序有注悉,可以在程序头更改显示的颜色。开关的使用在程序也有注释。由于程序刚写完就发贴,只简单测试,所以可能用BUG。
单片机用STC15W4K58s4,晶振用22.1M
//用单片机的硬件SPI接口,液晶是2.2寸SPI接口, 分辨率:176*220, 驱动IC:ILI9225
//LCD接口与单片机接法    LCD        单片机
//                      CLK        P1^5
//                      SDI        P1^3
//                      RS         P0^4
//                      RET        P0^1
//                      CS         P0^0
//                      LED        VCC
//
//DS3231与单片机接法     SCL接P0^3,      SDA接 P0^2
//开关P23,长按进入调整操作,短按改变调整项目,再长按保存参数,开关P25为参数减,开关P24为参数加

IMG_20171013_150045.jpg IMG_20171013_150028.jpg IMG_20171013_145942.jpg IMG_20171013_145723.jpg IMG_20171013_145706.jpg IMG_20171013_145544.jpg IMG_20171013_145322.jpg IMG_20171013_145308.jpg IMG_20171013_145219.jpg IMG_20171013_145200.jpg

原理图:
0.png

1507878710560.jpg


单片机源程序如下:
  1. //彩屏万年历,带节日节气农历。
  2. //单片机用STC15W4K58s4,晶振用22.1M
  3. //用单片机的硬件SPI接口,液晶是2.2寸SPI接口, 分辨率:176*220, 驱动IC:ILI9225
  4. //LCD接口与单片机接法    LCD        单片机
  5. //                      CLK        P1^5
  6. //                      SDI        P1^3
  7. //                      RS         P0^4
  8. //                      RET        P0^1
  9. //                      CS         P0^0
  10. //                      LED        VCC
  11. //
  12. //DS3231与单片机接法     SCL接P0^3,      SDA接 P0^2
  13. //开关P23,长按进入调整操作,短按改变调整项目,再长按保存参数,开关P25为参数减,开关P24为参数加
  14. #include <STC15W4Kxx.h>
  15. #include <main.h>
  16. #include <intrins.h>

  17. #define RED          0xf800
  18. #define GREEN        0x07e0
  19. #define BLUE         0x001f
  20. #define WHITE        0xffff
  21. #define BLACK        0x0000
  22. #define YELLOW  0xFFE0
  23. #define GRAY0   0xEF7D           //灰色0 3165 00110 001011 00101
  24. #define GRAY1   0x8410              //灰色1      00000 000000 00000
  25. #define GRAY2   0x4208              //灰色2  1111111111011111
  26. //以下可以根据自己的喜好改变颜色
  27. #define BACKcolor   0xEF70              //背境色
  28. #define TIMEcolor   0xf800              //时钟色
  29. #define RILIcolor   0x001f              //日历色
  30. #define WEEK67color   0xf800              //星期67色
  31. #define WEEK67BACKcolor  0xffff             //星期67底色
  32. #define WEEK15color   0x0000              //星期15色
  33. #define WEEK15BACKcolor   0xffff              //星期15底色
  34. #define WEEKcolor   0x0000              //星期表文字色
  35. #define WEEKBACKcolor   0xEF70              //星期表文字底色
  36. #define WEEKSELcolor   0xf800              //星期表选中色

  37. sbit BINmanA=P2^5;
  38. sbit BINmanB=P2^4;//编码
  39. sbit KEY1=P2^3;


  40. unsigned char jisu,usbjisu,jisu2;
  41. bit kong05,kong02,time05s,time02s,t_1224ji,taosaxi;
  42. unsigned char t_hour,t_min,t_sec,t_xingqi,t_year,t_moon, t_date,t_temp;
  43. unsigned char  t_hourold,t_minold,t_secold,t_xingqiold,t_yearold,t_moonold, t_dateold,t_tempold;//由于LCD过慢,所以没变化就不刷新。
  44. unsigned char panmavol, keyval,oldkey;
  45. unsigned int keyjixu;
  46. unsigned char disppagevol,timetaovol,taosaxivol;
  47. unsigned int TEMPnow;
  48. bit panmaoldA=1,panmaoldB=1;
  49. //外部引用农历
  50. extern void Conversion(bit c,unsigned char year,unsigned char month,unsigned char day);
  51. extern data unsigned char year_moon,month_moon,day_moon;
  52. void delay(unsigned int t) //长延时程序,延时t毫秒,STC 1T单片机11.0592M晶振I值为648,22.1I值为1298,12MI值为705,27.648M I值为1622。
  53. {
  54.          unsigned int i;
  55.          while(t--)
  56.            {
  57.                 for(i=1298;i>0;i--);
  58.            }
  59. }
  60. void delay1() //
  61. {
  62.          unsigned int i;
  63.                 for(i=340;i>0;i--);
  64.           
  65. }       
  66. /*********************读取时间**********************/
  67. void Readtime()
  68. {
  69.         unsigned char temppp;//需把BCD码转为十进制,方便处理。
  70.   temppp=I2CReadAdd(0x00);//秒
  71.   t_sec=(temppp/16)*10+temppp%16;
  72.   temppp=I2CReadAdd(0x01);//分
  73.         t_min=(temppp/16)*10+temppp%16;
  74.   temppp=I2CReadAdd(0x02);  //时
  75.         t_hour=(temppp/16)*10+temppp%16;
  76.         //t_xingqi=I2CReadAdd(0x03);//星期
  77.   temppp=I2CReadAdd(0x04);  //日
  78.         t_date=(temppp/16)*10+temppp%16;
  79.   temppp=I2CReadAdd(0x05); //月
  80.         t_moon=(temppp/16)*10+temppp%16;
  81.   temppp=I2CReadAdd(0x06);  //年
  82.         t_year=(temppp/16)*10+temppp%16;
  83.         t_temp=I2CReadAdd(0x11);//温度
  84.        
  85.         //t_xingqi= PGday(2000+t_year,t_moon,t_date);//星期计算,
  86.   //Conversion(0,((t_year/10)*16+t_year%10),((t_moon/10)*16+t_moon%10),((t_date/10)*16)+t_date%10);        //注意,输入的是BCD码,算出来的也是BCD码,入数是要注意。
  87. }
  88. //======================EEPROW偏程==============================
  89. //写字节时,可以将原有数据中的1改为0,无法将0改为1,只能使用擦除命令将0改为1
  90. //应注意,擦除命令会将整个扇区擦除
  91. //由于擦除会将整个扇区擦除,为了方便写,所以这里用第二扇区存第一屏的状态,
  92. //第三扇区存定时1的5个时间,每个时间有启用、开时间、关时间、星期(8b)
  93. //第四扇区存定时6-10,第5扇区存温度值,
  94. // 第二扇区地址0x0200-0x03ff,0x0400-0x05ff,0x0600-0x07ff,0x0800-0x09ff.
  95. void IAPIDLE()
  96. {
  97.     IAP_CMD = 0;      //关闭令,保护
  98.     IAP_CONTR = 0;    //关EEPROM,保护
  99.     IAP_TRIG = 0;
  100.     IAP_ADDRL = 0; //设置读取地址的低字节,地址改变才需要设置
  101.     IAP_ADDRH = 0X80; //设置读取地址的高字节,地址改变才需要设置
  102. }
  103. unsigned char readEEP(unsigned int adddata)
  104. {        //读取
  105.         unsigned char eerdata;
  106.         IAP_CONTR=0X83;//设置等待时间,1MHz以下取7,2M以下取6,3M取5,6M取4,12M取3,20M取2,24M取1,30M取0,前导1表示许档IAP
  107.         IAP_CMD = 1;      //读取值1,写取2,擦除取3,擦除时按所在字节整个扇区撺除
  108.         IAP_ADDRL = adddata;    //设置读取地址的低字节,地址改变才需要设置
  109.     IAP_ADDRH = adddata>>8; //设置读取地址的高字节,地址改变才需要设置
  110.         IAP_TRIG = 0x5A;  //先送5A
  111.     IAP_TRIG = 0xA5;  //先送5A再送A5立即触发
  112.         _nop_();
  113.         eerdata=IAP_DATA;
  114.         IAPIDLE();
  115.         return eerdata;
  116. }
  117. void writeEEP(unsigned int adddata, unsigned char eerdata)
  118. {//写入
  119.   IAP_CONTR=0X83;//设置等待时间,
  120.   IAP_CMD = 2;      //读取值1,写取2,擦除取3,擦除时按所在字节整个扇区撺除
  121.   IAP_ADDRL = adddata;    //设置读取地址的低字节,地址改变才需要设置
  122.   IAP_ADDRH = adddata>>8; //设置读取地址的高字节,地址改变才需要设置
  123.   IAP_DATA=        eerdata;//传入数据
  124.   IAP_TRIG = 0x5A;  //先送5A
  125.   IAP_TRIG = 0xA5;  //先送5A再送A5立即触发
  126.   _nop_();
  127.   IAPIDLE();
  128. }
  129. void eraseEEP(unsigned int adddata)
  130. { //擦除
  131.    IAP_CONTR=0X83;//设置等待时间,
  132.   IAP_CMD = 3;      //读取值1,写取2,擦除取3,擦除时按所在字节整个扇区撺除
  133.   IAP_ADDRL = adddata;    //设置读取地址的低字节,地址改变才需要设置
  134.   IAP_ADDRH = adddata>>8; //设置读取地址的高字节,地址改变才需要设置
  135.   IAP_TRIG = 0x5A;  //先送5A
  136.   IAP_TRIG = 0xA5;  //先送5A再送A5立即触发
  137.   _nop_();
  138.   IAPIDLE();
  139. }
  140. void writeDAT()
  141. {
  142.         //unsigned char i;
  143.         eraseEEP(0x0200);
  144.   writeEEP(0x0200, t_1224ji);//24小时制,0为24小时,1为12小时制
  145.        
  146.        
  147. }
  148. void sysintEEP()
  149. {
  150.         //unsigned char i;
  151.         t_1224ji=readEEP(0x0200);
  152.        
  153.        

  154. }

  155. //以下为AD检测
  156. void ADCINT()
  157. {
  158.        
  159.    P1ASF=0x01;//设置 P1低2位为AD口,根据实际设置。
  160.    ADC_RES=0;//ad清0
  161.    //AUXR1=0x04;//设置数据方式,低8位+高2位方式,易于运算。
  162.    CLK_DIV=0X20;//由于408AS与204E不同,需写成这。
  163.         delay(1);
  164. }
  165. /*void ADCINT1()
  166. {//这个主要用于读内部第九路AD,是1.9V的基准
  167.    P1ASF=0x00;//设置 P1低2位为AD口,根据实际设置。
  168.    ADC_RES=0;//ad清0
  169.    //AUXR1=0x04;//设置数据方式,低8位+高2位方式,易于运算。
  170.    CLK_DIV=0X20;//由于408AS与204E不同,需写成这。
  171.         delay(1);
  172. }*/
  173. unsigned int ADCwrite(unsigned ch)
  174. { //由于所检测的电压不用快,所以采用查询或延时法,没用中断法。 ch值从0-7,对应为P10-P17
  175.         unsigned int x;
  176.         ADC_CONTR=0x88+ch;//设置启动 ,用慢速采集
  177.         //查询法。查询是否完成AD,由于是单片机内的,如出错单片机也出错,所以没做跳开处理。
  178.         while ( !(ADC_CONTR & 0x10) );//等待A/D转换结束(ADC_FLAG==0)
  179.         ADC_CONTR &= 0xE7;             //11100111,置ADC_FLAG=0清除结束标记, 置ADC_START=0关闭A/D 转换       
  180.         //delay(1);//延时法。由于设置及晶振的原因,大约为20US完成过程。这里延时1MS
  181.           x=ADC_RES*256+ADC_RESL;

  182.   return x;
  183. }
  184. //AD采集
  185. void nowtempAD()
  186. {//采用采集10次取平均值,

  187.   unsigned char x;
  188.   TEMPnow=0;
  189.   for(x=0;x<10;x++)//采集10次。
  190.   {       
  191.                 TEMPnow=TEMPnow+ADCwrite(0);
  192.                 delay1();
  193.         }
  194.        
  195.         //以下为计算
  196.        
  197.         for(x=0;x<110;x++)//查表计算室温
  198.   {
  199.   if( (TEMPnow/10)<=temppiao[x]) break;//并且退出查表
  200.   }
  201.         TEMPnow=x-11;
  202.         if(TEMPnow>99)TEMPnow=99;

  203. }
  204. unsigned char jieqijisuan(unsigned char yeardat,unsigned char moondat,unsigned char daydat)
  205. {//参数1为年值,2为月,3为日
  206.     unsigned char k=0;
  207.     if(daydat==jieqi[yeardat*24+(moondat-1)*2])k=(moondat-1)*2+1;
  208.     if(daydat==jieqi[yeardat*24+(moondat-1)*2+1])k=(moondat-1)*2+2;
  209.     return k;
  210. }

  211. void jieqidisp()
  212. {   //显示判断方法,先判断是不是节日,以农历节日优先于公历节日,
  213.   //如不是节日,就判断是不是24节气的前3天内,如是就显示节气,如不是就显示农历。
  214.    unsigned char jj,tmpe;
  215.    jj=0;//作为显示优先状态字
  216.         //以下组合文字,先节日,再24节气,再农历。
  217.    //农历1月1,1月15,5月5,8月15,9月9 分别为春节元宵节端午节中秋节重阳节
  218.    //公历 1月1, 2月14,  3月8,  5月1,  5月4,   6月1,  7月1,  8月1, 9月10,  10月1,  12月25
  219.    //     元旦  情人节  妇女节 劳动节 青年节 儿童节 建党节 建军节 教师节 国庆节  圣诞节
  220.         if(month_moon==18&&day_moon==41)// 12月29春节 农历节日优先,农历以BCD码显示
  221.         {//显示 廿九
  222.           
  223.            disp16x16(72,104,&dispjieri,43,RILIcolor,BACKcolor);
  224.            disp16x16(72,120,&dispjieri,41,RILIcolor,BACKcolor);
  225.            jj=1;
  226.         }
  227.         if(month_moon==18&&day_moon==48)// 春节 12月30农历节日优先,农历以BCD码显示
  228.         {//显示 年卅
  229.      disp16x16(72,104,&DISPdat16x16,2,RILIcolor,BACKcolor);
  230.            disp16x16(72,120,&dispjieri,44,RILIcolor,BACKcolor);
  231.            jj=1;
  232.         }
  233.            if(month_moon==1&&day_moon==1)// 春节 农历节日优先,农历以BCD码显示
  234.         {//显示 初一
  235.             disp16x16(72,104,&dispjieri,32,RILIcolor,BACKcolor);
  236.            disp16x16(72,120,&dispjieri,33,RILIcolor,BACKcolor);
  237.            jj=1;
  238.         }
  239.         if(month_moon==1&&day_moon==2)// 春节 农历节日优先,农历以BCD码显示
  240.         {//显示 初二
  241.            disp16x16(72,104,&dispjieri,32,RILIcolor,BACKcolor);
  242.            disp16x16(72,120,&dispjieri,34,RILIcolor,BACKcolor);
  243.            jj=1;
  244.         }
  245.         if(month_moon==1&&day_moon==3)// 春节 农历节日优先,农历以BCD码显示
  246.         {//显示 初三
  247.             disp16x16(72,104,&dispjieri,32,RILIcolor,BACKcolor);
  248.            disp16x16(72,120,&dispjieri,35,RILIcolor,BACKcolor);
  249.            jj=1;
  250.         }
  251.            if(month_moon==1&&day_moon==21)// 元宵节 农历以BCD码显示 15即为21
  252.         {//显示 今日元宵节
  253.                   disp16x16(72,104,&dispjieri,4,RILIcolor,BACKcolor);
  254.            disp16x16(72,120,&dispjieri,5,RILIcolor,BACKcolor);
  255.            jj=1;
  256.         }
  257.            if(month_moon==5&&day_moon==5)// 端午节
  258.         {//显示 今日端午节
  259.                   disp16x16(72,104,&dispjieri,16,RILIcolor,BACKcolor);
  260.            disp16x16(72,120,&dispjieri,17,RILIcolor,BACKcolor);
  261.            jj=1;
  262.         }
  263.         if(month_moon==8&&day_moon==21)// 中秋节
  264.         {//显示 今日中秋节
  265.                  disp16x16(72,104,&dispjieri,22,RILIcolor,BACKcolor);
  266.            disp16x16(72,120,&dispjieri,23,RILIcolor,BACKcolor);
  267.            jj=1;
  268.         }
  269.         if(month_moon==9&&day_moon==9)// 重阳节
  270.         {//显示 今日重阳节
  271.                   disp16x16(72,104,&dispjieri,28,RILIcolor,BACKcolor);
  272.            disp16x16(72,120,&dispjieri,29,RILIcolor,BACKcolor);
  273.            jj=1;
  274.         }
  275.        
  276.        
  277.         if(jj==0)
  278.         {//当显示优先字jj为0,即没有农历的节日时,就判断公历节日
  279.         //公历 1月1, 2月14,  3月8,  5月1,  5月4,   6月1,  7月1,  8月1, 9月10,  10月1,  12月25
  280.    //     元旦  情人节  妇女节 劳动节 青年节 儿童节 建党节 建军节 教师节 国庆节  圣诞节
  281.           if(t_moon==1&&t_date==1)// 元旦
  282.           {//显示 元旦
  283.                  disp16x16(72,104,&dispjieri,0,RILIcolor,BACKcolor);
  284.            disp16x16(72,120,&dispjieri,1,RILIcolor,BACKcolor);
  285.            jj=2;
  286.           }
  287.           if(t_moon==2&&t_date==14)// 情人节
  288.           {//显示 情人节
  289.                         disp16x16(72,104,&dispjieri,6,RILIcolor,BACKcolor);
  290.            disp16x16(72,120,&dispjieri,7,RILIcolor,BACKcolor);
  291.            jj=2;
  292.           }
  293.           if(t_moon==3&&t_date==8)// 妇女节
  294.           {//显示 妇女节
  295.                         disp16x16(72,104,&dispjieri,8,RILIcolor,BACKcolor);
  296.            disp16x16(72,120,&dispjieri,9,RILIcolor,BACKcolor);
  297.            jj=2;
  298.           }
  299.           if(t_moon==5&&t_date==1)// 劳动节
  300.           {//显示 今日劳动节
  301.                         disp16x16(72,104,&dispjieri,10,RILIcolor,BACKcolor);
  302.            disp16x16(72,120,&dispjieri,11,RILIcolor,BACKcolor);
  303.            jj=2;
  304.           }
  305.           if(t_moon==5&&t_date==4)// 青年节
  306.           {//显示 今日青年节
  307.                         disp16x16(72,104,&dispjieri,12,RILIcolor,BACKcolor);
  308.            disp16x16(72,120,&dispjieri,13,RILIcolor,BACKcolor);
  309.            jj=2;
  310.           }
  311.           if(t_moon==6&&t_date==1)// 儿童节
  312.           {//显示 今日儿童节
  313.                         disp16x16(72,104,&dispjieri,14,RILIcolor,BACKcolor);
  314.            disp16x16(72,120,&dispjieri,15,RILIcolor,BACKcolor);
  315.            jj=2;
  316.           }
  317.           if(t_moon==7&&t_date==1)//  建党节
  318.           {//显示 今日建党节
  319.                         disp16x16(72,104,&dispjieri,18,RILIcolor,BACKcolor);
  320.            disp16x16(72,120,&dispjieri,19,RILIcolor,BACKcolor);
  321.            jj=2;
  322.           }
  323.           if(t_moon==8&&t_date==1)// 建军节
  324.           {//显示 今日建军节
  325.                         disp16x16(72,104,&dispjieri,20,RILIcolor,BACKcolor);
  326.            disp16x16(72,120,&dispjieri,21,RILIcolor,BACKcolor);
  327.            jj=2;
  328.           }
  329.           if(t_moon==9&&t_date==10)// 教师节
  330.           {//显示 今日教师节
  331.                 disp16x16(72,104,&dispjieri,24,RILIcolor,BACKcolor);
  332.            disp16x16(72,120,&dispjieri,25,RILIcolor,BACKcolor);
  333.            jj=2;
  334.           }
  335.           if(t_moon==10&&t_date==1)// 国庆节  
  336.           {//显示 今日国庆节
  337.                         disp16x16(72,104,&dispjieri,26,RILIcolor,BACKcolor);
  338.            disp16x16(72,120,&dispjieri,27,RILIcolor,BACKcolor);
  339.            jj=2;
  340.           }
  341.            if(t_moon==12&&t_date==25)// 圣诞节  
  342.           {//显示 今日圣诞节
  343.                 disp16x16(72,104,&dispjieri,30,RILIcolor,BACKcolor);
  344.            disp16x16(72,120,&dispjieri,31,RILIcolor,BACKcolor);
  345.            jj=2;
  346.           }
  347.           
  348.         }
  349.        
  350.         if(jj==0)//如果还是0,即上面的节都不存在,就判断24节气
  351.         { //由于每月只有2个节气,
  352.                 tmpe=jieqijisuan(t_year,t_moon,t_date);
  353.                 if(tmpe>0)
  354.                 {
  355.                         jj=3;
  356.                         disp16x16(72,104,&dispjieqi,(tmpe-1)*2,RILIcolor,BACKcolor);
  357.             disp16x16(72,120,&dispjieqi,(tmpe-1)*2+1,RILIcolor,BACKcolor);
  358.                        
  359.                 }
  360.        
  361.         }
  362.        
  363.         if(jj==0)
  364.         {//如果以上都不是,显示空
  365.           Lcd_Clear(72,104,16,32,BACKcolor);
  366.   }
  367. }

  368. void tinjidegan()
  369. {
  370.         //农历年
  371.         //以下计算天干地支,计算方法,年-3后求10余数为天干,年-3后求12余数为地支,注意是字表从1-10,
  372.         unsigned char temp1;
  373.         temp1=(2000+t_year-3)%10;
  374.         if(temp1==0)
  375.         {
  376.                 temp1=9;
  377.         }
  378.         else
  379.         {
  380.                 temp1=temp1-1;
  381.         }

  382.         disp16x16(16,136,&tiangan,temp1,RILIcolor,BACKcolor);//天干
  383.        
  384.         temp1=(2000+t_year-3)%12;
  385.         if(temp1==0)
  386.         {
  387.                 temp1=9;
  388.         }
  389.         else
  390.         {
  391.                 temp1=temp1-1;
  392.         }

  393.         disp16x16(32,136,&dizhi,temp1,RILIcolor,BACKcolor);//地支
  394.         disp16x16(48,136,&shuxiang,temp1,RILIcolor,BACKcolor);//属相
  395. }
  396. void disppage1(bit alldisp)
  397. {//时钟页,参数为1时,全部刷新
  398.         unsigned char temp1,temp2,temp3;
  399.         if(alldisp==1)
  400.         {
  401.                 Lcd_Clearall(BACKcolor);//清屏
  402.                 //日历方框及方框内的星期-20年月等       
  403.                 disp8x16(8,72,&DISPdat8x16,2,RILIcolor,BACKcolor);//2
  404.           disp8x16(16,72,&DISPdat8x16,0,RILIcolor,BACKcolor);//0
  405.                 disp8x16(40,72,&DISPdat8x16,16,RILIcolor,BACKcolor);//-
  406.                 disp8x16(64,72,&DISPdat8x16,16,RILIcolor,BACKcolor);//-
  407.                 disp16x16(8,88,&DISPdat16x16,0,RILIcolor,BACKcolor);//星期
  408.           disp16x16(24,88,&DISPdat16x16,1,RILIcolor,BACKcolor);
  409.                 disp8x16(80,88,&DISPdat8x16,21,RILIcolor,BACKcolor);//c
  410.                 disp16x16(64,136,&DISPdat16x16,2,RILIcolor,BACKcolor);//年
  411.                
  412.                 //星期表       
  413.                 disp16x16(96,64,&DISPweektu,0,WEEK67color,WEEK67BACKcolor);
  414.                 disp16x16(114,64,&DISPweektu,1,WEEK15color,WEEK15BACKcolor);
  415.                 disp16x16(132,64,&DISPweektu,2,WEEK15color,WEEK15BACKcolor);
  416.                 disp16x16(150,64,&DISPweektu,3,WEEK15color,WEEK15BACKcolor);
  417.                 disp16x16(168,64,&DISPweektu,4,WEEK15color,WEEK15BACKcolor);
  418.                 disp16x16(186,64,&DISPweektu,5,WEEK15color,WEEK15BACKcolor);
  419.                 disp16x16(204,64,&DISPweektu,6,WEEK67color,WEEK67BACKcolor);
  420.                 showGUI1(RILIcolor,BACKcolor);
  421.         }
  422.         //时钟 秒闪
  423.         if(time05s==1&&timetaovol==0)
  424.         {
  425.           Lcd_Clear(64,0,14,64,BACKcolor);
  426.                 Lcd_Clear(142,0,14,64,BACKcolor);
  427.         }
  428.         else
  429.         {
  430.                 disp14x64din(64,0,TIMEcolor,BACKcolor);
  431.           disp14x64din(142,0,TIMEcolor,BACKcolor);
  432.         }
  433.         //时
  434.         if(t_hourold!=t_hour||alldisp==1||timetaovol==5||(taosaxi==1&&taosaxivol==6))
  435.         {//由于LCD刷新慢,所以如没变化就不刷新
  436.                 if(time05s==1&&timetaovol==5)
  437.                 {
  438.                         Lcd_Clear(0,0,64,64,BACKcolor);
  439.                 }
  440.                 else
  441.                 {
  442.                         if(taosaxi==1&&taosaxivol==6)taosaxi=0;//清刷新值,防止再次刷新
  443.                         if(t_1224ji==1)
  444.              {//为12小时制,
  445.                            if(t_hour<12)
  446.                      {
  447.                              if(t_hour==0)
  448.                              {//显12小时
  449.                                                  disp32x64(0,0,&DISPdat8x16,1,TIMEcolor,BACKcolor);//
  450.                   disp32x64(32,0,&DISPdat8x16,2,TIMEcolor,BACKcolor);
  451.                                                  
  452.                                          }
  453.                             else
  454.                                          {
  455.                                                 disp32x64(0,0,&DISPdat8x16,t_hour/10,TIMEcolor,BACKcolor);//
  456.                   disp32x64(32,0,&DISPdat8x16,t_hour%10,TIMEcolor,BACKcolor);
  457.                                          }
  458.                        
  459.                                  }
  460.                                  else
  461.                                  {
  462.                                         if(t_hour==12)
  463.                              {
  464.                                                  disp32x64(0,0,&DISPdat8x16,1,TIMEcolor,BACKcolor);//
  465.                   disp32x64(32,0,&DISPdat8x16,2,TIMEcolor,BACKcolor);
  466.                                          }
  467.                                          else
  468.                                          {
  469.                                                  disp32x64(0,0,&DISPdat8x16,(t_hour-12)/10,TIMEcolor,BACKcolor);//
  470.                   disp32x64(32,0,&DISPdat8x16,(t_hour-12)%10,TIMEcolor,BACKcolor);
  471.                                                  
  472.                                          }
  473.                                          
  474.                                  }
  475.                          }
  476.                          else
  477.                          {//24小时制
  478.                                 disp32x64(0,0,&DISPdat8x16,t_hour/10,TIMEcolor,BACKcolor);//参数1为列,2为行,3为字模,4为字号,5为字颜色,6为底色
  479.               disp32x64(32,0,&DISPdat8x16,t_hour%10,TIMEcolor,BACKcolor);
  480.                          }
  481.                 }
  482.         }
  483.         //分
  484.         if(t_minold!=t_min||alldisp==1||timetaovol==6||(taosaxi==1&&taosaxivol==7))
  485.         {//由于LCD刷新慢,所以如没变化就不刷新
  486.                 if(time05s==1&&timetaovol==6)
  487.                 {
  488.                         Lcd_Clear(78,0,64,64,BACKcolor);
  489.                 }
  490.                 else
  491.                 {
  492.                         if(taosaxi==1&&taosaxivol==7)taosaxi=0;//清刷新值,防止再次刷新
  493.            disp32x64(78,0,&DISPdat8x16,t_min/10,TIMEcolor,BACKcolor);
  494.            disp32x64(110,0,&DISPdat8x16,t_min%10,TIMEcolor,BACKcolor);
  495.                 }
  496.         }
  497.         //秒
  498.         if(t_secold!=t_sec||alldisp==1||timetaovol==7||(taosaxi==1&&taosaxivol==1))
  499.         {//由于LCD刷新慢,所以如没变化就不刷新
  500.                 if(time05s==1&&timetaovol==7)
  501.                 {
  502.                         Lcd_Clear(156,0,64,64,BACKcolor);
  503.                 }
  504.                 else
  505.                 {
  506.                         if(taosaxi==1&&taosaxivol==1)taosaxi=0;
  507.                         disp32x64(156,0,&DISPdat8x16,t_sec/10,TIMEcolor,BACKcolor);
  508.             disp32x64(188,0,&DISPdat8x16,t_sec%10,TIMEcolor,BACKcolor);
  509.                 }
  510.         }
  511.        
  512.         //年
  513.         if(t_yearold!=t_year||alldisp==1||timetaovol==1||(taosaxi==1&&taosaxivol==2))
  514.         {
  515.                 if(time05s==1&&timetaovol==1)
  516.                 {
  517.                         Lcd_Clear(24,72,16,16,BACKcolor);
  518.                 }
  519.                 else
  520.                 {
  521.                         if(taosaxi==1&&taosaxivol==2)taosaxi=0;
  522.           disp8x16(24,72,&DISPdat8x16,t_year/10,RILIcolor,BACKcolor);
  523.           disp8x16(32,72,&DISPdat8x16,t_year%10,RILIcolor,BACKcolor);
  524.                 }
  525.         }
  526.         //月
  527.         if(t_moonold!=t_moon||alldisp==1||timetaovol==2||(taosaxi==1&&taosaxivol==3))
  528.         {
  529.                 if(time05s==1&&timetaovol==2)
  530.                 {
  531.                         Lcd_Clear(48,72,16,16,BACKcolor);
  532.                 }
  533.                 else
  534.                 {
  535.                         if(taosaxi==1&&taosaxivol==3)taosaxi=0;
  536.            disp8x16(48,72,&DISPdat8x16,t_moon/10,RILIcolor,BACKcolor);
  537.            disp8x16(56,72,&DISPdat8x16,t_moon%10,RILIcolor,BACKcolor);
  538.                 }
  539.         }
  540.         //日
  541.         if(t_dateold!=t_date||alldisp==1||timetaovol==3||(taosaxi==1&&taosaxivol==4))
  542.         {
  543.                 if(time05s==1&&timetaovol==3)
  544.                 {
  545.                         Lcd_Clear(72,72,16,16,BACKcolor);
  546.                 }
  547.                 else
  548.                 {
  549.                         if(taosaxi==1&&taosaxivol==4)taosaxi=0;
  550.            disp8x16(72,72,&DISPdat8x16,t_date/10,RILIcolor,BACKcolor);
  551.            disp8x16(80,72,&DISPdat8x16,t_date%10,RILIcolor,BACKcolor);
  552.                 }
  553.         }
  554.         //星期       
  555.         t_xingqi= PGday(2000+t_year,t_moon,t_date);//星期计算,
  556.         if(t_xingqiold!=t_xingqi||alldisp==1)
  557.         {
  558.         disp16x16(40,88,&DISPWEEK,t_xingqi,RILIcolor,BACKcolor);
  559.         }
  560.         //温度
  561.         if(t_tempold!=TEMPnow||alldisp==1)
  562.         {
  563.         disp8x16(64,88,&DISPdat8x16,TEMPnow/10,RILIcolor,BACKcolor);
  564.         disp8x16(72,88,&DISPdat8x16,TEMPnow%10,RILIcolor,BACKcolor);
  565.         }
  566.         //日期 (上午下午,节气等)
  567.         if(t_dateold!=t_date||alldisp==1)
  568.         {
  569.         disp16x32(32,104,&DISPdat8x16,t_date/10,RILIcolor,BACKcolor);
  570.         disp16x32(48,104,&DISPdat8x16,t_date%10,RILIcolor,BACKcolor);
  571.         }
  572.         //左上下午  
  573.        
  574.         if(t_hourold!=t_hour||alldisp==1)
  575.         {
  576.                 if(t_hour>11)
  577.                 {
  578.                 disp16x16(8,120,&DISPdat16x16,6,RILIcolor,BACKcolor);//小时发生变化才变
  579.                 }
  580.                 else
  581.                 {
  582.                         disp16x16(8,120,&DISPdat16x16,5,RILIcolor,BACKcolor);//小时发生变化才变
  583.                 }
  584.                
  585.         }

  586.         if(t_yearold!=t_year||t_moonold!=t_moon||t_dateold!=t_date||alldisp==1)
  587.         {
  588.                        
  589.   Conversion(0,((t_year/10)*16+t_year%10),((t_moon/10)*16+t_moon%10),((t_date/10)*16)+t_date%10);        //注意,输入的是BCD码,算出来的也是BCD码,入数是要注意。
  590.         //右节气
  591.         jieqidisp();
  592.         //农历年
  593.         tinjidegan();
  594.         //农历月日month_moon/16day_moon/16
  595.                 //为了保证能居中显示,需先判断有多少个字,然后进行针对性编写
  596.         if(month_moon<0x11)
  597.          {//一到十月
  598.      if(day_moon<0x11||day_moon==0x20||day_moon==0x30)
  599.                  {//3个字,注意当日为20或30时,也是3个字
  600.                          Lcd_Clear(8,152,16,16,BACKcolor);
  601.         if(month_moon==0x10)       
  602.                                 {
  603.         disp16x16(24,152,&dispjieri,42,RILIcolor,BACKcolor);
  604.                                 }
  605.                                 else
  606.                                 {
  607.         disp16x16(24,152,&dispjieri,month_moon+32,RILIcolor,BACKcolor);
  608.                                 }       
  609.                          
  610.                          disp16x16(40,152,&DISPdat16x16,3,RILIcolor,BACKcolor);//月
  611.                          if(day_moon<10)
  612.                          {
  613.                                  disp16x16(56,152,&dispjieri,day_moon%16+32,RILIcolor,BACKcolor);
  614.                                   
  615.                          }
  616.                          if(day_moon==0x10)
  617.                          {
  618.                                 disp16x16(56,152,&dispjieri,42,RILIcolor,BACKcolor);
  619.                          }
  620.                          if(day_moon==0x20)
  621.                          {
  622.                                 disp16x16(56,152,&dispjieri,43,RILIcolor,BACKcolor);
  623.                          }
  624.                          if(day_moon==0x30)
  625.                          {
  626.                                 disp16x16(56,152,&dispjieri,44,RILIcolor,BACKcolor);
  627.                          }
  628.                          Lcd_Clear(72,152,16,16,BACKcolor);
  629.                  }
  630.                  else
  631.                  {//4个字
  632.                          Lcd_Clear(8,152,8,16,BACKcolor);               
  633.         if(month_moon==0x10)       
  634.                                 {
  635.         disp16x16(16,152,&dispjieri,42,RILIcolor,BACKcolor);
  636.                                 }
  637.                                 else
  638.                                 {
  639.         disp16x16(16,152,&dispjieri,month_moon+32,RILIcolor,BACKcolor);
  640.                                 }                                 
  641.                          
  642.                          disp16x16(32,152,&DISPdat16x16,3,RILIcolor,BACKcolor);//月
  643.                          if(day_moon>0x10)
  644.              {//十以上
  645.                                  if(day_moon>0x20)
  646.                                   {
  647.                                          if(day_moon>0x30)
  648.                                          {//30以上
  649.                                                  disp16x16(48,152,&dispjieri,44,RILIcolor,BACKcolor);
  650.                    disp16x16(64,152,&dispjieri,day_moon%16+32,RILIcolor,BACKcolor);
  651.                                          }
  652.                                          else
  653.                                          {//20以上
  654.                                                  disp16x16(48,152,&dispjieri,43,RILIcolor,BACKcolor);
  655.                    disp16x16(64,152,&dispjieri,day_moon%16+32,RILIcolor,BACKcolor);
  656.                                          }
  657.                                   }
  658.                                   else
  659.                                   {//10以上
  660.                                          disp16x16(48,152,&dispjieri,42,RILIcolor,BACKcolor);
  661.                  disp16x16(64,152,&dispjieri,day_moon%16+32,RILIcolor,BACKcolor);
  662.                                   }                         
  663.                                  
  664.               }
  665.                          Lcd_Clear(80,152,8,16,BACKcolor);
  666.                  }

  667.          }       
  668.    else
  669.          {//十一十二月
  670.      if(day_moon<0x11||day_moon==0x20||day_moon==0x30)
  671.                  {//4个字
  672.                          Lcd_Clear(8,152,8,16,BACKcolor);
  673.                         disp16x16(16,152,&dispjieri,42,RILIcolor,BACKcolor);
  674.             disp16x16(32,152,&dispjieri,month_moon%16+32,RILIcolor,BACKcolor);
  675.                         disp16x16(48,152,&DISPdat16x16,3,RILIcolor,BACKcolor);//月
  676.                          if(day_moon<10)
  677.                          {
  678.                                  disp16x16(64,152,&dispjieri,day_moon%16+32,RILIcolor,BACKcolor);
  679.                                   
  680.                          }
  681.                          if(day_moon==0x10)
  682.                          {
  683.                                 disp16x16(64,152,&dispjieri,42,RILIcolor,BACKcolor);
  684.                          }
  685.                          if(day_moon==0x20)
  686.                          {
  687.                                 disp16x16(64,152,&dispjieri,43,RILIcolor,BACKcolor);
  688.                          }
  689.                          if(day_moon==0x30)
  690.                          {
  691.                                 disp16x16(64,152,&dispjieri,44,RILIcolor,BACKcolor);
  692.                          }
  693.                          Lcd_Clear(80,152,8,16,BACKcolor);
  694.                          
  695.                          
  696.                          
  697.                  }
  698.                  else
  699.                  {//5个字
  700.                          disp16x16(8,152,&dispjieri,42,RILIcolor,BACKcolor);
  701.              disp16x16(24,152,&dispjieri,month_moon%16+32,RILIcolor,BACKcolor);
  702.                          disp16x16(40,152,&DISPdat16x16,3,RILIcolor,BACKcolor);//月
  703.                          if(day_moon>0x10)
  704.              {//十以上
  705.                                  if(day_moon>0x20)
  706.                                   {
  707.                                          if(day_moon>0x30)
  708.                                          {//30以上
  709.                                                  disp16x16(56,152,&dispjieri,44,RILIcolor,BACKcolor);
  710.                    disp16x16(72,152,&dispjieri,day_moon%16+32,RILIcolor,BACKcolor);
  711.                                          }
  712.                                          else
  713.                                          {//20以上
  714.                                                  disp16x16(56,152,&dispjieri,43,RILIcolor,BACKcolor);
  715.                    disp16x16(72,152,&dispjieri,day_moon%16+32,RILIcolor,BACKcolor);
  716.                                          }
  717.                                   }
  718.                                   else
  719.                                   {//10以上
  720.                                          disp16x16(56,152,&dispjieri,42,RILIcolor,BACKcolor);
  721.                  disp16x16(72,152,&dispjieri,day_moon%16+32,RILIcolor,BACKcolor);
  722.                                   }                         
  723.                                  
  724.               }
  725.                  }
  726.          }                 
  727.        
  728.   }
  729.         //星期表  每天变一次
  730.         if(t_dateold!=t_date||t_yearold!=t_year||t_moonold!=t_moon||alldisp==1)
  731.         {
  732.                 //判断一个月的日数及第一天的星期,然后排表,并显示当前日
  733.                 //这里的程序有校期为2001-2099年
  734.                 //1,3,5,7,8,10,12月为31天,4,6,9,11月为30天,2月为28或29天,2000年2月为29天,隔4年2月为29天
  735.                 //先清空第一行及最后两行,中间的覆盖
  736.                 Lcd_Clear(96,80,108,16,BACKcolor);
  737.                 Lcd_Clear(96,144,126,32,BACKcolor);
  738.         //        Lcd_Clear(96,80,32,112,BACKcolor);
  739.                 if(t_moon==1||t_moon==3||t_moon==5||t_moon==7||t_moon==8||t_moon==10||t_moon==12)
  740.                 {
  741.                         temp1=31;
  742.                 }
  743.                 else
  744.                 {
  745.                         if(t_moon==4||t_moon==6||t_moon==9||t_moon==11)
  746.                         {
  747.                                 temp1=30;                       
  748.                         }
  749.                         else
  750.                         {
  751.                                 if((t_year%4)==0)
  752.                                 {
  753.                                         temp1=29;
  754.                                 }
  755.                                 else
  756.                                 {
  757.                                         temp1=28;
  758.                                 }               
  759.                         }
  760.                 }
  761.                 temp2=PGday(2000+t_year,t_moon,1);//当月1号为星期几计算,
  762.                
  763.                 for(temp3=0;temp3<temp1;temp3++)
  764.                 {
  765.                         if(temp3==t_date-1)
  766.                                 {//当前日显红底黑字
  767.                                         disp16x16(96+(temp2+temp3-((temp2+temp3)/7)*7)*18,80+((temp2+temp3)/7)*16,&DISPweektu,temp3+7,WEEKcolor,WEEKSELcolor);//x+18,y+16
  768.                                 }
  769.                                 else
  770.                                 {//其它显灰底黑字
  771.                                  disp16x16(96+(temp2+temp3-((temp2+temp3)/7)*7)*18,80+((temp2+temp3)/7)*16,&DISPweektu,temp3+7,WEEKcolor,WEEKBACKcolor);//x+18,y+16
  772.                                 }               
  773.                 }               
  774. }
  775. //以下几句是在最后强加显示,所以不需判断改变后显示
  776. //24小时制
  777.   if(time05s==1&&timetaovol==4)
  778.                 {
  779.                         Lcd_Clear(0,0,16,8,BACKcolor);
  780.                 }
  781.                 else
  782.                 {
  783.                         if(t_1224ji==1)
  784.             {//为12小时制,
  785.                                 if(t_hour>11)
  786.                                 {
  787.                                          disp8x8(0,0,&DISPdat8x8,24,BLACK,BACKcolor);//下午
  788.                  disp8x8(8,0,&DISPdat8x8,25,BLACK,BACKcolor);
  789.                                 }
  790.                                 else
  791.                                 {
  792.                                          disp8x8(0,0,&DISPdat8x8,22,BLACK,BACKcolor);//上午
  793.                  disp8x8(8,0,&DISPdat8x8,23,BLACK,BACKcolor);
  794.                                 }                               
  795.                         }
  796.                   else
  797.                         {
  798.         disp8x8(0,0,&DISPdat8x8,20,BLACK,BACKcolor);//24
  799.               disp8x8(8,0,&DISPdat8x8,21,BLACK,BACKcolor);
  800.                         }
  801.                 }

  802.         t_hourold=t_hour;
  803.         t_minold=t_min;
  804.         t_secold=t_sec;
  805.         t_xingqiold=t_xingqi;
  806.         t_yearold=t_year;
  807.         t_moonold=t_moon;
  808.         t_dateold=t_date;
  809.         t_tempold=TEMPnow;

  810. }

  811. //***********************键盘扫描子程序。******************
  812. //*********************************************************
  813. unsigned char keyboard()//键盘扫描
  814. {
  815.       unsigned char keyboardj;
  816.      keyboardj=0;
  817.     if(KEY1==0)
  818.           {
  819.         delay(10);
  820.                   if(KEY1==0)
  821.                   {
  822.                                
  823.                           keyboardj=1;
  824.                   }
  825.     }
  826.    return  keyboardj;
  827. }
  828. //************键盘控制子程序***************

  829. //******************************************
  830. void keydisphong()//主要功能是
  831. {
  832.    unsigned char keyyy;
  833.    keyyy=keyboard();
  834.          if (keyyy!=oldkey)
  835.         {
  836.                 if(keyyy==0)//
  837.       {       
  838.                                 if(keyjixu>0)
  839.                                 {
  840.                                         if(keyjixu<80)
  841.                                         {
  842.                                                 if(oldkey==1)
  843.                                                 {
  844.                                                         keyval=1;
  845.                                                 }
  846.                                         }
  847.                                         else
  848.                                         {
  849.                                                 //keyval=11;
  850.                                                 keyjixu=0;
  851.                                         }
  852.                                 }
  853.                                 else
  854.                                 {
  855.                                         keyval=0;
  856.                                   keyjixu=0;
  857.                                 }
  858.                         }
  859.                        
  860.         }
  861.   oldkey=keyyy;       
  862.         if(keyyy==1)//
  863.                 {
  864.                         keyjixu++;
  865.                         if(keyjixu==80)keyval=11;
  866.                 }
  867.          //键盘处理完成。
  868. //以下为功能子程序               
  869.          if(keyval==1)
  870.                 {
  871.                  keyval=0;//这步必须的,清键值。
  872.                         keyjixu=0;//清计数值,这两步是必要的。
  873.                        
  874.                         if(disppagevol==0&&timetaovol!=0)
  875.                   {//时钟页,当处于调整状态时为改变项目
  876.                           timetaovol++;
  877.                                 if(timetaovol>7)timetaovol=1;
  878.                                 taosaxivol=timetaovol;
  879.                           taosaxi=1;//这2个值用于控制由于数据没变化引起不刷新
  880.                   }
  881.                 }                               
  882.                 if(keyval==11)
  883.                 {//
  884.                  keyval=0;//这步必须的,清键值。
  885.                         //keyjixu=0;//清计数值,这两步是必要的。
  886.           if(disppagevol==0)
  887.                 {//时钟页,当处于长按,进入调时钟。再长按退出
  888.                         if(timetaovol==0)
  889.                         {
  890.                                 timetaovol=1;
  891.                         }
  892.                         else
  893.                         {
  894.                                 taosaxivol=timetaovol+1;
  895.                                 if(taosaxivol>7)taosaxivol=1;
  896.                                 taosaxi=1;//这2个值用于控制由于数据没变化引起不刷新
  897.                                 timetaovol=0;
  898.                                 I2CWrite(0x06,(t_year/10)*16+t_year%10);   //修改年
  899.               I2CWrite(0x05,(t_moon/10)*16+t_moon%10);   //修改月
  900.               I2CWrite(0x04,(t_date/10)*16+t_date%10);   //修改日
  901.               I2CWrite(0x02,(t_hour/10)*16+t_hour%10);   //修改时
  902.               I2CWrite(0x01,(t_min/10)*16+t_min%10);   //修改分
  903.               I2CWrite(0x00,(t_sec/10)*16+t_sec%10);   //修改秒
  904.                                 writeDAT();//保存24制
  905.                         }
  906.                        
  907.                        
  908.                 }
  909.                 }
  910. }
  911. //*******************编码控制**********
  912. void panma()
  913. {

  914.         if(panmaoldA==1&&panmaoldB==1&&BINmanA==1&&BINmanB==0)//和前一次状态比较确定为右旋
  915.         {
  916.                 panmavol=1;                  
  917.         }
  918.         if(panmaoldA==1&&panmaoldB==1&&BINmanA==0&&BINmanB==1)//和前一次状态比较确定为右旋
  919.         {
  920.                 panmavol=2;               
  921.         }
  922.         panmaoldA=BINmanA;
  923.         panmaoldB=BINmanB;

  924. }

  925. void paimakong()//编码控制
  926. {
  927.         //unsigned char tempp1;
  928. if(panmavol!=0)
  929. {//编码值为1,2才执行
  930.          if(disppagevol==0)
  931.                 {//时钟页,
  932.                         if(timetaovol==1)
  933.                  {//调年
  934.                          if(panmavol==1)
  935.                          {//向上
  936.                                  
  937. ……………………

  938. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
0.png
所有资料51hei提供下载:
彩屏万年历2.2寸SIP接口中LED屏.zip (2.81 MB, 下载次数: 199)

评分

参与人数 2黑币 +112 收起 理由
练氏 + 12
admin + 100 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:1 发表于 2017-10-14 04:27 | 显示全部楼层
好资料,51黑有你更精彩!!!
回复

使用道具 举报

ID:164850 发表于 2017-10-21 23:51 来自手机 | 显示全部楼层
上个视频

回复

使用道具 举报

ID:199188 发表于 2017-10-22 11:01 | 显示全部楼层
学习啦!
回复

使用道具 举报

ID:64053 发表于 2018-2-1 15:42 | 显示全部楼层
谢楼主分享
回复

使用道具 举报

ID:165276 发表于 2018-2-4 10:06 | 显示全部楼层
楼主彩屏哪里买的?
回复

使用道具 举报

ID:385168 发表于 2019-9-17 14:42 | 显示全部楼层
谢谢啦,谢谢分享!
回复

使用道具 举报

ID:138130 发表于 2019-9-17 19:46 | 显示全部楼层
资料详细,图文并貌,值得保存!
回复

使用道具 举报

ID:155424 发表于 2019-10-30 20:56 | 显示全部楼层
好资料,学习
回复

使用道具 举报

ID:155424 发表于 2019-10-30 20:57 | 显示全部楼层
好资料,学习
回复

使用道具 举报

ID:630332 发表于 2019-11-1 12:28 来自手机 | 显示全部楼层
多谢分享!
回复

使用道具 举报

ID:613618 发表于 2019-11-9 22:37 来自手机 | 显示全部楼层
不错的资料
回复

使用道具 举报

ID:517951 发表于 2020-11-15 16:09 | 显示全部楼层
很好的彩屏应用
回复

使用道具 举报

ID:876149 发表于 2021-1-12 12:42 来自手机 | 显示全部楼层
字体有点不太好看再改改就更好了
回复

使用道具 举报

ID:872598 发表于 2021-1-12 14:33 | 显示全部楼层
处处有大神在,51黑电子论坛是卧龙藏虎的地方。
回复

使用道具 举报

ID:161785 发表于 2021-6-3 21:03 来自手机 | 显示全部楼层
这个好,试试看能否成功
回复

使用道具 举报

ID:87000 发表于 2021-6-4 08:54 | 显示全部楼层
正在弄关于屏的项目,希望有所帮助
回复

使用道具 举报

ID:507641 发表于 2021-7-21 08:38 | 显示全部楼层
void showGUI1(unsigned int fcolour,unsigned int backcolour)
{//这是画日历方框,专用  (12*8)X(16*7)
        unsigned int i;
        Lcd_SetRegion(0,64,95,71);
        for(i=0;i<768;i++)
        {
                if(i>290&&i<381)
                {
                        Lcd_WriteData_16Bit(fcolour);
                       
                }
                else
                {
                        if(i==387||i==483||i==579||i==675||i==476||i==572||i==668||i==764)
                        {
                                Lcd_WriteData_16Bit(fcolour);
                        }
                        else
                        {
                        Lcd_WriteData_16Bit(backcolour);
                        }
                }                               
        }
        Lcd_SetRegion(0,168,95,175);
        for(i=0;i<768;i++)
        {
                if(i>386&&i<477)
                {
                        Lcd_WriteData_16Bit(fcolour);
                       
                }
                else
                {
                        if(i==291||i==195||i==99||i==3||i==380||i==284||i==188||i==92)
                        {
                                Lcd_WriteData_16Bit(fcolour);
                        }
                        else
                        {
                        Lcd_WriteData_16Bit(backcolour);
                        }
                }                               
        }
        Lcd_SetRegion(0,72,7,175);
        for(i=0;i<768;i++)
        {
                if((i%8)==3)
                {
                        Lcd_WriteData_16Bit(fcolour);
                       
                }
                else
                {
                       
                        Lcd_WriteData_16Bit(backcolour);
                       
                }                               
        }
        Lcd_SetRegion(88,72,95,175);
        for(i=0;i<768;i++)
        {
                if((i%8)==4)
                {
                        Lcd_WriteData_16Bit(fcolour);
                       
                }
                else
                {
                       
                        Lcd_WriteData_16Bit(backcolour);
                       
                }                               
        }
}

求解

        if(i==387||i==483||i==579||i==675||i==476||i==572||i==668||i==764)这些表示什么谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表