P0端口驱动共阳极数码管循环显示0-9
1.实验效果
2.数码管
一个数码管包含七段发光二极管,通过控制每段二极管的亮灭,继而显示出不同的数字。数码管分为共阴极数码管和共阳极数码管,共阴极就是7个发光二极管的阴极连在一起,阳极为高电平时点亮,共阳极数码管是阳极连在一起,另一端的电平控制各段二极管的亮、熄。
3.Proteus仿真
数码管从上至下分别连接P0_1-P0_7,因此想要显示数字1,P0口需要输入二进制数据11110010。注意没有连P0_0端口
4. 源代码
# include 《reg51.h》
# include 《intrins.h》
unsigned char display_table[] ={ 0x80, 0xf2, 0x48, 0x60, 0x32, 0x24, 0x04, 0xf0, 0x00, 0x20 }; // 共阳极数码管显示编码16进制
unsigned int i;
// 0:10000000 1:11110010 2:01001000 3:01100000 4:00110010 5:00100100 6:00000100 7:11110000 8:00000000 9:00100000
void delay(void) // 延时程序1s
{
unsigned char a,b,c;
for(c=167;c》0;c--)
for(b=171;b》0;b--)
for(a=16;a》0;a--);
_nop_();
}
void main() // 主程序
{
while(1)
{
P0 = 0xff;
for(i = 0; i 《 10; i++)
{
if (i == 10 ) // 当i=10时,将0清零。就是当数码管显示9后,再从0开始
{
i = 0;
}
P0 = display_table[i];
delay();
}
}
}
P0端口驱动共阳极数码管循环显示0-9
1.实验效果
2.数码管
一个数码管包含七段发光二极管,通过控制每段二极管的亮灭,继而显示出不同的数字。数码管分为共阴极数码管和共阳极数码管,共阴极就是7个发光二极管的阴极连在一起,阳极为高电平时点亮,共阳极数码管是阳极连在一起,另一端的电平控制各段二极管的亮、熄。
3.Proteus仿真
数码管从上至下分别连接P0_1-P0_7,因此想要显示数字1,P0口需要输入二进制数据11110010。注意没有连P0_0端口
4. 源代码
# include 《reg51.h》
# include 《intrins.h》
unsigned char display_table[] ={ 0x80, 0xf2, 0x48, 0x60, 0x32, 0x24, 0x04, 0xf0, 0x00, 0x20 }; // 共阳极数码管显示编码16进制
unsigned int i;
// 0:10000000 1:11110010 2:01001000 3:01100000 4:00110010 5:00100100 6:00000100 7:11110000 8:00000000 9:00100000
void delay(void) // 延时程序1s
{
unsigned char a,b,c;
for(c=167;c》0;c--)
for(b=171;b》0;b--)
for(a=16;a》0;a--);
_nop_();
}
void main() // 主程序
{
while(1)
{
P0 = 0xff;
for(i = 0; i 《 10; i++)
{
if (i == 10 ) // 当i=10时,将0清零。就是当数码管显示9后,再从0开始
{
i = 0;
}
P0 = display_table[i];
delay();
}
}
}
举报