python绘制网络图
时间: 2023-09-04 11:15:26 浏览: 41
这是一个基于51单片机的8位数码管双向移动生日提示器。
在程序中,我们首先定义了一个包含每个数字的位模式的数组。然后,我们使用定时器中断来控制数码管的移动,每次移动一个数字的位模式。我们还使用了外部中断来触发生日提示,当生日到达时,数码管将显示“HBD”。
以下是完整的程序代码:
```
#include <reg51.h>
// 数码管位模式数组
unsigned char code digit[10] = {
0xC0, 0xF9, 0xA4, 0xB0, 0x99,
0x92, 0x82, 0xF8, 0x80, 0x90
};
// 数码管当前显示的数字
unsigned char dis[8] = {0, 0, 0, 0, 0, 0, 0, 0};
// 数码管的位选择
unsigned char code pos[8] = {
0xFE, 0xFD, 0xFB, 0xF7, 0xEF, 0xDF, 0xBF, 0x7F
};
// 数码管的当前位
unsigned char cur_pos = 0;
// 生日提示标志
bit hbd_flag = 0;
// 定时器0中断处理函数
void timer0_isr() interrupt 1 {
// 显示当前位的数字
P0 = digit[dis[cur_pos]];
// 选择下一位
P1 = pos[cur_pos];
// 移动到下一位
cur_pos++;
if (cur_pos >= 8) {
cur_pos = 0;
}
}
// 外部中断0处理函数
void ext0_isr() interrupt 0 {
// 设置生日提示标志
hbd_flag = 1;
}
void main() {
// 初始化定时器0
TMOD = 0x01;
TH0 = 0xFC;
TL0 = 0x66;
ET0 = 1;
TR0 = 1;
EA = 1;
// 初始化外部中断0
IT0 = 1;
EX0 = 1;
while (1) {
// 如果生日提示标志被设置
if (hbd_flag) {
// 显示“HBD”
dis[0] = 1; // H
dis[1] = 2;
dis[2] = 3;
dis[3] = 0; // 空格
dis[4] = 4; // B
dis[5] = 5;
dis[6] = 3; // D
dis[7] = 0; // 空格
// 清除生日提示标志
hbd_flag = 0;
} else {
// 显示当前时间
// TODO: 获取当前时间并将其转换为位模式
dis[0] = 0;
dis[1] = 0;
dis[2] = 0;
dis[3] = 0;
dis[4] = 0;
dis[5] = 0;
dis[6] = 0;
dis[7] = 0;
}
}
}
```