找回密码
 立即注册

QQ登录

只需一步,快速开始

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

求各位帮我看一下我的程序哪里错了,本程序的功能是4*4独立按键的第一行4个按键

[复制链接]
跳转到指定楼层
楼主
ID:322405 发表于 2018-5-26 18:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求各位帮我看一下我的程序哪里错了,本程序的功能是4*4独立按键的第一行4个按键,控制数码管宣示0,1,2,3
  1. #include<reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. sbit dula=P2^6;
  5. sbit wela=P2^7;


  6. uchar num,temp;
  7. uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
  8.                         0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
  9. void delay (uint z)
  10. {
  11.         uint x,y;
  12.         for(x=z;x>0;x--)
  13.                 for(y=110;y>0;y--);
  14. }

  15. void main()
  16. {
  17.         wela=1;
  18.         P0=0xc0;
  19.         wela=0;
  20.         dula=1;
  21.         P0=0;
  22.         dula=0;
  23.         while(1)
  24.         {
  25.                 P3=0xfe;
  26.                 temp=P3;
  27.                 temp=temp&0xf0;
  28.                 while(temp!=0xf0)
  29.                 {
  30.                         delay(5);
  31.                         temp=P3;
  32.                         temp=temp&0xf0;
  33.                         while(temp!=0xf0)
  34.                         {
  35.                                 temp=P3;
  36.                                 switch(temp)
  37.                                 {
  38.                                         case 0xee:      
  39.                                                                 num=1;
  40.                                         break;
  41.                                         case 0xde:
  42.                                                                 num=2;
  43.                                         break;
  44.                                         case 0xbe:
  45.                                                         num=3;
  46.                                         break;
  47.                                         case 0x7e:
  48.                                                         num=4;
  49.                                         break;
  50.                                 }
  51.                                 dula=1;
  52.                                 P0=table[num-1];
  53.                                 dula=0;      

  54.                        
  55.                         }
  56.                 }
  57.                
  58.         }

  59. }
复制代码

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

使用道具 举报

沙发
ID:319344 发表于 2018-5-26 19:51 | 只看该作者
写得有些啰嗦了,把29,30,31相关的去掉,把延时改成10~15us,应该就没问题了,再有问题你就找一个例程看看人家怎么写的,还有,4*4的按键就不要叫独立按键了,叫矩阵键盘

评分

参与人数 1黑币 +2 收起 理由
1直到世界尽头 + 2 赞一个!

查看全部评分

回复

使用道具 举报

板凳
ID:331575 发表于 2018-5-26 20:41 | 只看该作者
你将while(1)里面的语句中的while换成if  试一试
回复

使用道具 举报

地板
ID:331575 发表于 2018-5-26 20:47 | 只看该作者
你的P3管脚都接的是什么?
回复

使用道具 举报

5#
ID:322405 发表于 2018-5-26 22:08 | 只看该作者
15942379927 发表于 2018-5-26 20:47
你的P3管脚都接的是什么?

矩阵按键的接口
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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