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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

lcd1602光標我怎么控制,我要把光標移到一個地方,然后對某個數字操作加減

[復制鏈接]
跳轉到指定樓層
樓主
ID:725056 發表于 2020-4-11 23:34 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
lcd1602光標我怎么控制,我要把光標移到一個地方,然后對某個數字操作加減。代碼應該怎么寫,求大神指導一下!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:641629 發表于 2020-4-12 15:58 | 只看該作者
void init()                                                               
{
         RW=0;
         LCDEN=0;
     writeComm(0x38); //顯示模式,
     writeComm(0x0c); //開顯示, 關光標
     writeComm(0x06); //寫字符后地址加1, 光標加1
     writeComm(0x01); //清屏
}
void writeComm(uchar comm)                              //寫命令程序
{
    RS = 0;   
    LCDEN = 1;
        P2 = comm;
        del_ms(1);
    LCDEN = 0;
    del_ms(1);
}


void writeData(uchar dat)                                         //給1602液晶屏發送數據
{
    RS = 1;
    LCDEN = 1;
        P2 = dat;
    del_ms(1);
     LCDEN = 0;
     del_ms(1);
}
void writeString(uchar *str,uchar length)               
{
    uchar i;
    for(i=0;i<length;i++)
    {
        writeData(str[i]);
     }
}
writeComm(0x80+????);writeData(' ?????');

這里就是定位的光標
回復

使用道具 舉報

板凳
ID:641629 發表于 2020-4-12 15:59 | 只看該作者
另外一種   主要看    LCD_set_xy( uchar x, uchar y )

void LCD_init(void)               //液晶初始化
{
        P1=0xFF;
        P3=0xff;                                //輸出
        LCD_RS=0;                                  //
        del_ms(50);
               
    LCD_write_char(0x30,0);
    del_ms(6);
    LCD_write_char(0x30,0);        //
    del_ms(1);
    LCD_write_char(0x30,0);        //上電即顯示正常,無需復位        
    del_ms(1);
    LCD_write_char(0x02,0);
    del_ms(1);
    LCD_write_char(0x28,0); //4bit test顯示模式設置(不檢測忙信號)
    del_ms(1);  
    LCD_write_char(0x08,0); // 顯示關閉
    del_ms(1);
           LCD_write_char(0x01,0); // 顯示清屏
    del_ms(1);
    LCD_write_char(0x06,0); // 顯示光標移動設置
    del_ms(1);
    LCD_write_char(0x0C,0); // 顯示開及光標設置
    del_ms(10);
}
//---------------------------------------------
void LCD_write_str(uchar X,uchar Y,uchar *s)
  {
    LCD_set_xy( X, Y );         //寫地址   
    while (*s)                          // 寫顯示字符
      {
        LCD_write_char( 0, *s );
                s ++;
      }
  }
  void LCD_set_xy( uchar x, uchar y )  //寫地址函數
  {
    uchar address;
    if (y == 0) address = 0x80 + x;
    else
       address = 0xc0 + x;
    LCD_write_char( address, 0 );
  }
//------------------------------------------------
void LCD_en_write(void)          //液晶使能
{
  _nop_();
  LCD_E=1;//EN=1
  _nop_();
  LCD_E=0;//EN=0
}
//------------------------------------------------
void LCD_write_char(uchar cd,uchar ab) // 寫數據
{
delay_nus(20);
if(cd==0)
{
  LCD_RS=1;                                  //RS=1,寫顯示內容  
  LCD_byte(ab);
}
else
{
  LCD_RS=0;                                   //RS=0,寫命令
  LCD_byte(cd);
  }
}
//-----------------------------------------------
void LCD_byte(uchar abc)//
{
        delay_nus(50);
        if(((abc<<0)&0x80)==0)         //MSB is output first
         LCD_D7=0;                      //abc=0
         else LCD_D7=1;                 //abc=1
        if(((abc<<1)&0x80)==0)         //MSB is output first
         LCD_D6=0;                      //abc=0
         else LCD_D6=1;                 //abc=1
        if(((abc<<2)&0x80)==0)         //MSB is output first
         LCD_D5=0;                      //abc=0
         else LCD_D5=1;                 //abc=1
        if(((abc<<3)&0x80)==0)         //MSB is output first
         LCD_D4=0;                      //abc=0
         else LCD_D4=1;                 //abc=1
        LCD_en_write();
       
        if(((abc<<4)&0x80)==0)         //MSB is output first
         LCD_D7=0;                      //abc=0
         else LCD_D7=1;                 //abc=1
        if(((abc<<5)&0x80)==0)         //MSB is output first
         LCD_D6=0;                      //abc=0
         else LCD_D6=1;                 //abc=1
        if(((abc<<6)&0x80)==0)         //MSB is output first
         LCD_D5=0;                      //abc=0
         else LCD_D5=1;                 //abc=1
        if(((abc<<7)&0x80)==0)         //MSB is output first
         LCD_D4=0;                      //abc=0
         else LCD_D4=1;                 //abc=1
        LCD_en_write();
                
}
回復

使用道具 舉報

地板
ID:514901 發表于 2020-4-12 16:36 | 只看該作者
LCD寫命令模式,第一行是0x80+列位置,第二行是0xc0+列位置
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美国产亚洲一区二区 | 欧美日韩综合视频 | 99久久婷婷国产精品综合 | 亚洲一区二区精品视频 | 欧美在线一区二区三区 | 香蕉一区 | 日日草夜夜草 | 午夜成人免费视频 | 天天玩夜夜操 | 精久久久 | 日韩av一区二区在线观看 | 久久鲁视频 | 91极品视频 | 在线观看www| 成人h片在线观看 | 99re热精品视频 | 国产乱码精品一区二区三区忘忧草 | 中文字幕一区二区三区在线观看 | 欧美精品在线免费 | 亚洲日日夜夜 | 91人人看 | 亚洲男人网| 91亚洲精品久久久电影 | 亚洲国产精品一区二区久久 | 黑人精品| 成人在线视频网 | 成人一区二区三区在线观看 | 中文字幕一区二区三区四区五区 | 一区二区不卡高清 | 91精品国产综合久久久久 | 欧美性网 | 欧美日韩精品在线一区 | 一区二区三区在线 | 免费成人av网站 | 久久蜜桃av | 亚洲激情专区 | 久久久久久成人网 | 亚洲成人自拍 | 在线亚洲电影 | 成人欧美一区二区三区在线播放 | 欧美日韩不卡合集视频 |