数码管实验,选用任意相邻的两个数码管,来循环显示0-99之间的数据,数据显示间隔为0.5s。用c语言
时间: 2024-03-21 19:39:47 浏览: 125
下面是使用51单片机和4位共阳数码管实现的代码示例,其中P0口连接到数码管的段选引脚,P2口连接到数码管的位选引脚。本例中选择了第二个和第三个数码管用来显示数据。
```c
#include <reg52.h>
unsigned char code num[]={ // 0~9 的编码
0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f
};
void delay(unsigned int t) // 短暂延时函数
{
unsigned int i,j;
for(i=0;i<t;i++)
for(j=0;j<110;j++);
}
void main(void)
{
unsigned int i, j, k;
while(1)
{
for(i=0; i<100; i++)
{
j = i / 10; // 获取十位数
k = i % 10; // 获取个位数
P2 = 0x06; // 选择第二个和第三个数码管
P0 = num[j]; // 显示十位数
delay(50); // 延时0.5秒
P2 = 0x05; // 选择第一个和第二个数码管
P0 = num[k]; // 显示个位数
delay(50); // 延时0.5秒
}
}
}
```
该代码通过循环显示0-99之间的数据,其中利用除法和取余运算分别获取十位数和个位数,并通过位选引脚选择要显示的数码管,通过段选引脚设置要显示的数字。显示时间间隔为0.5秒,通过延时函数实现。
阅读全文