打印
[应用方案]

单片机矩阵键盘改良后的程序

[复制链接]
818|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Jessicakjdsl|  楼主 | 2016-3-27 20:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
学单片机的过程,我想应该是一个模仿跟自我创造的过程吧,程序不是越长越好,只要能够实现我们所要的要求,能够把程序写得简单易懂,易改又少占用内存空间,我想这应该是一个编程员所要追求的目标。最近喜欢用SWITCH    CASE 编程序,所以感觉很多用到数码管的程序老会不自觉地往它那里想,今天费了那么长时间才编了一个好几十行的程序,想想应该有快一百行。但是,今晚却把程序改成这么简洁,真的对我启发不小啊。单片机的编程要实现同一个功能,有好多好多种编程的方法,以后尽量不要拘束于一些思维了,编程是要有想象力的,就像人家给你这么多菜,你要把这些菜怎么做得美味一样,就看你创造力了。
#include<reg52.h>
unsigned char number[]={     
0x3f,
0x06,
0x5b,
0x4f,
0x66,
0x6d,
0x7d,
0x07,
0x7f,
0x6f,
0x77,
0x7c,
0x39,
0x5e,
0x79,
0x71
};
void delay()
{
int i,j;
for(i=5;i<0;i--)
  for(j=120;j<0;j--);
}
void main()
{
P2 = 0;
while(1)
{ unsigned int a,b;
  unsigned int c;
  P3 = 0x0f;
  a = P3;
  delay();
  P3 = 0xf0;
  b = P3;
  delay();
  c = a+b;
  if(c==0xee)
  P2 = number[0];//显示0
  if(c==0xde)
  P2 = number[1];//显示1
  if(c==0xbe)
  P2 = number[2];//显示2
  if(c==0x7e)
  P2 = number[3];//显示3
  if(c==0xed)
  P2 = number[4];//显示4
  if(c==0xdd)
  P2 = number[5];//显示5
  if(c==0xbd)
  P2 = number[6];//显示6
  if(c==0x7d)
  P2 = number[7];//显示7
  if(c==0xeb)
  P2 = number[8];//显示8
  if(c==0xdb)
  P2 = number[9];//显示9
  if(c==0xbb)
  P2 = number[10];//显示10
  if(c==0x7b)
  P2 = number[11];//显示11
  if(c==0xe7)
  P2 = number[12];//显示12
  if(c==0xd7)
  P2 = number[13];//显示13
  if(c==0xb7)
  P2 = number[14];//显示14
  if(c==0x77)
  P2 = number[15];//显示15
  }
}


沙发
xuanhuanzi| | 2018-8-15 12:47 | 只看该作者
MARK一下,太给力了。

使用特权

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

本版积分规则

17

主题

116

帖子

1

粉丝