第一种思路写出的代码我用蓝色的字表示;第二种思路写出的代码用红色字的字表示;
1、我们知道,控制数码管是每一个学单片机的人都会的,在多位数码管中一般会用到动态显示,在显示图1中的数值(111aab)时多数人都会用下面这种这种典型方法编程。
方法一: (常规方法)
通过上面的例子我们可以很清晰的跟着程序走,感觉思路很有逻辑性、很容易理解,因此这种方法用的人最多。这种思路有自己的优点,但也有缺点,我会通过例子来论证。
2、下面是另一种思维编写的程序,可能初学者以及C语言新手会看的很吃力,不过没关系,只要你学过或了解结构体,你一定可以看懂的。
方法二:
#include<reg52.h>
typedef struct node
{
unsigned char a;
unsigned char b;
}smgcode;
unsigned char code tabwe[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};/*数码管位选编码,*/
void delaysmg(unsigned int z)
{
unsigned int x,y;
for(x=0;x<z;x++)
1、我们知道,控制数码管是每一个学单片机的人都会的,在多位数码管中一般会用到动态显示,在显示图1中的数值(111aab)时多数人都会用下面这种这种典型方法编程。
方法一: (常规方法)
通过上面的例子我们可以很清晰的跟着程序走,感觉思路很有逻辑性、很容易理解,因此这种方法用的人最多。这种思路有自己的优点,但也有缺点,我会通过例子来论证。
2、下面是另一种思维编写的程序,可能初学者以及C语言新手会看的很吃力,不过没关系,只要你学过或了解结构体,你一定可以看懂的。
方法二:
#include<reg52.h>
typedef struct node
{
unsigned char a;
unsigned char b;
}smgcode;
unsigned char code tabwe[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};/*数码管位选编码,*/
void delaysmg(unsigned int z)
{
unsigned int x,y;
for(x=0;x<z;x++)