2978|6

4

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于51单片机小程序的问题 [复制链接]

我写的这个程序是  在4*4键盘上 通过按前三个键,来控制自加的函数  暂停和清零    但是按键始终不起作用;这是为什么   我刚学。大神给看一看.
这是程序
#include
unsigned char duan_xuan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char wei_xuan[]={0xfe,0xfd,0xfb,0xf7,0xef,0xbf,0xdf,0x7f};
char temp,key;
int m,n,l,s;
void delay(unsigned int i)
{
        unsigned int j;
        while(i--)
        {
                for(j=0;j<125;j++)       
                {
                        ;
                }
        }               
}
        void key_scan()
        {       
               
                {
                        if(temp!=0xf0)
                          {               
                                          delay(10);
                                        if(temp!=0xf0)
                                       
                                        {
                                                  switch(P1)
                                  {       
                                                  case 0xee:           //0按下//
                                                        key=0;                                                          
                                                        break;                                               
                                                case 0xde:
                                                        key=1;       
                                                        break;
                                                case 0xbe:
                                                        key=2;
                                                        break;
                                   }                       
                                       
                                        }
                          }
               
                }
       
        }

void display(int s)
       
        {  
                switch (key)
{       
                case 0:
                for(s=0;s<1000;s++)
               
                {
               
                        m=s/100;                  //   显 示 要 求 数字
                        n=s%100/10;
                        l=s%10;
                        P2=wei_xuan[2];
                        P0=duan_xuan[m];               
                        delay(1);
                        P2=wei_xuan[1];
                        P0=duan_xuan[n];          
                        delay(1);
                        P2=wei_xuan[0];
                        P0=duan_xuan[l];               
                        delay(1);
                        if(key==1)
                                {
                                        break;
                                }                                                 
                 }
                 break;

        case 1:
                        while(1)
                 {
                         P2=wei_xuan[2];
                        P0=duan_xuan[m];
                        delay(1);
                        P2=wei_xuan[1];
                        P0=duan_xuan[n];          
                        delay(1);
                        P2=wei_xuan[0];
                        P0=duan_xuan[l];
                        delay(1);       
                         if(key==2) break;                 
                }
                  break;
        case 2:
                        while(1)
                        {
                                P2=wei_xuan[2];
                                P0=duan_xuan[0];
                                delay(1);
                                P2=wei_xuan[1];
                                P0=duan_xuan[0];          
                                delay(1);
                                P2=wei_xuan[0];
                                P0=duan_xuan[0];
                                delay(1);
                        }
                        break;       
           }
        }
        void main()
        {
                  while(1)
                {
                         key_scan();
                        display(key);               
                }
        }
               
         
                 
               
此帖出自51单片机论坛

最新回复

好吧没看清 程序里好像没给temp赋值?   详情 回复 发表于 2014-7-23 08:47
点赞 关注
 

回复
举报

7230

帖子

195

TA的资源

五彩晶圆(高级)

沙发
 
keypeizhiyinjiaole???
此帖出自51单片机论坛

点评

什么引脚?  详情 回复 发表于 2014-7-22 20:13
 
 
 

回复

503

帖子

1

TA的资源

一粒金砂(高级)

板凳
 
switch(P1)
                                  {        
                                                  case 0xee:           //0按下//这里不是0xef?下面也是
                                                        key=0;                                                         
                                                        break;                                                
                                                case 0xde:
                                                        key=1;        
                                                        break;
                                                case 0xbe:
                                                        key=2;
                                                        break;
                                   }                        
此帖出自51单片机论坛

点评

为什么是0xef 0xee不是4*4键盘的第一个键吗?  详情 回复 发表于 2014-7-22 20:12
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(初级)

4
 
曾经in 发表于 2014-7-21 19:53
switch(P1)
                                  {        
                                            ...

为什么是0xef     0xee不是4*4键盘的第一个键吗?
此帖出自51单片机论坛

点评

好吧没看清 程序里好像没给temp赋值?  详情 回复 发表于 2014-7-23 08:47
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(初级)

5
 

什么引脚?
此帖出自51单片机论坛
 
 
 

回复

2886

帖子

0

TA的资源

五彩晶圆(初级)

6
 
电路和程序能对应吗?
此帖出自51单片机论坛
 
个人签名昵称:灰小子
 
 

回复

503

帖子

1

TA的资源

一粒金砂(高级)

7
 
就说忘了 发表于 2014-7-22 20:12
为什么是0xef     0xee不是4*4键盘的第一个键吗?

好吧没看清
程序里好像没给temp赋值?
此帖出自51单片机论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表