这是一段4位共阳极数码管”从0到9循环显示数字“的程序,不知道是什么意思望前辈们来看看~~
这是一段4位共阳极数码管”从0到9循环显示数字“的程序,其中有好多地方都不理解,比如说“di”是什么,如何实现数字的从0到9的来回循环显示等。望各位前辈详细讲解一下,最好是在各关键代码上详细注释一下。小弟必将虚心采纳,致谢!
程序代码:#include "reg51.h"
#include "intrins.h"
#include"absacc.h"
#include"math.h"
typedef unsigned char BYTE;
typedef unsigned int WORD;
/* LED口地址*/
#define led_data XBYTE[0x6000] //写命令
BYTE led_w;
BYTE
led_dm[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0:0xc0,1:0xf9,2:0xa4,3:0xb0,4:0x99,5:0x92,6:0x82,7:0xf8,8:0x80,9:0x90
BYTE di;
/*****************LED显示位置********************/
void LED_crt(BYTE val)
{
led_data=led_dm[val];//0:0xc0,1:0xf9,2:0xa4,3:0xb0,4:0x99,5:0x92,6:0x82,7:0xf8,8:0x80,9:0x90
P2 |= 0xff;
P2 &= led_w;
led_w>>=1;
if (led_w==0x0f) led_w=0xf7;
}
void Delay(WORD n)
{
WORD x;
while(n--)
{
x=500; while(x--);
}
}
void main()
{
led_w=0xf7;
di=0;
while(1)
{
LED_crt(di);
di++;
if(di>0x09) di=0;
Delay(1000); }



