基于51单片机,给出动态显示方式控制4位数码管分别显示“1234”的代码
时间: 2024-02-12 21:06:51 浏览: 100
下面是基于51单片机的动态显示方式控制4位数码管分别显示“1234”的代码,注释已经添加在代码中:
```C
#include <reg51.h>
#define SEG P0 // 数码管段选端口
#define DIG P1 // 数码管位选端口
// 数码管编码表
code unsigned char table[] = {
0xc0, // '0'
0xf9, // '1'
0xa4, // '2'
0xb0, // '3'
0x99, // '4'
0x92, // '5'
0x82, // '6'
0xf8, // '7'
0x80, // '8'
0x90 // '9'
};
void delay(unsigned int t) // 延时函数
{
unsigned int i, j;
for (i = 0; i < t; i++)
for (j = 0; j < 125; j++);
}
void main()
{
unsigned char i = 0;
while (1) {
// 数码管动态显示
for (i = 0; i < 4; i++) {
DIG = 0x01 << i; // 选择位
SEG = table[i + 1]; // 显示数字
delay(2); // 延时
SEG = 0xff; // 关闭显示
}
}
}
```
这个代码的实现方式是通过不断切换数码管的位选端口,然后在相应的段选端口上输出对应数字的编码实现动态显示。
阅读全文