产品概述

单片机 16进制数 单片机C语言开发离不开它--秒懂二进制和十六进制

小编 2025-07-15 产品概述 23 0

单片机C语言开发离不开它--秒懂二进制和十六进制

单片机C语言开发离不开它--秒懂二进制和十六进制

作为单片机爱好者,入门学习单片机编程一定要学会进制的基本概念,常见的有(二进制、八进制、十进制、十六进制),今天于晓超带大家入门一下单片机C语言编程的二进制和十六进制(技术文章阅读量惨淡,希望大家能够点赞收藏加转发,感谢)。

进制顾名思义,进位计数制是人们定义的进位技术方法,这句话可能比较难理解,以十进制为例,逢十进一,(1、2、3....10--1、2、3....10)由此大家应该也可以理解二进制和十六进制了,二进制就是逢二进一,十六进制逢十六进一,记住这是进位运算的方法。

二进制的应用

二进制在单片机开发过程中必不可少,可以把他理解为高低电平

如图,在单片机时序图中常常这样表示。0和1代表着信息,那么很多的0和1组成的就是一串信息,0和1的不同排列所承载的信息也不同,但是在实际应用过程中二进制承载的信息过多时不易使用和记忆,因此在单片机C语言开发中常常将一串二进制用十六进制来替代。

十六进制的应用

十六进制满十六进一,那么大于10的用什么来表示尼?在十六进制中大于10的数用ABCD等,英文大写来代替,0X01、0XAA这都是16进制,对十六进制和二进制进行相互转换是单片机C语言开发中必备的技能。

进制转换

二进制和十六进制的转换,在开发过程中可以借助计算机自带的计算器进行转换,但是自己熟练掌握相互转换会在开发过程中,节约很多时间而且有利于自身的理解,如何进行相互转换如图所示!

学单片机这么久,还不会计算定时器初值就out了。

在学习单片机的时候,我们发现很多功能都是通过中断来实现的。之前也举过烧水的例子来阐述中断,今天就讲解一下定时器赋初值的方法。8位的定时器最大可计数2的8次方为256,16位的定时器最大可计数2的16次方为65536。由于单片机的定时器是递加式的,所以最大值减去所要定时的值就是初值,举例如下:

最大值为100,我们只需要38,怎么办呢,由于是递加的,我们只需要在62时开始计时就可以了。

以proteus仿真为例简单讲解定时器赋初值

用proteus搭建的电路图如下,晶振为12M,P2.0每10ms翻转一次,即P2.0输出的频率为100HZ。

这里使用16位的定时器,那单片机定时器0的最大计数就是65536.晶振为12M,那单片机的一个机器周期就是1us,定时器 0工作在方式1时最大定时65.536ms。

定时器的定时时间T = (65536-X),单位是us;

定时器初值X = 65536-T;

假设定时时间T=10ms=10000us,

那定时器初值X=65536-10000=55536us,也就是定时器0从55536开始递加到65536就是10ms,所以55536就是定时器的初值,55536转化为十六进制为0Xd8f0,所以定时器的初值为:

TH0 = 0XD8;

THL = 0XF0;

用虚拟示波器抓到的波形如下:

只需要支付硬件成本的STM32单片机学习板正在集资众筹,价格129元,。这款学习板包含了GPIO应用、RS232通讯、RS485通讯、CAN总线通讯、USB通讯、IIC总线、SPI总线、JTAG在线调试、SW在线调试、ISP自动下载、RTC实时时钟、TFT真彩屏应用等丰富的外设资源,详情请加微信号了解。

本订阅号致力于单片机、ARM等嵌入式软硬件的设计经验分享,秉承“人人都是电子设计经验的分享者”的理念,成功路上不孤单,我们一起努力。

公众号:micropoint8。嵌入式学习网振兴网:www.picmcu.com

相关问答

为什么 单片机 p1可以等于 16进制数 ?

虽然你非常简短却暴露出许多问题,首先是P1=0xff;P大写,是0x不是ox,0xff是十六进制数,0x是C语言里面十六进制数的标识,十六进制数0xff转化为2进制就是1111111...

单片机 编程填空会的快来1.RAM中45H单元内存有一个 十六进制 ...

单片机编程填空会的快来1.RAM中45H单元内存有一个十六进制数,把这个数转换为BCD码的十进制数,BCD码的十位和个位放在累加器A中,百位放在R3中.ORG0000HMOVA,__...

单片机 :十六 进制 A~F与其对应的ASCII码值相差37H,为什么在编写程序时,加的是07H,不是3?

A的ASCII是41H,所以A与ASCII值相差是41H-0AH=37H,至于你这里加07H而非37H,可能是这个数开始已经加了30H,因为数字与其对应的ASCII码值相差30H。A的ASCII是4...

单片机 中高四位和低四位是什么意思. 十六进制 0xf0化成二进...

[最佳回答]是的,顾名思义,高四位就是f转换过去就是1111

单片机 中,如何将 16进制 转换为ASC码?

每个数字+0x30,每个字母+0x37就成了。举例如下:f的16进制是1111,加0x37即1111+00110111=01000110=0x46;a的16进制是1010,加0x37即1010+...

单片机 数字后面的H表示什么?

H表示十六进制。1.在数电领域中,单片机常常使用十六进制来表示数值,H就是十六进制的标志。例如,数字0x10H表示十六进制的10,相当于十进制的16。2.十六进制...

单片机 符号公式?

单片机是一种集成电路,使用内部存储器来存储指令和数据,通过对这些指令的执行来控制外部设备。在单片机的各种指令中,往往会涉及到特定的符号和公式。以下是...

16进制 f4什么意思?

十六进制F4相当于十进制的244。十六进制和十进制都是数制的一种,十六进制表示逢十六进一,而十进制表示逢十进一,是最常用的进制。十六进制以十个数字和ABCDE...

在8位 单片机 如何实现16位运算?

如果你是用C编译器,那么根本就不用考虑这个问题,因为编译器都为你解决了,你只需要定义16位的变量(如int型)但如果你是用汇编语言写程序,那么就得为程序分配...

单片机 中将十六 进制 转化成十 进制 并显示?

给你一个比较好理解的十六进制转换为BCD码的程序。BCDT:MOVR5,#16;设置计数值CLRAMOVR2,A;存放结果寄存...给你一个比较好理解的十六进制转换为BCD码...

猜你喜欢