能用C语言在51单片机中写一段点亮数码管的代码吗
时间: 2023-05-27 12:06:29 浏览: 49
可以。以下是一段简单的代码:
#include <reg51.h>
sbit LED1 = P1^0; // 数码管第一位
sbit LED2 = P1^1; // 数码管第二位
sbit LED3 = P1^2; // 数码管第三位
sbit LED4 = P1^3; // 数码管第四位
// 数码管0-9的编码
unsigned char LEDCode[] = {
0x3f, // 0
0x06, // 1
0x5b, // 2
0x4f, // 3
0x66, // 4
0x6d, // 5
0x7d, // 6
0x07, // 7
0x7f, // 8
0x6f // 9
};
void main()
{
unsigned char num = 0; // 要显示的数字
while (1)
{
// 显示数字
LED1 = LEDCode[num / 1000];
LED2 = LEDCode[num / 100 % 10];
LED3 = LEDCode[num / 10 % 10];
LED4 = LEDCode[num % 10];
// 延时
for (unsigned int i = 0; i < 5000; i++);
// 数字加1
num++;
if (num > 9999) num = 0; // 超过9999则从0开始
}
}