欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 請問單片機+lcd1602怎么輸入一串數字啊 [打印本頁]

作者: 殤兩盞    時間: 2021-8-13 02:42
標題: 請問單片機+lcd1602怎么輸入一串數字啊
比如我按下6,lcd上顯示6,繼續按2,顯示62,可以一直輸入連續的,我現在只會顯示一個數字的。。。。想了好久不知怎么辦,求大神

作者: wulin    時間: 2021-8-13 06:43
        write_com(0x80);//第一行起始位置
        write_date('6');

        write_com(0x80+1);//第一行次位置
        write_date('2');

        write_com(0x80+2);//以此類推
        write_date('5');
作者: bbxyliyang    時間: 2021-8-13 06:43
這個簡單,改變顯示的地址就行了
作者: zyluglugl    時間: 2021-8-13 07:09
坐標沒有加上,最好附上顯示的程序,大神們才好給你建議。
作者: xuyaqi    時間: 2021-8-13 07:31
把按下的數放在一個數組里,然后顯示一個數組。
作者: §uperЦser    時間: 2021-8-13 07:34
如果讓lcd1602顯示數字,需要用ascll碼。0x30+(要顯示的數字)=要顯示的數字的ascll碼。如果要顯示的數字有多個位數的話,需要用求模運算和求余運算把各個位數分開,再用lcd1602顯示相應的內容
作者: lkc8210    時間: 2021-8-13 07:40
上代碼
看看你是怎樣寫的
作者: angmall    時間: 2021-8-13 07:44
可供參考


單片機+LCD1602矩陣鍵盤的計算器程序
http://m.raoushi.com/bbs/dpj-210086-1.html
作者: cheney03    時間: 2021-8-13 08:35
這個是萬年歷的時鐘設置,可以參考

萬年歷.zip

1.6 KB, 下載次數: 9


作者: 楊雪飛    時間: 2021-8-13 09:48
設一個變量n,初始值為0,按鍵檢測到一次n+1,把這個n給寫命令的地址(比如從第一行第一個字符開始就是  w_com (ox80+n );)這樣可以實現按鍵一次寫入一個數字且光標后移一位。
作者: lmn2005    時間: 2021-8-13 13:16
//顯示字符串:第x行第y列顯示什么內容
void ShowString(unsigned char x,unsigned char y,unsigned char *str)
{
       
        //設置起始位置
        if(x == 1)
        {
                write_LCD_Command(0x80 | y-1);//  |相當于加法
        }
        if(x == 2)
        {
                write_LCD_Command(0xc0 | y-1);
        }
        //輸出字符串
        delayms(2);
        while(*str!='\0')
        {               
                write_LCD_data(*str);               
                str++;
        }

}
作者: lmn2005    時間: 2021-8-13 13:17
//顯示字符串:第x行第y列顯示什么字符串
void ShowString(unsigned char x,unsigned char y,unsigned char *str)
{
       
        //設置起始位置
        if(x == 1)
        {
                write_LCD_Command(0x80 | y-1);//  |相當于加法
        }
        if(x == 2)
        {
                write_LCD_Command(0xc0 | y-1);
        }
        //輸出字符串
        delayms(2);
        while(*str!='\0')
        {               
                write_LCD_data(*str);               
                str++;
        }

}
ShowString(1,1,"12345678ABC");
作者: 殤兩盞    時間: 2021-8-14 13:24
zyluglugl 發表于 2021-8-13 07:09
坐標沒有加上,最好附上顯示的程序,大神們才好給你建議。

#include<reg51.h>       
#include"lcd.h"

#define GPIO_KEY P1

unsigned char KeyValue;
//óÃà′′æ·Å¶áè¡μ½μļüÖμ
unsigned char KeyState;
//óÃà′′æ·Å°′¼ü×′ì¬
unsigned char dat[]="0123456789ABCDEF";
unsigned char a[6]={0,0,0,0,0,0};
void Delay10ms();   //Ñóê±50us
void KeyDown();                 //¼ì2a°′¼üoˉêy

/*******************************************************************************
* oˉ êy Ãû         : main
* oˉêy1|Äü                   : Ö÷oˉêy
* êä    èë         : ÎT
* êä    3ö         : ÎT
*******************************************************************************/
void main(void)
{
        unsigned char i;
        LcdInit();
        KeyState=0;
        while(1)
        {
                KeyDown();
                if(KeyState)
                {
                        KeyState=0;
                        for(i=0;i<6;i++)
           {
                        a[i+1]=a;               
     }               
                        a[0]=KeyValue;
                        LcdWriteCom(0x80+0x40);
      LcdWriteData(KeyValue+0x30);                 
                }       
        }               
}
作者: 殤兩盞    時間: 2021-8-14 13:25
lkc8210 發表于 2021-8-13 07:40
上代碼
看看你是怎樣寫的

大神,這是我寫的代碼
#include<reg51.h>       
#include"lcd.h"

#define GPIO_KEY P1

unsigned char KeyValue;
//óÃà′′æ·Å¶áè¡μ½μļüÖμ
unsigned char KeyState;
//óÃà′′æ·Å°′¼ü×′ì¬
unsigned char dat[]="0123456789ABCDEF";
unsigned char a[6]={0,0,0,0,0,0};
void Delay10ms();   //Ñóê±50us
void KeyDown();                 //¼ì2a°′¼üoˉêy

/*******************************************************************************
* oˉ êy Ãû         : main
* oˉêy1|Äü                   : Ö÷oˉêy
* êä    èë         : ÎT
* êä    3ö         : ÎT
*******************************************************************************/
void main(void)
{
        unsigned char i;
        LcdInit();
        KeyState=0;
        while(1)
        {
                KeyDown();
                if(KeyState)
                {
                        KeyState=0;
                        for(i=0;i<6;i++)
           {
                        a[i+1]=a;               
     }               
                        a[0]=KeyValue;
                        LcdWriteCom(0x80+0x40);
      LcdWriteData(KeyValue+0x30);                 
                }       
        }               
}
作者: 殤兩盞    時間: 2021-8-14 13:33
楊雪飛 發表于 2021-8-13 09:48
設一個變量n,初始值為0,按鍵檢測到一次n+1,把這個n給寫命令的地址(比如從第一行第一個字符開始就是  w_ ...

謝謝你,解決了
作者: lkc8210    時間: 2021-8-14 14:04
殤兩盞 發表于 2021-8-14 13:25
大神,這是我寫的代碼
#include       
#include"lcd.h"

代碼不全啊老弟~




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1