下面是基于51单片机的C语言代码,实现打印整数功能:

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;
    }
}

该函数使用了串口通讯,将整数转换为字符串后逐位发送给串口进行打印输出。具体实现方法如下:

  1. 定义一个长度为16的字符数组buf,用于存储整数的每一位。

  2. 如果num为0,则直接发送字符'0'并返回。

  3. 对于非零的整数num,先将其每一位存入buf数组中。

  4. 从buf数组的最高位开始,逐位发送给串口输出,注意要将数字转换为对应的字符。

  5. 在每一次发送字符之后,等待串口传输完成(TI标志置位),然后清除TI标志,以便进行下一次发送。

该函数的使用方法如下:

unsigned int num = 12345;
printInt(num);

执行该代码后,串口将依次输出字符'1'、'2'、'3'、'4'、'5',完成整数的打印输出

用C语言基于51单片机不使用printf写一个打印整数的函数;

原文地址: https://www.cveoy.top/t/topic/dan7 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录