找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1678|回复: 7
打印 上一主题 下一主题
收起左侧

设置键程序有问题么,按了很多下才能调时间

[复制链接]
跳转到指定楼层
楼主
if(key1n==9)                key1n=1;//éèÖð′¼ü12óDÃë¡¢·Ö¡¢걡¢DÇÆú¡¢èÕ¡¢Ô¡¢Äê¡¢·μ»Ø£¬8¸ö1|ÄüÑ-»·

        switch(key1n)
        {
       
        case 1: TR0=0;//1رն¨ê±Æ÷
                        //TR1=0;
                        write_1602com(er+0x06);//éèÖð′¼ü°′¶ˉò»′Σ¬ÃëλÖÃÏÔê¾1a±ê
                           write_1602com(0x0f);//éèÖÃ1a±êÎaéá˸
                           temp=(miao)/10*16+(miao)%10;//Ãëêy¾YD′èëDS1302
                           write_1302(0x8e,0x00);
                           write_1302(0x80,0x80|temp);//miao
                      write_1302(0x8e,0x80);
                           break;
        case 2:  write_1602com(er+3);//°′2′ÎfenλÖÃÏÔê¾1a±ê
                       
                     //write_1602com(0x0f);
                        break;
        case 3: write_1602com(er+0);//°′¶ˉ3′Σ¬shi
                     //write_1602com(0x0f);
                        break;
        case 4: write_1602com(yh+0x0e);//°′¶ˉ4′Σ¬week
                     //write_1602com(0x0f);
                        break;
        case 5: write_1602com(yh+0x08);//°′¶ˉ5′Σ¬ri
                     //write_1602com(0x0f);
                        break;
        case 6: write_1602com(yh+0x05);//°′¶ˉ6′Σ¬yue
                     //write_1602com(0x0f);
                        break;
        case 7: write_1602com(yh+0x02);//°′¶ˉ7′Σ¬nian
                     //write_1602com(0x0f);
                        break;
        case 8:
                   write_1602com(0x0c);//°′¶ˉμ½μú8′Σ¬éèÖÃ1a±ê2»éá˸
                   TR0=1;//′ò¿a¶¨ê±Æ÷
           temp=(miao)/10*16+(miao)%10;
                   write_1302(0x8e,0x00);
                   write_1302(0x80,0x00|temp);//miaoêy¾YD′èëDS1302
                   write_1302(0x8e,0x80);
            break;                                                                                                                       
                       
        }            
       
       
        }          




//key4Ö±½ó íË3ö¼ü£¬íË3ö¼ü°′Ï£¬Ö±½óíË3öμ÷Õû×′쬣¬½øèë×ß걡£
        }

if(key1n!=0)
{
        if(key4==0)         //íË3ö¼ü°′Ï£¬Ö±½óíË3öμ÷Õû×′쬣¬½øèë×ß걡£
        {
                delay(10);
                if(key4==0)
                {
                        buzzer=0;//·äÃùÆ÷¶ìÏìò»′Î
                        delay(20);
                        buzzer=1;

                        key1n=0,
                        write_1602com(0x0c);//éèÖÃ1a±ê2»éá˸
                        TR0=1;//′ò¿a¶¨ê±Æ÷
                        temp=(miao)/10*16+(miao)%10;
                    write_1302(0x8e,0x00);
                    write_1302(0x80,0x00|temp);//miaoêy¾YD′èëDS1302
                    write_1302(0x8e,0x80);          

       
                }
        }
}          

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:164602 发表于 2018-4-18 14:45 | 只看该作者
进入修改状态,要用外部中断才行。
你这个键盘扫描办法,就是不容易进入修改状态。因为程序一直在跑啊,还是以一个很快的速度在跑,什么时间“恰好”扫描到你的按键,才进入修改,是要很多次的,不然没法“恰好”啊。
只是从你给出的程序中,看到修改的部分,所以有这样的猜测。
我做这个的思路(已经做成功的):
用外部中断进入、退出修改状态、键盘逐项选择要修改的内容、一个键修改,一共要三个键就可以了。如果你觉得一个键让数字只加不减,不方便,那么就用矩阵键盘,可以直接输入目标数值。
回复

使用道具 举报

板凳
ID:111634 发表于 2018-4-18 17:08 | 只看该作者
本帖最后由 zl2168 于 2018-4-18 17:09 编辑

给你介绍一个按键校正时钟的实例,自己比对吧!
实例91  具有校正功能的时钟1302(LCD1602显示)
先Proteus仿真,确认有效。
实例91 带校正时钟1302(LCD1602显示).rar (52.68 KB, 下载次数: 6)

以上摘自张志良编著《80C51单片机仿真设计实例教程——基于Keil CProteus》清华大学出版社ISBN 978-7-302-41682-1,书中电路和程序设计有详细说明,程序语句条条有注解。
回复

使用道具 举报

地板
ID:295009 发表于 2018-4-25 09:25 | 只看该作者
HC6800-ES-V2.0 发表于 2018-4-18 14:45
进入修改状态,要用外部中断才行。
你这个键盘扫描办法,就是不容易进入修改状态。因为程序一直在跑啊,还 ...

好的谢谢,那怎么用外部中断呢
回复

使用道具 举报

5#
ID:111634 发表于 2018-4-25 12:41 | 只看该作者
上例中有啊!!!而且能操作感受,为什么不去看???
回复

使用道具 举报

6#
ID:160988 发表于 2018-4-25 13:12 | 只看该作者
是不是按键的扫描时间太长了
回复

使用道具 举报

7#
ID:317432 发表于 2018-4-27 13:50 | 只看该作者
修改延时参数 和 设定的按键参数
回复

使用道具 举报

8#
ID:318054 发表于 2018-4-27 20:46 | 只看该作者
参数设置应该有问题吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表