单片机初学者问题

来源:百度知道 编辑:UC知道 时间:2024/06/23 17:28:26
我做单片机程序时,总发现很多十六进制的东西,把这些十六进制的数转换成十进制之后,发现转换出的数跟开发板上的编号没有关系。
谁能告诉我这些十六进制的数什么意思,费解中…………
那我要做流水灯,这些灯的编号又是那个十六进制的数,我怎么知道?

那我要做流水灯,这些灯的编号又是那个十六进制的数,我怎么知道?
============================================================
你把十六进制的转换成二进制的,就很容易看出是哪个LED亮,那个灭了。

⑴. 二进制数在计算机系统中处理很方便,但当位数较多时,比较难记忆及书写,为了减小位数,通常将二进制数用十六进制表示。十六进制是计算机系统中除二进制数之外使用较多的进制,其计数法的特点为:
01. 有0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F等共十六个数码,其分别对应于十进制数的0至15;
02. 十六进制数的加减法的进/借位规则为:借一当十六,逢十六进一。
⑵. 十六进制数的位权一般表示为:16n-1。其中16是十六进制的进位基数,n表示相对小数点的位置。在书写时,用加注16或H的方式表示十六进制数,例如:(8FA.5)16或8FA.5H。例如:写出(8FA.5)16的十进制数表达式。(8FA.5)16=8×162+15×161+10×160+5×16—1=(2298.3125)10

参考资料:http://shop.xqcafe.net/News/ReadNews.asp?NewsID=25

为什么要转为十进制,费解中…………

用十六进制转化二进制,方便书写。例如,要使一个I/O的低4位为0,高4位为1,用二进制就要写成1111 0000,而用十六进制只需f0就可以了。
一般的寄存器都是八位的,因此高的十六进制位就表示高4位,低的十六进制位就表示低4位。

一句话,写二进制是不是很烦?十六进制就是克服这个缺点的
好比八个灯,你要点亮其中的四个,MOV P0,#00001111B
这个是二进制的,要一大串数字吧,MOV P0,#0FH这两个一样的,不过这个用二进制就好理解点,如果是给定时器赋初值,那你要输入的