亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

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

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3951|回復(fù): 7
打印 上一主題 下一主題
收起左側(cè)

疑問(wèn):網(wǎng)上的單片機(jī)12864顯示漢字程序?yàn)槭裁达@示是從右到左?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:192847 發(fā)表于 2019-7-6 15:35 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
主程序調(diào)用部分:
Lcd12864_Write16CnCHAR(0, i, "司公限有技科中普");

這個(gè)顯示程序其實(shí)我能大概理解,但是對(duì)于顯示順序卻不理解,
1.為什么是從右到左呢?
2.如果是LCD鏡像顯示所以導(dǎo)致從右到左,但是這個(gè)程序是向?qū)?yīng)的頁(yè)以及列數(shù)地址去寫(xiě)數(shù)據(jù),這也有點(diǎn)說(shuō)不通

希望各位幫幫我,有時(shí)并不需要太多的解釋?zhuān)粌删浣鹧员隳芙忾_(kāi)困擾小弟許久的問(wèn)題,多謝大家

先上程序:
uchar Lcd12864_Write16CnCHAR(uchar x, uchar y, uchar *cn)
{
        uchar j, x1, x2, wordNum;

        //--Y的坐標(biāo)只能從0到7,大于則直接返回--//
        if(y > 7)
        {
                return 0;
        }

        //--X的坐標(biāo)只能從0到128,大于則直接返回--//
        if(x > 128)
        {
                return 0;
        }
        y += 0xB0;           //求取Y坐標(biāo)的值
        //--設(shè)置Y坐標(biāo)--//
        LcdSt7565_WriteCmd(y);
        while ( *cn != '\0')         //在C語(yǔ)言中字符串結(jié)束以‘\0’結(jié)尾
        {        
        
                //--設(shè)置Y坐標(biāo)--//
                LcdSt7565_WriteCmd(y);

                x1 = (x >> 4) & 0x0F;   //由于X坐標(biāo)要兩句命令,分高低4位,所以這里先取出高4位
                x2 = x & 0x0F;          //去低四位
                //--設(shè)置X坐標(biāo)--//
                LcdSt7565_WriteCmd(0x10 + x1);   //高4位
                LcdSt7565_WriteCmd(0x04 + x2);        //低4位

                for (wordNum=0; wordNum<50; wordNum++)
                {
                    //--查詢(xún)要寫(xiě)的字在字庫(kù)中的位置--//
                        if ((CN16CHAR[wordNum].Index[0] == *cn)
                             &&(CN16CHAR[wordNum].Index[1] == *(cn+1)))
                        {
                                for (j=0; j<32; j++) //寫(xiě)一個(gè)字
                                {               
                                        if (j == 16)         //由于16X16用到兩個(gè)Y坐標(biāo),當(dāng)大于等于16時(shí),切換坐標(biāo)
                                        {
                                                //--設(shè)置Y坐標(biāo)--//
                                                   LcdSt7565_WriteCmd(y + 1);
                        
                                                //--設(shè)置X坐標(biāo)--//
                                                LcdSt7565_WriteCmd(0x10 + x1);   //高4位
                                                LcdSt7565_WriteCmd(0x04 + x2);        //低4位
                                        }
                                        LcdSt7565_WriteData(CN16CHAR[wordNum].Msk[j]);
                                }
                                x += 16;
                        }//if查到字結(jié)束               
                } //for查字結(jié)束        
                cn += 2;
        }        //while結(jié)束
        return 1;
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:192847 發(fā)表于 2019-7-6 16:59 | 只看該作者
懂了,是字模和屏幕的排列問(wèn)題
回復(fù)

使用道具 舉報(bào)

板凳
ID:579064 發(fā)表于 2019-7-6 18:12 | 只看該作者
這個(gè)好像跟st7565驅(qū)動(dòng)中的行列掃描的方向設(shè)置有關(guān)
回復(fù)

使用道具 舉報(bào)

地板
ID:192847 發(fā)表于 2019-7-8 08:38 | 只看該作者
不同驅(qū)動(dòng)IC對(duì)字模的掃描是不同的,UC1701X和ST7565有略微的差別
回復(fù)

使用道具 舉報(bào)

5#
ID:488962 發(fā)表于 2019-7-18 12:25 | 只看該作者
普中的開(kāi)發(fā)板子不錯(cuò)。  但提供的程序代碼寫(xiě)得很一般, 還有不少錯(cuò)誤的注釋。
  

那個(gè)代碼的字模確實(shí)是反的。 但是不改字模,改代碼也可以反回來(lái)的:
1. st7565.c ->  void Lcd12864_Init() ->  LcdSt7565_WriteCmd(0xA1)  :  0xA1改成0xA0  變成從左到右
2. st7565.c -> uchar Lcd12864_Write16CnCHAR(  ->  LcdSt7565_WriteData(CN16CHAR[wordNum].Msk[j]) :  Msk[j]改成Msk[j<16?15-j:47-j]  讓字模左右對(duì)調(diào)
3.  調(diào)用時(shí), "司公限有技科中普" 就不用反過(guò)來(lái)了。


測(cè)試發(fā)現(xiàn),顯示過(guò)快過(guò)多的文字可以會(huì)亂碼。 只能添加一些delay。  具體原因未知。


另:最頂上的一排圖標(biāo)也是可以操作顯示的,只要把y坐標(biāo)移到8,x坐標(biāo)0~127一個(gè)個(gè)坐標(biāo)發(fā)數(shù)據(jù)過(guò)去就可以試出來(lái)了,發(fā)送0清除,發(fā)送0xff顯示

回復(fù)

使用道具 舉報(bào)

6#
ID:488962 發(fā)表于 2019-7-19 02:24 | 只看該作者
你用的開(kāi)發(fā)板是em3 v3, 還是v2.2   的?
回復(fù)

使用道具 舉報(bào)

7#
ID:401564 發(fā)表于 2019-7-19 08:32 | 只看該作者
這個(gè)程序嚴(yán)格上來(lái)說(shuō)是用沒(méi)有漢字字庫(kù)的12864來(lái)顯示漢字
實(shí)際上就是用X軸Y軸來(lái)掃描顯示一個(gè)完整的漢字,每8個(gè)點(diǎn)對(duì)應(yīng)一個(gè)8位的地址空間,你看數(shù)據(jù)手冊(cè)就知道了
那地址和二進(jìn)制數(shù)都是從右向左按低位到高位排列的,那么顯示也是這么顯示了,不只是st7565,其它的驅(qū)動(dòng)IC都是這么排列的了
回復(fù)

使用道具 舉報(bào)

8#
ID:688062 發(fā)表于 2020-2-23 16:22 | 只看該作者
看看顯示屏的數(shù)據(jù)手冊(cè),是不是初始化設(shè)置不太對(duì),也可以修改顯示函數(shù)解決問(wèn)題
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表