51 单片机 C语言 打印整数 函数 (无 printf)
下面是基于 51 单片机的 C语言代码,实现打印整数功能,不使用 printf 函数:
void printInt(unsigned int num) {
unsigned char buf[16];
unsigned char i, j;
if (num == 0) {
SBUF = '0';
while (!TI);
TI = 0;
return;
}
for (i = 0; num > 0; i++) {
buf[i] = num % 10;
num /= 10;
}
for (j = i; j > 0; j--) {
SBUF = buf[j-1] + '0';
while (!TI);
TI = 0;
}
}
该函数使用了串口通讯,将整数转换为字符串后逐位发送给串口进行打印输出。具体实现方法如下:
-
定义一个长度为 16 的字符数组
buf,用于存储整数的每一位。 -
如果
num为 0,则直接发送字符 '0' 并返回。 -
对于非零的整数
num,先将其每一位存入buf数组中。 -
从
buf数组的最高位开始,逐位发送给串口输出,注意要将数字转换为对应的字符。 -
在每一次发送字符之后,等待串口传输完成(
TI标志置位),然后清除TI标志,以便进行下一次发送。
该函数的使用方法如下:
unsigned int num = 12345;
printInt(num);
执行该代码后,串口将依次输出字符 '1'、'2'、'3'、'4'、'5',完成整数的打印输出。
原文地址: https://www.cveoy.top/t/topic/nCB6 著作权归作者所有。请勿转载和采集!