stc89c52RC单片机数码管显示0-99的代码
时间: 2024-11-22 16:12:18 浏览: 38
51单片机STC89C52RC开发板例程之数码管显示0-F.rar
5星 · 资源好评率100%
STC89C52RC单片机是一款常用的8位微控制器,用于控制数码管显示需要设置数据线、段选线以及公共端。这里是一个简单的示例,展示如何通过P0口控制共阳极7段数码管显示数字0到99:
```c
#include <reg52.h>
// 定义数码管字模(共阳极)
char num_dp[16] = {
0x3F, // '0'
0x06, // '.'
0x5B, // '1'
0x4F, // '2'
0x66, // '3'
0x6D, // '4'
0x7D, // '5'
0x07, // '6'
0x7F, // '7'
0x6F, // '8'
0x77, // '9'
0x7C, // ':'
0x39, // ';'
0x5E, // '*'
0x79 // '+'
};
void DisplayNum(int num) {
char code = num_dp[num % 10]; // 取十位数对应字模
P0 = code; // 显示数码管的十位
delay_ms(1); // 稍作延时
code |= (num / 10 << 4); // 加上百位对应的字模偏移
P0 = code; // 显示数码管的百位
}
void main(void) {
TRISB = 0xFF; // PB口全部设为输入
while(1) {
for(int i=0; i<=99; i++) { // 遍历0到99
DisplayNum(i);
}
// 打开下一个循环前等待一段时间
delay_s(1); // 每秒显示一次
}
}
阅读全文