基于51单片机AT89C51主板,7SEG-MPX4-CA数码管,给出采用静态显示方式控制4位数码管显示"0000"的代码,然后给出采用动态显示方式控制4位数码管分别显示"1234"。的代码
时间: 2024-02-12 19:06:27 浏览: 144
数码管静态显示_基于51单片机的数码显示_以及秒表_
5星 · 资源好评率100%
静态显示方式控制4位数码管显示"0000"的代码如下:
```
#include <reg51.h>
// 数码管位选对应的端口
#define DIGIT_PORT P0
// 数码管段选对应的端口
#define SEGMENT_PORT P1
// 数码管显示的数字
unsigned char code num[] = {
0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90
};
void main() {
// 数码管位选设置为输出模式
DIGIT_PORT = 0xFF;
// 数码管段选设置为输出模式
SEGMENT_PORT = 0x00;
// 显示"0000"
DIGIT_PORT = 0xF0;
SEGMENT_PORT = num[0];
}
```
动态显示方式控制4位数码管分别显示"1234"的代码如下:
```
#include <reg51.h>
// 数码管位选对应的端口
#define DIGIT_PORT P0
// 数码管段选对应的端口
#define SEGMENT_PORT P1
// 数码管显示的数字
unsigned char code num[] = {
0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90
};
void delay(unsigned int t) {
unsigned int i, j;
for (i = 0; i < t; i++) {
for (j = 0; j < 120; j++);
}
}
void main() {
unsigned char i;
// 数码管位选设置为输出模式
DIGIT_PORT = 0xFF;
// 数码管段选设置为输出模式
SEGMENT_PORT = 0x00;
while(1) {
for (i = 0; i < 4; i++) {
// 先关闭所有数码管
DIGIT_PORT = 0xFF;
// 显示当前位的数字
SEGMENT_PORT = num[i + 1];
// 打开对应的数码管
DIGIT_PORT &= ~(1 << (4 - i));
// 等待一段时间
delay(500);
}
}
}
```
阅读全文