显示51单片机数码管任意显示的代码
时间: 2024-05-18 08:16:37 浏览: 152
以下是51单片机数码管任意显示的代码示例:
```c
#include <reg52.h>
// 数码管段选码表
unsigned char code SegCode[10] = {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};
// 数码管位选码表
unsigned char code DigCode[4] = {0x01, 0x02, 0x04, 0x08};
// 显示任意数码的函数
void Display(unsigned char num)
{
unsigned char i;
for (i = 0; i < 4; i++)
{
P2 = SegCode[num % 10]; // 取出个位数码并输出
P0 = DigCode[i]; // 选择位选端口
num /= 10; // 取下一位数码
delay(1); // 延时一段时间,使数码管能够显示出来
}
}
void main()
{
unsigned char num = 1234; // 要显示的任意数码
while (1)
{
Display(num); // 调用显示函数
}
}
```
以上代码中,`SegCode`数组是数码管的段选码表,其中每个元素对应一个数字的段选码。`DigCode`数组是数码管的位选码表,其中每个元素对应数码管的四位。`Display()`函数用来显示任意数码,它会将输入的数码拆分成四位,然后依次输出到数码管上。在`main()`函数中,将要显示的数码赋值给`num`变量,并在一个无限循环中不停地调用`Display()`函数来显示数码。
阅读全文