學單片機的過程,我想應該是一個模仿跟自我創造的過程吧,程序不是越長越好,只要能夠實現我們所要的要求,能夠把程序寫得簡單易懂,易改又少占用內存空間,我想這應該是一個編程員所要追求的目標。最近喜歡用SWITCH CASE 編程序,所以感覺很多用到數碼管的程序老會不自覺地往它那里想,今天費了那么長時間才編了一個好幾十行的程序,想想應該有快一百行。但是,今晚卻把程序改成這么簡潔,真的對我啟發不小啊。單片機的編程要實現同一個功能,有好多好多種編程的方法,以后盡量不要拘束于一些思維了,編程是要有想象力的,就像人家給你這么多菜,你要把這些菜怎么做得美味一樣,就看你創造力了。改良我上次在51hei發表的:http://www.zg4o1577.cn/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高級了。有些知識沒有用了以后,用起來會生疏。只要好好地練“千日兵",才能夠讓考證的時候的激情澎湃,加油。相信自己可以的。