久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10252|回復: 17
打印 上一主題 下一主題
收起左側

彩屏萬年歷2.2寸SIP接口中LED屏+ds3231+15w4k58s4帶24節氣及節日

  [復制鏈接]
跳轉到指定樓層
樓主
用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為參數加



原理圖:





單片機源程序如下:
  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黑下載附件…………
復制代碼

所有資料51hei提供下載:
彩屏萬年歷2.2寸SIP接口中LED屏.zip (2.81 MB, 下載次數: 206)





評分

參與人數 2黑幣 +112 收起 理由
練氏 + 12
admin + 100 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏22 分享淘帖 頂3 踩
回復

使用道具 舉報

沙發
ID:1 發表于 2017-10-14 04:27 | 只看該作者
好資料,51黑有你更精彩!!!
回復

使用道具 舉報

板凳
ID:164850 發表于 2017-10-21 23:51 來自手機 | 只看該作者
上個視頻

回復

使用道具 舉報

地板
ID:199188 發表于 2017-10-22 11:01 | 只看該作者
學習啦!
回復

使用道具 舉報

5#
ID:64053 發表于 2018-2-1 15:42 | 只看該作者
謝樓主分享
回復

使用道具 舉報

6#
ID:165276 發表于 2018-2-4 10:06 | 只看該作者
樓主彩屏哪里買的?
回復

使用道具 舉報

7#
ID:385168 發表于 2019-9-17 14:42 | 只看該作者
謝謝啦,謝謝分享!
回復

使用道具 舉報

8#
ID:138130 發表于 2019-9-17 19:46 | 只看該作者
資料詳細,圖文并貌,值得保存!
回復

使用道具 舉報

9#
ID:155424 發表于 2019-10-30 20:56 | 只看該作者
好資料,學習
回復

使用道具 舉報

10#
ID:155424 發表于 2019-10-30 20:57 | 只看該作者
好資料,學習
回復

使用道具 舉報

11#
ID:630332 發表于 2019-11-1 12:28 來自手機 | 只看該作者
多謝分享!
回復

使用道具 舉報

12#
ID:613618 發表于 2019-11-9 22:37 來自手機 | 只看該作者
不錯的資料
回復

使用道具 舉報

13#
ID:517951 發表于 2020-11-15 16:09 | 只看該作者
很好的彩屏應用
回復

使用道具 舉報

14#
ID:876149 發表于 2021-1-12 12:42 來自手機 | 只看該作者
字體有點不太好看再改改就更好了
回復

使用道具 舉報

15#
ID:872598 發表于 2021-1-12 14:33 | 只看該作者
處處有大神在,51黑電子論壇是臥龍藏虎的地方。
回復

使用道具 舉報

16#
ID:161785 發表于 2021-6-3 21:03 來自手機 | 只看該作者
這個好,試試看能否成功
回復

使用道具 舉報

17#
ID:87000 發表于 2021-6-4 08:54 | 只看該作者
正在弄關于屏的項目,希望有所幫助
回復

使用道具 舉報

18#
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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一起操网站 | 欧美区日韩区 | 久热m3u8 | 欧美精品久久久久久久久老牛影院 | 日日射影院 | 日日噜噜噜夜夜爽爽狠狠视频97 | 欧美精品一区久久 | 久久久久久亚洲 | 亚洲视频一区在线 | 夜夜草视频 | 成人在线免费观看视频 | 久久久久无码国产精品一区 | 亚洲精品乱码久久久久v最新版 | 一级午夜aaa免费看三区 | 日韩欧美一区二区在线播放 | 一区二区三区四区视频 | 久久久久久av | 日日天天 | 青青草这里只有精品 | 欧美在线视频二区 | 亚洲国产欧美国产综合一区 | 精品1区2区 | 久久精品欧美电影 | 久久欧美高清二区三区 | 亚洲风情在线观看 | 99re在线视频 | 日本不卡免费新一二三区 | av国产精品毛片一区二区小说 | 日韩视频在线一区 | 91精品国产91久久久久久最新 | 国产小视频自拍 | 97国产在线观看 | 午夜日韩 | 久久激情视频 | 影音先锋中文字幕在线观看 | 亚洲网站在线观看 | 亚洲电影专区 | 日韩av成人在线 | 成人午夜高清 | 精品国产伦一区二区三区观看说明 | 国产精品视频网址 |