C51中,TH0=0x55;中0x啥意思?

如题所述

ox是C51单片机中的16进制表示符,十六进制(简写为hex或下标16)在数学中是一种逢16进1的进位制。一般用数字0到9和字母A到F(或a~f)表示,其中:A~F表示10~15,这些称作十六进制

表示方式

不同电脑系统、编程语言对于16进制数值有不同的表示方式:

Ada与VHDL用所基于的“数字引证”把16进制数包起来,例如“16#5A3#”。(注:Ada对整数和实数都可以使用从1到16中任何一个做为其基数。)而对于字节向量,VHDL使用字首 x 表示,例如,x"10",对应的二进制码为:"00010000"。

C语言、C++、Shell、Python、Java语言及其他相近的语言使用字首“0x”,例如“0x5A3”。开头的“0”令解析器更易辨认数,而“x”则代表十六进制(就如“O”代表八进制)。在“0x”中的“x”可以大写或小写。对于字符量C语言中则以x+两位十六进制数的方式表示,如xFF。

十六进制转义序列:如 \x1abf4 ,可以使用任意多的十六进制数字,直至不是十六进制数字为止;

16位的通用字符名(universe-character name):\u后面必须跟4个十六进制数字(不足四位前面用零补齐),表示Unicode中在0至0xFFFF之内的码位(但不能表示0xD800到0xDFFF之内的码点,Unicode标准规定这个范围内的码位保留,不表示字符);

32位的通用字符名:\U后面必须跟8个十六进制数字(不足八位前面用零补齐),表示Unicode中所有可能的码位(除0xD800到0xDFFF之外)。

C++11引进了十六进制浮点型字面常量。例如:0x1.2p10表示 (1+2/16)×2=115210。实际上,Visual C++一直以来使用的C/C++语言标准库函数printf,%a作为类型说明符来格式化输出浮点型值即为上述格式。例如:printf("%a",1152.0);

C/C++在表示字符型字面常量时,可以用:

在VB、MSX BASIC、Quick BASIC和FreeBASIC中,使用字首“&H”来表示。
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-03-30

c语言中在书写十六进制数时,为与十进制区别需要在前面加0x作为标记,因此这里的55不是十进制五十五,而是十六进制的55.

第2个回答  2019-03-30
TH0高位TL0低位因为是八位的计数器,所以这个最大就是2^8=256,所以,如果部分高位和低位的话,是记录不下去的。然后这个高位就相当于存放的进位一样。然后这个(65536-10000)/256就是取高位的意思,(65536-10000)%256取的是低位。为什么会是减呢,是因为这个计时器到了65536溢出了,就会发生中断,然后就会通知系统。所以,如果你要记录10000次的话,那你是想让它加10000次就溢出,所以,之前要放入一个初值,就是上面这样计算的。至于为什么是10MS这个要看你是多少频率的了吧,也就是计数器加1的时间是多少。也就是10000个这个时间单位
第3个回答  2019-03-29
0x55说明55是十六进制数。
0x是十六进制引导符。
第4个回答  2019-03-29
表示后边的55是16进制

C51中,TH0=0x55;中0x啥意思?
ox是C51单片机中的16进制表示符,十六进制(简写为hex或下标16)在数学中是一种逢16进1的进位制。一般用数字0到9和字母A到F(或a~f)表示,其中:A~F表示10~15,这些称作十六进制 表示方式 不同电脑系统、编程语言对于16进制数值有不同的表示方式:Ada与VHDL用所基于的“数字引证”把16进制数包...

51单片机定时和串口冲突?
T0中断太频繁了,因为同级中断,T0优先,所以总抢占中断,串口被边缘话了。修改一下程序:void timer_init(){ TMOD=0x22;SCON=0X50;TH1=0xfd;TL1=0xfd;TR1=1;TH0=246;TL0=246;ET0=1;TR0=1;ES=1;EA=1;PS=1; } void timer0_int() interrupt 1 {time++;if(time<50)\/\/count为占空比...

单片机流水灯问题 看看我程序有什么错误啊
TH0=0x00;TL0=0x00;EA = 1;ET0 = 1;TR0=1;while(1){P1=0x55;} } void time0_int() interrupt 1 { P1 ^= 0x55;}

51单片机使用T0和T1外部脉冲计数,C语言如何编程?
使用T0和T1外部脉冲计数,控制两个电机,到1700个脉冲电机停止,--统计脉冲个数,用外部中断更好。--T0和T1,留着定时用。用四个按键控制,按键1控制电机正转,按键2控制电机反转,按键3控制电机1正转,按键4控制电机2正转,怎么用C语言编程?--编程前,要先设计出来电路。

单片机用定时器计时长,怎么算
TH0=0X77,TL0=0X55 将这两个十六进制换算成十进制是0x77H=0111 0111B=119D D0X55H=01010101B=85D 那么计数初值为119*256+85=30549 计数时间=(65536-30549)微秒=34987微秒=34.987ms 仅供参考

51单片机定时器控制8个LED灯亮3秒灭8秒再亮12秒的程序
TH0 = 0xfc;TL0 = 0x18;Count++;if(!Sign)OUT = 0xaa; \/\/奇数 (1秒)if(Count>=1000){ Sign=1;Count=0;if(Count_Sign<3) \/\/2秒 OUT = 0xaa; \/\/奇数 else if(Count_Sign>=3&&Count_Sign<=10) \/\/8秒 OUT = 0x55; \/\/偶数 else if(Count_Sign>10&&Count_Sign<...

如何制造简单的遥控器和遥控接收器?
1、由于接收到的红外信号在微秒级别中变化,对系统实时性要求较高,所以具备垃圾回收功能,实时性没有保证的C#,似乎完不成这种信号的接收功能,所以我们选择的是VC,由它实现高优先级的线程去进行信号接收。2、由于红外遥控信号是脉宽调制的串行码,所以我们需要采集信号的宽度,显然采用一般的时钟函数来...

音乐转换成16进制写进单片机的方法
P2=0x55; Delay1(); } void Delay(uchar t0)\/\/延时 { while(t0--) \/\/决定节拍 Lignt1(); } void Delay2(uchar w0)\/\/延时 { while(w0--) \/\/决定节拍 Lignt(); } void T0Int() interrupt 1\/\/TIMER0 { TL0 = ljsz; TH0 = hjsz; Speaker=!Speaker; } void ExtInt0() interrupt ...

51单片机定时中断C语言的写法步骤,可追加分数
TH1 = 0x3c; \/\/高八位装入初值 TL1 = 0xb0; \/\/低八位装入初值 IE = 0x82;\/\/开总中断并开定时器0中断 TR0 = 1;\/\/启动定时器0 while(1){ ;} } void Timer0_int() interrupt 1 {\/\/重新装初值 TH1 = 0x3c; \/\/高八位装入初值 TL1 = 0xb0; \/\/低八...

单片机串口通信程序 PC发送一段任何数据到单片机,按一个按钮让原数据...
SCON = 0x50;TMOD &= 0x0F;TMOD |= 0x20;PCON |= 0x80;TH1 = 0xFD;ES=1;EA=1;TR1 = 1;TI = 1;TH0=0xfc; \/\/T0定义初始值 TL0=0x18;TR0=0; \/\/关闭T0计时 ET0=1;} \/\/向串口发送一个字符 void MCU_TXD(unsigned char ch){ SBUF=ch;while(TI==0);TI=0;}...

相似回答