stc89c52单片机利用数码管显示8位学号
时间: 2024-05-10 14:21:25 浏览: 35
以下是基于C语言编写的stc89c52单片机代码,将8位学号显示在数码管上。
```c
#include <reg52.h>
// 定义数码管连接的IO口
sbit LED1 = P2^0;
sbit LED2 = P2^1;
sbit LED3 = P2^2;
sbit LED4 = P2^3;
sbit LED5 = P2^4;
sbit LED6 = P2^5;
sbit LED7 = P2^6;
sbit LED8 = P2^7;
// 延时函数
void delay(unsigned int xms) {
unsigned int i, j;
for (i = xms; i > 0; i--)
for (j = 112; j > 0; j--);
}
// 主函数
void main() {
unsigned char num[8] = {'1', '2', '3', '4', '5', '6', '7', '8'}; // 定义学号
unsigned char i = 0;
while (1) {
// 显示学号的每一位
LED1 = num[0] - '0';
LED2 = num[1] - '0';
LED3 = num[2] - '0';
LED4 = num[3] - '0';
LED5 = num[4] - '0';
LED6 = num[5] - '0';
LED7 = num[6] - '0';
LED8 = num[7] - '0';
// 延时一段时间,使数字能够在数码管上显示出来
delay(1000);
// 将数字向左移一位,用于显示下一位数字
for (i = 0; i < 7; i++) {
num[i] = num[i + 1];
}
num[7] = num[0];
}
}
```
注:本代码中使用的数码管为共阳数码管,如果使用共阴数码管需要将代码中的`-`号改为`+`号。