一个数码管有8段发光管,如图所示。如果是共阴极数码管,需要显示那个字符,就使对应要发光的段为高电平,如果是共阳极数码管则相反。
LED数码管显示方式有静态显示与动态显示两种。静态显示每个数码管的段选线与一组I/O口接口线相连,公共端直接接地或者接电源。
本实验中选择共阴极数码管,实现从数字0~9循环显示。
#include"reg51.h"
unsigned char s[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; //0~9共阴极字段码
void delay(unsigned int n)
{
unsigned int i=0,j=0;
for(i=0;i<n;i++)
{
for(j=0;j<120;j++);
}
}
void seg() //显示函数
{
int i=0;
for(i=0;i<10;i++)
{
P2=s[i]; //若是共阳极,则此处取反即可
delay(500);
}
}
void main()
{
while(1)
{
seg();
}
}