一.程序功能:静态数码管显示0 1 2 3 4 5 6 7 8 9
二.知识点:
1、数码管为共阳极。
2、abcdefg. 转化为十六进制时从右往左8421 , 8421。
二.知识点:
1、数码管为共阳极。
2、abcdefg. 转化为十六进制时从右往左8421 , 8421。
3、调用子函数时要进行函数声明。
4、共阴极:0 1 2 3 4 5 6 7 8 9 对应 :3fh 06h 5bh 4fh 66h 6dh 7dh 07h 7fh 6fh。
方法1、利用指针实现:
#include<reg52.h>
#define uint unsigned int
uint array[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x98};
uint *p;
void delay(int x);
int main()
{
while(1)
{
for(p=array; p<(array+10); p++)
{
P0=*p;
delay(200);
}
}
return 0;
}
void delay(int x)
{
int a,b;
for(a=x;a>0;a--)
for(b=500;b>0;b--);
}
方法二、基本方法:
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar num;
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x98};
void delay(uint z);
void main()
{
while(1)
{
for(num=0; num<10; num++)
{
P0=table[num];
delay(200);
}
}
}
void delay(uint z)
{
uint x,y;
for(x=z; x>0; x--)
for(y=600; y>0; y--);
}