(入门)89C52单片机延时函数工作不正常

该单片机晶振频率11.0592MHZ

写了延时函数,使用unsigned int 作为参数类型时,不到两秒数码管显示完0-F,换成unsigned long int 约4秒显示一个数。

由于csdn无法上传视频,截两张图:
使用unsigned int :

img

使用unsigned long int :

img

代码:

#include <REGX52.H>

#define TUBE P0
typedef unsigned long int uint;
typedef unsigned char uchar;

uchar gNumArr[16] = {0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,
                                         0X7F,0X6F,0X77,0X7C,0X39,0X5E,0X79,0X71};

void delay_ms(uint ms_time){
    uint us10_time = ms_time * 100;
    while(us10_time--);
}

void main(){
    uchar i = 0;
    while(1){
        for(i = 0; i < 16; i++){
            TUBE = gNumArr[i];
            delay_ms(1000);
        }
    }
}

你的代码发给我看一下啊