这是一段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); } }