新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > st7920控制的12864打點(diǎn)

        st7920控制的12864打點(diǎn)

        作者: 時(shí)間:2016-12-02 來源:網(wǎng)絡(luò) 收藏
        可以在任意位置打點(diǎn)了,在這里謝謝那些好心的人,把易于出現(xiàn)問題的地方給大家說明下,一定要仔細(xì)閱讀DATESHEET,方便后人。
        1、打點(diǎn)位置的定位
        2、讀取當(dāng)前顯示的數(shù)據(jù)
        3、或和移位,即重新寫人的新數(shù)據(jù)
        程序如下:
        void GUI_Point(uchar x,uchar y,uchar flag)
        {
        uchar x_Dyte,x_byte; //定義列地址的字節(jié)位,及在字節(jié)中的哪1位
        uchar y_Dyte,y_byte; //定義為上下兩個(gè)屏(取值為0,1),行地址(取值為0~31)
        Write_command(0x36); //繪圖模式命令
        /***X,Y坐標(biāo)互換,即普通的X,Y坐標(biāo)***/
        x_Dyte=y/16; //計(jì)算在16個(gè)字節(jié)中的哪一個(gè)
        x_byte=y&0x0f; //計(jì)算在該字節(jié)中的哪一位
        y_Dyte=x/32; //0為上半屏,1為下半屏
        y_byte=x&0x1f; //計(jì)算在0~31當(dāng)中的哪一行

        Write_command(0x80+y_byte); //設(shè)定行地址(y坐標(biāo))
        Write_command(0x80+x_Dyte+8*y_Dyte); //設(shè)定列地址(x坐標(biāo)),并通過8*y_Dyte選定上下屏

        Read_data();
        GDRAM_hbit=Read_data(); //讀取當(dāng)前顯示高8位數(shù)據(jù)
        GDRAM_lbit=Read_data(); //讀取當(dāng)前顯示低8位數(shù)據(jù)
        delay_us(5);

        if(flag==1)
        {
        Write_command(0x80+y_byte); //設(shè)定行地址(y坐標(biāo))
        Write_command(0x80+x_Dyte+8*y_Dyte); //設(shè)定列地址(x坐標(biāo)),并通過8*y_Dyte選定上下屏
        delay_us(5);
        if(x_byte<8) //判斷其在高8位,還是在低8位
        {
        Write_data(GDRAM_hbit|(0X01<<(7-x_byte))); //顯示GDRAM區(qū)高8位數(shù)據(jù)
        Write_data(GDRAM_lbit); //顯示GDRAM區(qū)低8位數(shù)據(jù)
        }
        else
        {
        Write_data(GDRAM_hbit);
        Write_data(GDRAM_lbit|(0x01<<(15-x_byte)));
        }
        }
        else
        {
        Write_data(0x00)); //清除GDRAM區(qū)高8位數(shù)據(jù)
        Write_data(0x00)); //清除GDRAM區(qū)低8位數(shù)據(jù)
        }
        }


        /**********讀取當(dāng)前地址的LCD顯示數(shù)據(jù)**********/
        uchar Read_data()
        {
        uchar shuju;
        LCD_DATA_set_in; //端口PB設(shè)置輸入
        LCD_DATA_PORT=0xff;
        SET_DI; // D/I=1,代表數(shù)據(jù)
        SET_RW; // R/W=1.讀取
        delay_us(10);
        SET_E;
        delay_us(100);
        shuju=PINB; //讀取當(dāng)前顯示的數(shù)據(jù)
        CLR_E;
        return(shuju);
        }



        關(guān)鍵詞: st7920控制12864打

        評論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 苏州市| 拉萨市| 奉节县| 越西县| 都匀市| 灵石县| 班玛县| 佛坪县| 阿克苏市| 新宁县| 仁怀市| 阿图什市| 肥乡县| 松原市| 厦门市| 商水县| 卫辉市| 鄂托克旗| 依兰县| 龙井市| 微山县| 大兴区| 措勤县| 肥城市| 杨浦区| 永寿县| 岳阳市| 托克逊县| 达州市| 承德县| 丹巴县| 上犹县| 西林县| 行唐县| 黑龙江省| 红原县| 岑巩县| 晋州市| 赞皇县| 江源县| 肇东市|