色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > st7920控制的12864打點

          st7920控制的12864打點

          作者: 時間:2016-12-02 來源:網(wǎng)絡 收藏
          可以在任意位置打點了,在這里謝謝那些好心的人,把易于出現(xiàn)問題的地方給大家說明下,一定要仔細閱讀DATESHEET,方便后人。
          1、打點位置的定位
          2、讀取當前顯示的數(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; //定義為上下兩個屏(取值為0,1),行地址(取值為0~31)
          Write_command(0x36); //繪圖模式命令
          /***X,Y坐標互換,即普通的X,Y坐標***/
          x_Dyte=y/16; //計算在16個字節(jié)中的哪一個
          x_byte=y&0x0f; //計算在該字節(jié)中的哪一位
          y_Dyte=x/32; //0為上半屏,1為下半屏
          y_byte=x&0x1f; //計算在0~31當中的哪一行

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

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

          if(flag==1)
          {
          Write_command(0x80+y_byte); //設定行地址(y坐標)
          Write_command(0x80+x_Dyte+8*y_Dyte); //設定列地址(x坐標),并通過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ù)
          }
          }


          /**********讀取當前地址的LCD顯示數(shù)據(jù)**********/
          uchar Read_data()
          {
          uchar shuju;
          LCD_DATA_set_in; //端口PB設置輸入
          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; //讀取當前顯示的數(shù)據(jù)
          CLR_E;
          return(shuju);
          }



          關鍵詞: st7920控制12864打

          評論


          技術專區(qū)

          關閉