專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

單片機(jī)矩陣鍵盤改良后的程序

作者:李俊軒   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2013年07月18日   【字體:

   學(xué)單片機(jī)的過(guò)程,我想應(yīng)該是一個(gè)模仿跟自我創(chuàng)造的過(guò)程吧,程序不是越長(zhǎng)越好,只要能夠?qū)崿F(xiàn)我們所要的要求,能夠把程序?qū)懙煤?jiǎn)單易懂,易改又少占用內(nèi)存空間,我想這應(yīng)該是一個(gè)編程員所要追求的目標(biāo)。最近喜歡用SWITCH    CASE 編程序,所以感覺(jué)很多用到數(shù)碼管的程序老會(huì)不自覺(jué)地往它那里想,今天費(fèi)了那么長(zhǎng)時(shí)間才編了一個(gè)好幾十行的程序,想想應(yīng)該有快一百行。但是,今晚卻把程序改成這么簡(jiǎn)潔,真的對(duì)我啟發(fā)不小啊。單片機(jī)的編程要實(shí)現(xiàn)同一個(gè)功能,有好多好多種編程的方法,以后盡量不要拘束于一些思維了,編程是要有想象力的,就像人家給你這么多菜,你要把這些菜怎么做得美味一樣,就看你創(chuàng)造力了。改良我上次在51hei發(fā)表的:http://www.torrancerestoration.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
  }
 }

 

   終于學(xué)會(huì)用程序讓矩陣為自己控制所用了,呵呵,接下來(lái)的日子開(kāi)始學(xué)AD和DA轉(zhuǎn)模。并給點(diǎn)時(shí)間開(kāi)始復(fù)習(xí)DXP2004高級(jí)了。有些知識(shí)沒(méi)有用了以后,用起來(lái)會(huì)生疏。只要好好地練“千日兵",才能夠讓考證的時(shí)候的激情澎湃,加油。相信自己可以的。

關(guān)閉窗口

相關(guān)文章