专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

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

作者:李俊轩   来源:本站原创   点击数:  更新时间:2013年07月18日   【字体:

   学单片机的过程,我想应该是一个模仿跟自我创造的过程吧,程序不是越长越好,只要能够实现我们所要的要求,能够把程序写得简单易懂,易改又少占用内存空间,我想这应该是一个编程员所要追求的目标。最近喜欢用SWITCH    CASE 编程序,所以感觉很多用到数码管的程序老会不自觉地往它那里想,今天费了那么长时间才编了一个好几十行的程序,想想应该有快一百行。但是,今晚却把程序改成这么简洁,真的对我启发不小啊。单片机的编程要实现同一个功能,有好多好多种编程的方法,以后尽量不要拘束于一些思维了,编程是要有想象力的,就像人家给你这么多菜,你要把这些菜怎么做得美味一样,就看你创造力了。改良我上次在51hei发表的:http://www.51hei.com/mcu/2001.html 后的程序:

#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
  }
 }

 

   终于学会用程序让矩阵为自己控制所用了,呵呵,接下来的日子开始学AD和DA转模。并给点时间开始复习DXP2004高级了。有些知识没有用了以后,用起来会生疏。只要好好地练“千日兵",才能够让考证的时候的激情澎湃,加油。相信自己可以的。

关闭窗口

相关文章