打印
[STM32F1]

lcd显示按键输入可变数据

[复制链接]
2715|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
目的:按下key,数据加一,并在lcd上显示出来。
问题:为什么要按下复位键,再按key数据才能加一。(这样永远只能显示1.)而且我发现,我按下按键时,不管数据有没有加一,lcd的屏幕亮度会变暗,松开后又恢复到原来的亮度。按键是我自己做的外设独立键盘。
沙发
yichunshan| | 2016-8-24 10:40 | 只看该作者
贴图贴代码

使用特权

评论回复
板凳
icecut| | 2016-8-24 12:05 | 只看该作者
新手代码都这样.正常

使用特权

评论回复
地板
autooy| | 2016-8-24 16:21 | 只看该作者
第一:估计你的按键处理程序死循环等待造成。第二,贴代码出来;第三:你的单片机本身无自动复位功能?非得按复位键才复位?

使用特权

评论回复
5
时光深巷已无她|  楼主 | 2016-8-24 16:52 | 只看该作者
autooy 发表于 2016-8-24 16:21
第一:估计你的按键处理程序死循环等待造成。第二,贴代码出来;第三:你的单片机本身无自动复位功能?非得 ...

int main(void)
{
        u8 x;
         u8 n,m,l;
        delay_init();                     //ÑÓʱº¯Êý³õʼ»¯          
        uart_init(9600);                 //´®¿Ú³õʼ»¯Îª9600
        LED_Init();                                  //³õʼ»¯ÓëLEDÁ¬½ÓµÄÓ²¼þ½Ó¿Ú
        LCD_Init();
        Read_Init();
         
         
        POINT_COLOR=RED;
        LCD_Fill(1,1,250,300,BLACK);
        POINT_COLOR=RED;
  BACK_COLOR=        BLACK;

        LCD_ShowString(30,40,200,24,24,"bingxingchuanshu ^_^");       

        x=read_data();
       
  l=x/100;         
        m=x/10;
        n=x%10;
       
        POINT_COLOR=RED;
  BACK_COLOR=        BLACK;
        LCD_ShowxNum(140,150,l,1,16,0);
        LCD_ShowxNum(148,150,m,1,16,0);
  LCD_ShowxNum(156,150,n,1,16,0);

}

使用特权

评论回复
6
时光深巷已无她|  楼主 | 2016-8-24 16:53 | 只看该作者
时光深巷已无她 发表于 2016-8-24 16:52
int main(void)
{
        u8 x;

回错了

使用特权

评论回复
7
时光深巷已无她|  楼主 | 2016-8-24 16:54 | 只看该作者
时光深巷已无她 发表于 2016-8-24 16:52
int main(void)
{
        u8 x;

回错了

使用特权

评论回复
8
时光深巷已无她|  楼主 | 2016-8-24 16:55 | 只看该作者

int main(void)
{
        u8 key;
        u32 a[3];
         a[0]=0;
         a[1]=0;
         a[2]=0;
           
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// ÉèÖÃÖжÏÓÅÏȼ¶·Ö×é2
        delay_init();                     //ÑÓʱº¯Êý³õʼ»¯          
        uart_init(9600);                 //´®¿Ú³õʼ»¯Îª9600                         
        LCD_Init();                        //³õʼ»¯Òº¾§
        LED_Init();         //LED³õʼ»¯                                                                                                                     
        KEY_Init();                                //°´¼ü³õʼ»¯                                                                                                                      
        usmart_dev.init(72);        //usmart³õʼ»¯       
        mem_init();                                //³õʼ»¯ÄÚ´æ³Ø            
        exfuns_init();                        //ΪfatfsÏà¹Ø±äÁ¿ÉêÇëÄÚ´æ  
  f_mount(fs[0],"0:",1);         //¹ÒÔØSD¿¨
        f_mount(fs[1],"1:",1);         //¹ÒÔØFLASH.
        font_init();
        key=KEY_Scan(0);
         if(key==KEY2_PRES)
                 a[2]++;
       
         POINT_COLOR=BLACK;
         Show_Str(50,80,200,24,"ÊäÈë:",16,0);       
         LCD_ShowxNum(90,80,a[0],1,16,0);
         LCD_ShowxNum(98,80,a[1],1,16,0);
         LCD_ShowxNum(106,80,a[2],1,16,0);
         Show_Str(50,130,200,16,"Êä³ö:",16,0);

}

使用特权

评论回复
9
时光深巷已无她|  楼主 | 2016-8-24 16:55 | 只看该作者

你给看看

使用特权

评论回复
10
dongnanxibei| | 2016-8-24 18:33 | 只看该作者
按下会变暗,是电路设计不合理。

使用特权

评论回复
11
mmuuss586| | 2016-8-24 18:51 | 只看该作者
你这函数的循环在哪里啊?
好像只执行一遍呢;

使用特权

评论回复
12
yklstudent| | 2016-8-24 19:31 | 只看该作者
。。。。。。。

使用特权

评论回复
13
皈依| | 2016-8-24 20:32 | 只看该作者
这程序执行下来就是你实验的结果。
、初始化完加WHILE(1)或for(;;)

使用特权

评论回复
14
playlinus| | 2016-8-25 01:14 | 只看该作者
你的按键设计是否与LCD的引脚有复用呢 ?
https://boy-display.taobao.com/

使用特权

评论回复
15
时光深巷已无她|  楼主 | 2016-8-25 09:09 | 只看该作者
皈依 发表于 2016-8-24 20:32
这程序执行下来就是你实验的结果。
、初始化完加WHILE(1)或for(;;)

解决了,谢谢,接个while就好了。不过按下之后屏幕还是会变暗,

使用特权

评论回复
16
时光深巷已无她|  楼主 | 2016-8-25 09:12 | 只看该作者
dongnanxibei 发表于 2016-8-24 18:33
按下会变暗,是电路设计不合理。

,谢谢 我来查查原因

使用特权

评论回复
17
皈依| | 2016-8-25 11:49 | 只看该作者
时光深巷已无她 发表于 2016-8-25 09:09
解决了,谢谢,接个while就好了。不过按下之后屏幕还是会变暗,

这个要查查问题了~从硬件到软件

使用特权

评论回复
18
dongnanxibei| | 2016-8-25 14:49 | 只看该作者
按下变暗应该是有端口共有了吧,按下之后给LCD供电就小了

使用特权

评论回复
19
huangcunxiake| | 2016-8-25 20:12 | 只看该作者
随便参考个别人的,看看电路怎么接的,不要有用点冲突。

使用特权

评论回复
20
neeringstu| | 2016-8-25 21:00 | 只看该作者
你这问题问的不好说,得看看你的电路和代码

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

46

主题

247

帖子

4

粉丝