8位数码管动态显示程序c语言
时间: 2023-08-14 18:01:07 浏览: 143
编写8位数码管动态显示程序的C语言程序如下:
```c
#include <reg52.h>
// 定义数码管显示的数字0~9
unsigned char code SEG_TABLE[] = {
0xC0, // 显示数字0
0xF9, // 显示数字1
0xA4, // 显示数字2
0xB0, // 显示数字3
0x99, // 显示数字4
0x92, // 显示数字5
0x82, // 显示数字6
0xF8, // 显示数字7
0x80, // 显示数字8
0x90 // 显示数字9
};
// 设置数码管显示的位选
unsigned char code SEG_POS[] = {
0xFE, // 第一位
0xFD, // 第二位
0xFB, // 第三位
0xF7, // 第四位
0xEF, // 第五位
0xDF, // 第六位
0xBF, // 第七位
0x7F // 第八位
};
void main() {
unsigned char num = 0; // 初始数字为0
while (1) {
P0 = SEG_TABLE[num]; // 在P0口显示num对应的数字
P2 = SEG_POS[num]; // 选中对应的数码管位
num++; // 数字加1
// 实现动态显示效果
if (num > 7) { // 超过8位数码管的范围,重置为0
num = 0;
}
// 延时,控制显示速度
for (int i = 0; i < 10000; i++) {
for (int j = 0; j < 100; j++) {
// 空循环
}
}
}
}
```
以上代码通过循环不断更新P0口和P2口输出,以使8位数码管动态显示0~9的数字。使用一个变量num来表示当前显示的数字,每次循环将num对应的数字显示在P0口上,并选中对应的数码管位,通过改变num的值和延时的方式实现动态显示效果。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)