写一段C语言实现80c51独立按键控制一个数码管依次显示储存的一串数字
时间: 2023-06-03 12:05:15 浏览: 138
好的,以下是C语言代码,实现80c51独立按键控制一个数码管依次显示储存的一串数字:
```c
#include <REG52.H> // 导入预处理器-51单片机头文件
#define uint unsigned int
#define uchar unsigned char
// 数码管位选定义,pin1~pin4分别对应数码管的4个段
sbit pin1 = P2^4;
sbit pin2 = P2^5;
sbit pin3 = P2^6;
sbit pin4 = P2^7;
// 储存数字的数组,可以修改为任意数字组合
uchar dataFlash[] = {1, 2, 3, 4, 5, 6, 7, 8};
void display(uchar num) { // 显示函数
if (num == 0) { // 数字0的显示
pin1 = 0;
pin2 = 0;
pin3 = 0;
pin4 = 0;
} else if (num == 1) { // 数字1的显示
pin1 = 1;
pin2 = 0;
pin3 = 0;
pin4 = 0;
} else if (num == 2) { // 数字2的显示
pin1 = 0;
pin2 = 1;
pin3 = 0;
pin4 = 0;
} else if (num == 3) { // 数字3的显示
pin1 = 1;
pin2 = 1;
pin3 = 0;
pin4 = 0;
} else if (num == 4) { // 数字4的显示
pin1 = 0;
pin2 = 0;
pin3 = 1;
pin4 = 0;
} else if (num == 5) { // 数字5的显示
pin1 = 1;
pin2 = 0;
pin3 = 1;
pin4 = 0;
} else if (num == 6) { // 数字6的显示
pin1 = 0;
pin2 = 1;
pin3 = 1;
pin4 = 0;
} else if (num == 7) { // 数字7的显示
pin1 = 1;
pin2 = 1;
pin3 = 1;
pin4 = 0;
} else if (num == 8) { // 数字8的显示
pin1 = 0;
pin2 = 0;
pin3 = 0;
pin4 = 1;
} else if (num == 9) { // 数字9的显示
pin1 = 1;
pin2 = 0;
pin3 = 0;
pin4 = 1;
}
}
void main() {
uchar i = 0; // 数字索引初始化为0
while (1) { // 程序开始循环
if (P1 == 0x01) { // 确认按键按下
while (P1 == 0x01); // 等待按键松开
i++; // 数字索引加1
if (i == 8) { // 如果索引达到了数组元素个数
i = 0; // 索引回到第一个元素
}
}
display(dataFlash[i]); // 显示当前索引对应的数字
}
}
```
阅读全文
相关推荐
















