学单片机的过程,我想应该是一个模仿跟自我创造的过程吧,程序不是越长越好,只要能够实现我们所要的要求,能够把程序写得简单易懂,易改又少占用内存空间,我想这应该是一个编程员所要追求的目标。最近喜欢用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
}
}
|