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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 10209|回復(fù): 13
收起左側(cè)

帶字庫(kù)12864 顯示漢字 指定漢字反白 共享給新手 老鳥飛過

  [復(fù)制鏈接]
ID:82588 發(fā)表于 2015-6-29 19:07 | 顯示全部樓層 |閱讀模式
本帖最后由 dely2009 于 2015-6-29 19:12 編輯

     剛?cè)胧?284  寫了個(gè)時(shí)鐘在字顯示用了16X32  字模大字顯示時(shí)間 , 用于清屏?xí)r才發(fā)現(xiàn), 繪圖模式下漢字不會(huì)被清屏, 圖形錯(cuò)位打時(shí)會(huì)出現(xiàn)在漢字的底層, 故此寫了個(gè)指定漢字可以反白的程序代碼(其實(shí)就是在打字漢字位置畫個(gè)白條)   共享給新手,老鳥飛過吧  勿噴

20150629_183529.jpg

如圖所示的代碼如下

//*****************************************************************************
//           帶字庫(kù),漢字區(qū)反白打底(畫白條)
//     參數(shù):x(0-8)   y(0-3)  width(0-16)   12864屏是4行每行8個(gè)漢字
//
//*****************************************************************************
void Set_Reverse(unsigned char x,unsigned char y,unsigned char width)
{
    unsigned char i,j;
    Clear_GDRAM();
    LCD_Write_Cmd(0x34);
    LCD_Write_Cmd(0x36);
    switch(y)
   {   
       case 0:y=0X80;break;
       case 1:y=0X90;break;
       case 2:y=0X88;break;
       case 3:y=0X98;break;
    }


     for(i=0;i<16;i++)
    {
          if (y==0X80||y==0X88)   
              { LCD_Write_Cmd(0X80+i);}
         else
              { LCD_Write_Cmd(0x90+i);}

          LCD_Write_Cmd(y+x);
          for(j=0;j<width;j++)
         {
                 LCD_Write_Data(0XFF);
         }
    }
    LCD_Write_Cmd(0x36);
}  

如果想滿屏打白底,實(shí)現(xiàn)任意 字符反白可參考下面的代碼(要區(qū)分 奇偶行 和奇偶位的)

20150629_183736.jpg

//******************************************************************
//            任意位置打白底  ( 反白)
//     參數(shù):x(0 - 15)  y(0 - 3),反白長(zhǎng)度(1 - 16)
// ******************************************************************/   
void Set_Reverse(unsigned char x,unsigned char  y,unsigned char width)               
{
         unsigned char i,j,flag= 0;
         unsigned char real_x,real_width;
        Clear_GDRAM();
         if(y>1)
         {
                 flag=0x08;
                 y=y-2;
         }
         LCD_Write_Cmd(0x34);      

        if(x % 2 == 0 && width % 2 == 0)        //開始為偶數(shù),長(zhǎng)度偶數(shù)
         {
                 real_x = x / 2;
                 real_width = width / 2;

                for(i=0;i<16;i++)
                 {
                         LCD_Write_Cmd(0x80+(y<<4)+i);
                         LCD_Write_Cmd(0x80+flag+real_x);            

                        for(j=0;j<real_width;j++)
                         {
                                 LCD_Write_Data(0xff);
                                 LCD_Write_Data(0xff);                           // 全偶數(shù)  寫2個(gè)字符位的白底
                         }
                 }
         }

        if(x % 2 == 0 && width %2 != 0)                        //開始偶數(shù),長(zhǎng)度奇數(shù)
         {
                 real_x = x / 2;
                 real_width = width / 2;

                for(i=0;i<16;i++)
                 {
                         LCD_Write_Cmd(0x80+(y<<4)+i);         
                         LCD_Write_Cmd(0x80+flag+real_x);           

                        for(j=0;j<real_width;j++)
                         {
                                 LCD_Write_Data(0xff);
                                 LCD_Write_Data(0xff);                        
                         }
                         LCD_Write_Data(0xff);
                         LCD_Write_Data(0x00);                                //這個(gè)要在最后面打一豎排 黑底
                 }
         }

        if(x % 2 != 0 && width % 2 == 0)                //開始奇數(shù),長(zhǎng)度偶數(shù)
         {
                 real_x = x / 2;
                 real_width = width / 2 - 1;

                for(i=0;i<16;i++)
                 {
                         LCD_Write_Cmd(0x80+(y<<4)+i);
                         LCD_Write_Cmd(0x80+flag+real_x);               

                        LCD_Write_Data(0x00);
                         LCD_Write_Data(0xff);
                         for(j=0;j<real_width;j++)
                         {
                                 LCD_Write_Data(0xff);
                                 LCD_Write_Data(0xff);                              
                         }
                         LCD_Write_Data(0xff);
                         LCD_Write_Data(0x00);                                //  前后都要 打一豎排 黑底         
                 }
         }
        if(x % 2 != 0 && width % 2 != 0)                                //開始奇數(shù),長(zhǎng)度奇數(shù)
         {
                 real_x = x / 2;
                 real_width = width / 2;

                for(i=0;i<16;i++)
                 {
                         LCD_Write_Cmd(0x80+(y<<4)+i);
                         LCD_Write_Cmd(0x80+flag+real_x);                        

                         LCD_Write_Data(0x00);                          // 只需要在前面多打一豎排黑底
                         LCD_Write_Data(0xff);                                                

                        for(j=0;j<real_width;j++)
                         {
                                 LCD_Write_Data(0xff);
                                 LCD_Write_Data(0xff);                                          
                         }
                 }
         }

        LCD_Write_Cmd(0x36);      
        LCD_Write_Cmd(0x30);      
}





對(duì)于無字庫(kù)的12864直接使用輸出字符時(shí)取反就可以,    寫在這里與新手共享,老鳥飛過, 請(qǐng)勿噴

評(píng)分

參與人數(shù) 2威望 +55 黑幣 +55 收起 理由
absflash + 5 + 5 厲害樓主這水平已經(jīng)成精了
admin + 50 + 50 共享資料的積分獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:59048 發(fā)表于 2015-6-29 22:33 | 顯示全部樓層
什么驅(qū)動(dòng)的?7920?
回復(fù)

使用道具 舉報(bào)

ID:84495 發(fā)表于 2015-7-1 19:22 | 顯示全部樓層
厲害樓主這水平已經(jīng)成精了
回復(fù)

使用道具 舉報(bào)

ID:84144 發(fā)表于 2015-7-1 21:12 | 顯示全部樓層
我也想做一個(gè),試試
回復(fù)

使用道具 舉報(bào)

ID:73650 發(fā)表于 2015-11-29 11:23 | 顯示全部樓層
謝謝,正需要
回復(fù)

使用道具 舉報(bào)

ID:97673 發(fā)表于 2015-11-30 12:45 | 顯示全部樓層
這么厲害還是新手那?
回復(fù)

使用道具 舉報(bào)

ID:97673 發(fā)表于 2015-11-30 12:46 | 顯示全部樓層
我也想做一個(gè)
回復(fù)

使用道具 舉報(bào)

ID:149266 發(fā)表于 2017-4-25 08:10 | 顯示全部樓層
有完整程序嗎
回復(fù)

使用道具 舉報(bào)

ID:163099 發(fā)表于 2017-5-2 23:45 | 顯示全部樓層
反白區(qū)域后拖著一些亮點(diǎn),什么原因?
回復(fù)

使用道具 舉報(bào)

ID:195884 發(fā)表于 2017-7-21 16:02 | 顯示全部樓層
是呀,把完整程序亮出來吧
回復(fù)

使用道具 舉報(bào)

ID:165291 發(fā)表于 2019-11-15 13:12 | 顯示全部樓層
不好使呢? Clear_GDRAM();這個(gè)是什么意思?
回復(fù)

使用道具 舉報(bào)

ID:644149 發(fā)表于 2019-12-4 09:08 | 顯示全部樓層
我的12864不帶字庫(kù),反白的時(shí)候要亂跳是什么個(gè)情況。就是本來是顯示2它卻要顯示3,本來是3它卻要顯示1
???
回復(fù)

使用道具 舉報(bào)

ID:414522 發(fā)表于 2020-11-27 15:28 | 顯示全部樓層
非常感謝樓主分享!正發(fā)愁反白的問題,看到后就參考了一下。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 99亚洲国产精品 | 久久久久亚洲av毛片大全 | 国产成人精品久久二区二区 | 在线播放一区二区三区 | 精精国产xxxx视频在线播放 | 在线欧美小视频 | 国产区久久| 久久不卡日韩美女 | 99精品国产一区二区青青牛奶 | 一区二区三区不卡视频 | 亚洲午夜精品一区二区三区 | 亚洲一区二区三区在线免费 | 三级国产三级在线 | 不卡一区二区三区四区 | 久久久精品网 | 日韩精品一区二区三区免费视频 | 亚洲免费人成在线视频观看 | 伊人狠狠干 | 美女国产精品 | 午夜爽爽爽男女免费观看影院 | 欧美成人精品在线 | 91免费小视频 | 欧美性吧 | 天堂资源| 黄色网毛片 | 国产 欧美 日韩 一区 | 亚洲一区二区三 | 日韩午夜影院 | 亚洲视频在线观看 | 日日干综合 | 午夜极品| 欧美aⅴ在线观看 | av性色 | 日韩国产在线观看 | 亚洲国产精品一区二区三区 | 午夜小视频在线播放 | 91亚洲精华国产 | 日韩免费中文字幕 | 欧美激情一区二区三区 | 成人免费一级视频 | 久久爆操 |