51单片机MODBUS通讯实战:01与05功能码的工业控制应用

Modbus通信协议与51单片机实践应用 本文还有配套的精品资源,点击获取 简介:Modbus是工业自动化领域常用的通信协议,支持ASCII和RTU两种模式。RTU模式以其高效率和低带宽占用特性,在长距离、高速串行通信中尤为突出。51单片机因其易用性和高效性,被广泛用于嵌入式系统设计。本资料提供了Modbus RTU通信的详细文档和基于51单片机的编程实例,包括Modbus RTU的C语言实现、EC20无线模块应用... 阅读详情

1. 初识MODBUS:工业自动化的"普通话"

大家好,我是老李,在工业自动化领域摸爬滚打十多年了。今天想和大家聊聊51单片机如何通过MODBUS协议与工业设备通信。如果你刚开始接触工业控制,可能会觉得MODBUS很神秘,其实它就像工业设备之间的"普通话",让不同厂家的设备能够相互交流。

MODBUS是一种应用层协议,它定义了设备之间如何交换数据。在工业现场,你经常会看到PLC、传感器、电机驱动器等各种设备通过MODBUS连接在一起。51单片机作为经典的微控制器,虽然性能不如现在的ARM芯片,但在很多简单控制场景中仍然大有可为。

我刚开始用51做MODBUS通讯时,也踩过不少坑。有一次在现场调试,设备就是不通,查了半天才发现是CRC校验没做对。后来慢慢积累了经验,发现只要掌握几个关键点,51单片机完全能够稳定可靠地实现MODBUS通讯。接下来,我就结合01和05功能码的实际应用,给大家分享一些实战经验。

2. 硬件搭建:从电路板到实际连接

2.1 基础硬件设计

要做MODBUS通讯,首先得把硬件搭起来。51单片机通常通过串口进行MODBUS通信,最常用的就是RS485接口。为什么用RS485而不是RS232呢?因为RS485支持多点通信,传输距离远,抗干扰能力强,特别适合工业环境。

我在实际项目中常用的硬件方案是这样的:STC89C52单片机作为主控,MAX485芯片做电平转换,再加一些保护电路。MAX485的RE和DE引脚接单片机的P2.0,用于控制收发切换。数据线A和B之间要接120欧姆的终端电阻,这个很重要,很多通信不稳定都是因为这个电阻没接或者阻值不对。

电源部分也要注意,工业现场电源噪声大,最好加上滤波电路。我在每个芯片的电源引脚都加了0.1uF的退耦电容,距离芯片越近越好。模拟地和数字地之间用磁珠隔离,这样可以减少数字噪声对模拟电路的干扰。

2.2 布线注意事项

现场布线很有讲究。RS485总线要用双绞线,A、B线要互相绞合,这样才能抑制共模干扰。总线两端都要接120欧姆终端电阻,中间设备不要接终端电阻,否则会导致信号反射。

我记得有一次在现场调试,通信总是时好时坏。后来发现是布线问题,通讯线和动力线走在同一个线槽里,电机启停时干扰特别大。重新布线后问题就解决了。所以建议大家,通讯线一定要和动力线分开走线,如果必须交叉,要垂直交叉,减少平行走线的长度。

3. 软件框架:构建可靠的通信基础

3.1 通信协议栈设计

MODBUS协议栈并不复杂,但要做到稳定可靠需要注意很多细节。首先定义好数据结构,我习惯用结构体来组织MODBUS帧,这样代码更清晰:

typedef struct {
    uint8 addr;     // 从机地址
    uint8 func;     // 功能码
    uint16 reg_addr; // 寄存器地址
    uint16 data;     // 数据
    uint16 crc;      // CRC校验
} modbus_frame_t;

串口初始化很关键,波特率要准确。51单片机的定时器1常用模式2做波特率发生器,11.0592MHz的晶振对应9600波特率时,TH1和TL1都设置为0xFD。为什么要用11.0592MHz这个奇怪的频率?因为这样产生的波特率误差最小。

3.2 中断处理机制

串口接收一定要用中断方式,不能轮询。我在中断服务程序中设置接收标志,主循环中处理数据。这样可以避免阻塞其他任务:

void UART_ISR() interrupt 4
{
    if (RI) {
        RI = 0;
        rx_buffer[rx_count++] = SBUF;
        if (rx_count >= MAX_FRAME_LEN) {
            rx_flag = 1;
            rx_count = 0;
        }
    }
}

超时处理也很重要。我通常用定时器实现帧超时检测,如果超过一定时间没有收到完整帧,就清空接收缓冲区,避免半帧数据堆积。

4. 01功能码深度解析:读取设备状态

4.1 功能原理与实现

01功能码用于读取线圈状态,在工业控制中非常常用。比如读取继电器的开关状态、电机的运行状态等。线圈就是单个位的开关量,每个线圈只有ON或OFF两种状态。

请求帧格式很简单:从机地址、功能码01、起始地址高字节、起始地址低字节、线圈数量高字节、线圈数量低字节,最后是CRC校验。地址是16位的,所以最多可以寻址65536个线圈。

响应帧包含从机地址、功能码、字节计数、线圈状态数据、CRC校验。字节计数表示后面跟着几个字节的状态数据,比如读取8个线圈需要1个字节,读取9个线圈需要2个字节。

4.2 实际应用案例

我在一个自动化生产线项目中就用到了01功能码。产线上有8个光电传感器,用来检测产品位置。51单片机通过MODBUS读取这些传感器的状态,上传给上位机。

传感器接在单片机的P1口,每个引脚对应一个传感器。我在程序中定义了一个coils变量来存储线圈状态:

uint8 coils = 0x00;  // 初始状态全为0

void update_coils()
{
    coils = P1;  // 直接读取P1口状态
}

当收到01功能码请求时,程序检查请求的地址范围是否合法,然后返回对应的线圈状态。这里要注意字节序的问题,MODBUS是大端格式,高地址在前。

5. 05功能码实战应用:控制输出设备

5.1 单点控制机制

05功能码用于写单个线圈,也就是控制单个输出点的开关。比如控制继电器吸合/释放,电机启动/停止等。这个功能码虽然简单,但在实际应用中非常实用。

请求帧包含从机地址、功能码05、输出地址高字节、输出地址低字节、输出值高字节、输出值低字节、CRC校验。输出值只能是0xFF00(ON)或0x0000(OFF),其他值都是非法的。

响应帧应该回显请求数据,这样主站就知道从站正确接收并执行了命令。我在实际项目中还会加上执行结果检查,比如如果控制继电器失败,就返回异常响应。

5.2 工业控制实例

在一个温控系统中,我用05功能码控制加热器的开关。温度传感器采集当前温度,51单片机根据设定温度计算控制量,然后通过05功能码控制加热器。

void control_heater(uint8 state)
{
    if (state) {
        // 开启加热器
        send_modbus_command(0x05, HEATER_ADDR, 0xFF00);
    } else {
        // 关闭加热器
        send_modbus_command(0x05, HEATER_ADDR, 0x0000);
    }
}

实际应用中还要考虑安全因素。比如加热器关闭后需要冷却时间才能再次开启,这些逻辑都要在程序中实现。我通常会在动作执行后加一个状态检查,确保设备真的按指令动作了。

6. 异常处理与调试技巧

6.1 常见异常代码处理

MODBUS定义了多种异常代码,帮助快速定位问题。我在程序中实现了完整的异常处理机制:

当收到不支持的功能码时,返回01异常(非法功能)。地址错误返回02异常(非法数据地址)。数据值错误返回03异常(非法数据值)。

void send_exception(uint8 func_code, uint8 ex_code)
{
    tx_buffer[0] = slave_addr;
    tx_buffer[1] = func_code | 0x80;  // 功能码最高位置1
    tx_buffer[2] = ex_code;
    uint16 crc = calc_crc(tx_buffer, 3);
    tx_buffer[3] = crc & 0xFF;
    tx_buffer[4] = crc >> 8;
    send_data(tx_buffer, 5);
}

在实际调试中,我发现大部分通信问题都是由于地址错误或数据值错误引起的。建议在开发阶段详细记录每个异常的发生情况和频率,这样有助于优化系统稳定性。

6.2 实用调试方法

调试MODBUS通讯我总结了几招很管用的方法。第一招是用串口调试助手监控数据,可以看到原始的MODBUS帧。建议选择支持MODBUS协议分析的调试软件,这样能直接解析出功能码和数据内容。

第二招是使用LED指示灯。我在板上加了几个LED,用来显示通信状态:一个灯表示收到数据,一个灯表示发送数据,还有一个灯表示异常状态。这样在现场调试时,通过观察LED就能初步判断问题所在。

第三招是添加调试输出。在关键函数入口和出口添加调试信息,记录函数执行情况和参数值。当然要注意调试输出的频率,不能影响正常通信。

7. 性能优化与稳定性提升

7.1 通信效率优化

51单片机资源有限,优化通信效率很重要。我常用的优化方法包括:使用查表法计算CRC,比直接计算快很多;采用零拷贝技术,避免数据多次复制;合理设置超时时间,既要保证帧完整性,又要及时响应。

// CRC预计算表
code uint16 crc_table[] = {
    0x0000, 0xCC01, 0xD801, 0x1400, 0xF001, 0x3C00, 0x2800, 0xE401,
    // ... 省略完整表格
};

uint16 calc_crc(uint8 *data, uint8 len)
{
    uint16 crc = 0xFFFF;
    for (uint8 i = 0; i < len; i++) {
        uint8 byte = data[i];
        crc = (crc >> 8) ^ crc_table[(crc ^ byte) & 0xFF];
    }
    return crc;
}

缓冲区管理也很重要。我通常使用环形缓冲区来存储接收和发送的数据,这样可以提高内存使用效率,避免数据丢失。

7.2 抗干扰措施

工业环境电磁干扰严重,必须采取有效的抗干扰措施。除了硬件上的滤波和保护,软件上也要做相应处理。

我常用的软件抗干扰方法包括:数据校验,除了CRC校验外,还可以加一些自定义的校验规则;超时重发机制,当通信失败时自动重试;心跳包检测,定期检测设备在线状态。

在重要的控制指令上,我通常会采用多次确认的方式。比如发送控制命令后,要求设备返回状态确认,如果超时没有收到确认,就重发命令。重发次数一般设为3次,过多会影响实时性。

8. 实际项目中的应用案例

8.1 智能照明控制系统

去年我做过一个智能照明项目,用51单片机做MODBUS从站,控制大楼的照明系统。每个单片机控制8个回路,通过05功能码开关灯光,通过01功能码读取灯光状态。

系统架构很简洁:上位机是PC监控软件,中间是RS485总线,下面挂接多个51单片机节点。每个节点有独立的地址,监控软件可以单独控制每个回路,也可以群控。

遇到的问题主要是通信距离。大楼有100多米长,RS485信号衰减严重。后来加了中继器,并且降低了波特率到4800,问题就解决了。这个案例告诉我,实际项目中通信可靠性往往比传输速度更重要。

8.2 环境监控系统

另一个项目是机房环境监控,用51单片机采集温度、湿度、烟雾报警等信号。01功能码用来读取传感器状态,05功能码控制风机和报警器。

这个项目的难点是实时性要求高。一旦检测到烟雾,必须立即报警并启动排风系统。我在程序中设置了高优先级中断,收到紧急指令立即处理,不排队。

为了确保可靠性,我还实现了双通信机制。正常情况下使用MODBUS通信,紧急情况下通过硬线直接触发报警。这样即使通信系统故障,安全功能仍然有效。

在实际运行中,这个系统已经稳定工作三年多,证明了51单片机配合MODBUS协议完全可以满足工业控制的要求。

51单片机Modbus通信模版:经典实现指南 51单片机是一种广泛使用的经典微控制器,其核心是基于Intel 8051架构。这种单片机因其简单易用、成本低廉以及编程方便等优点,成为了很多嵌入式系统开发者入门的首选。Modbus协议诞生于1979年,由Modicon公司开发,最初用于工业自动化领域,以简化控制器间的通信过程。该协议的创建基于简单的问答系统,即主设备通过网络向从设备发出请求,而从设备根据请求进行响应。Modbus协议因其简洁性、开放性、以及对不同硬件平台的兼容性,迅速成为工业领域最流行的通信协议之一。 阅读详情

相关推荐

51单片机modbus实例

51单片机modbus实例,内部提供了比较详细的代码,并且方便大家移植工程

51单片机实现modbus rtu从机

基于STC89C52RC单片机的MODBUS RTU协议从机的实现一、开发环境二、MODBUS RTU从机协议简介三、实验现象四、源码五、 后记 一、开发环境 /*************************************************************** 文章名:基于STC89C52RC这款MCU实现MODBUS RTU从机的协议的实现 时间:2021年5月25日21:41:55 科室:N/A 员工:N/A 版本:V0 修改记录:N/A 目的:基于STC89C52RC这款M

qp_12的博客 1万+

51单片机MODBUS通讯示例.zip

本程序讲述的是威纶通屏与单片机通讯实验

Proteus仿真二,通过51单片机来实现虚拟串口通信,基于MODBUS_RTU协议(1)

Proteus仿真二,通过51单片机来实现虚拟串口通信,基于MODBUS_RTU协议(1) 这一章,主要介绍的是实现一帧报文的接收内容,下一章将将讲解功能码的实现问题。 本文要用到的软件需要MODBUS三套工具: 首先搭建电路图: 进行配置,首先是51单片机的晶振要选用11.0592MHz,因为这样波特率才是精准的。 然后就是虚拟串口对接通过 “virtual serial port driver”来进行配置 连接COM1 和 COM2。 然后配置端口,由于电脑是主机,51单片机是从机。因此,需要

weixin_50810081的博客 6362

51单片机MODBUS RTU通信实例.rar

51单片机MODBUS RTU通信实例rar,51单片机MODBUS RTU通信实例

科技中介服务机构想要提升服务效率,需要哪些数智工具支持?.docx

科技中介服务机构想要提升服务效率,需要哪些数智工具支持?

基于51单片机modbusRTU从机设计

在了解modbus协议后就是基于该协议的设计了,下面先说一下基于航太电子HTM52单片机的从机设计。 设计思想如下: modbus协议是以主从的方式通信的,也就是上位机发送指令,下位机应答机制,发起通信的一直是上位机,下位机只要应答就好了。 modbus协议被设计出来是针对PLC应用的,这里我们可以简单的模拟PLC环境,可以在单片机里面设计一块共享区,该区域是上位机和下位机共享的,均可以读取或写入该区域的值,所有的modbus协议都是针对该快区域的操作,下位机也是根据这块区域的值做相应的操作。

一个不甘寂寞的编程之路 3万+

usb 扩容盘检测修复工具源码,编译产物

usb 扩容盘检测修复工具源码,编译产物

51单片机Modbus实例资源:快速实现Modbus通信的利器

51单片机Modbus实例资源:快速实现Modbus通信的利器 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在嵌入式开发领域,51单片机因其低成本、易用性和广泛的应用场景而备受开发者青睐。然而,在实际项目中,如何高效地实现设备间的通信协议,尤其是Modbus协议,一直是开发者面临的挑战。为了解决这一问题,我们推出了“51单片机Modbus实例”资源,旨在为开发者提供...

gitblog_09801的博客 669

融合UWB和IMU割草机定位EKF研究(Matlab代码实现)

内容概要:本文主要介绍了一个名为“Plecs全桥LLC谐振变换器仿真模型”的技术资源,该资源聚焦于电力电子领域中的LLC谐振变换器建模与仿真,涵盖开环、闭环控制、软启动设计及参数优化等核心内容。文档不仅提供了LLC变换器的详细建模方法与仿真案例,还系统梳理了其在高效电源转换系统中的应用,包括隔离型全桥拓扑结构的设计与性能分析。此外,资源汇总了大量Matlab/Simulink仿真模型及相关科研方向,涉及新能源并网、储能控制、电机驱动等多个前沿领域,全面展示LLC谐振变换器在现代电力系统中的关键技术实现路径。同时,文档附带多种学习资料获取途径,如网盘链接和公众号资源,便于研究人员深入实践与拓展研究。; 适合人群:具备扎实的电力电子、自动控制理论基础,从事新能源发电、开关电源设计、电力系统仿真等相关领域的研究生、工程师及科研人员。; 使用场景及目标:①深入理解LLC谐振变换器的工作原理、建模方法与控制策略;②开展电力电子变换器的仿真验证与参数优化设计;③支撑科研项目、学位论文或工程项目的系统仿真与方案验证; 阅读建议:建议结合所提供的仿真模型与参考文献,使用Plecs或Simulink软件进行动手实践,重点掌握LLC谐振变换器的建模流程、闭环控制设计、软启动机制及参数调试技巧,以全面提升在实际工程中的应用与创新能力。

ESP32-S3 SPI接口实战:从引脚分配到高速通信配置

本文详细解析了ESP32-S3的SPI接口配置与高速通信优化技巧,从引脚分配到软件配置,再到DMA传输和时钟优化,帮助开发者快速掌握SPI通信技术。特别针对ESP32-S3的SPI2接口进行了实战演示,包括硬件连接和常见问题排查,适用于各类嵌入式开发项目。

weixin_29189373的博客 679

基于单片机的 485 多机通讯测试系统设计

本文设计了一套基于STC89C52单片机的485多机通讯测试系统,采用主从式架构,支持32台从机联网。系统通过MAX485芯片实现半双工通讯,具备参数配置、数据收发、状态监测、故障报警等功能。硬件采用模块化设计,包括核心控制、485通讯、人机交互等单元;软件基于MODBUS-RTU协议实现指令解析与数据校验。测试表明,系统在100米距离内通讯成功率达98%以上,32台从机轮询时间小于10秒。该系统为工业多机通讯调试提供了高效解决方案,具有成本低、稳定性好等特点,未来可升级为全双工通讯以进一步提升性能。

QQ1928499906的博客 1167

手把手教你用OpenClaw+飞书打造论文写作AI助手(附踩坑实录)

面对几十篇文献,逐一阅读摘要都费时。我:“请提取桌面‘论文参考文献’文件夹中所有PDF的摘要,整理成表格,包含:论文标题、作者、发表年份、核心方法、主要结论。AI助手:“正在处理...已提取18篇论文摘要,汇总表格已保存到桌面‘文献摘要汇总.xlsx’。这比我自己一个个打开PDF复制粘贴快了不止100倍。OpenClaw+飞书的组合,让AI真正成为了我的“数字员工”。虽然配置过程有些曲折,但看到它在飞书里回应指令、帮我处理繁琐工作时,那种成就感无可替代。如果你也在准备论文,不妨试试这套方案。记住,

AcademicIdeas的博客 1041

基于单片机的modbus例程详细

#include #define uint8 unsigned char#define uint16 unsigned int#define FOSC 16000000uint16 BAUD=9600;uint16 TEMP_Alert=1000;//字地址 0 - 255 (只取低8位)//位地址 0 - 255 (只取低8位)/* CRC 高位字节值表 */ const uint8 code 

河北正定欢迎您-少占鱼 2889

Win10和Ubantu16.04双系统下,卸载Ubantu

Win10和Ubantu16.04双系统下,卸载Ubantu 机器配置 华硕主板,英伟达显卡(这不是重点) Win10与Ubantu16.04均为UFFI分区(如果不知道这个也不需要在意,一般默认的都是这样,鸵鸟原则) 清除Ubantu系统 一般按照常规的方法来删除Ubantu,都是直接将磁盘管理器里面的关于Ubantu的磁盘清空,但是还会留下一个UFFI分区,如果不进行删除的话,开机时候还是会有...

qq_33289694的博客 391

小红书分享链接失效?教你永久保存笔记的2种方法(含API调用技巧)

本文详细解析了小红书笔记链接失效的原因,并提供了两种永久保存笔记的方法,包括短链接转换API调用技巧和本地归档技术。通过Python代码示例和工具推荐,帮助用户实现笔记内容的高效保存和管理,确保珍贵内容不再丢失。

gin88的博客 2768

学习modbus(八)——单片机RS485通信接口、控制线、原理图及程序实例

RS232 标准是诞生于 RS485 之前的,但是 RS232 有几处不足的地方: 接口的信号电平值较高,达到十几 V,使用不当容易损坏接口芯片,电平标准也与TTL 电平不兼容。 传输速率有局限,不可以过高,一般到一两百千比特每秒(Kb/s)就到极限了。 接口使用信号线和 GND 与其它设备形成共地模式的通信,这种共地模式传输容易产生干扰,并且抗干扰性能也比较弱。 传输距离有限,最多只能通...

图像学习之旅 1万+

Allegro Design Entry CIS 与 OrCAD Capture CIS:PCB设计工具链中的双雄对决

本文深入对比了Cadence旗下两大原理图设计工具Allegro Design Entry CIS与OrCAD Capture CIS。Allegro Design Entry CIS源自Concept HDL,定位高端,强调自顶向下的层次化设计和与Allegro PCB Editor的无缝约束管理,适合大型复杂系统及团队协作。OrCAD Capture CIS则以其出色的易用性、广泛的兼容性和强大的CIS数据库功能著称,是中小型项目及跨工具链协作的通用选择。文章从历史渊源、核心功能、适用场景等多维度剖析,

bush的博客 488

11.6 通信实例与ASCII码

我们学习串口通信主要是要实现单片机和电脑之间的信息交互,可以用电脑控制单片机的一些信息,可以把单片机的一些信息状况发给电脑上的软件。下面我们就做一个简单的例程,实现单片机串口调试助手发送的数据,在我们开发板上的数码管上显示出来。 #include &lt;reg52.h&gt; sbit ADDR3 = P1^3; sbit ENLED = P1^4; unsigned char code Led...

weixin_44488826的博客 1690

Claude Code 常见安装失败问题与解决办法

摘要: Claude Code安装失败通常与环境、网络和权限问题有关,而非软件本身。主要误区包括:命令未识别(需检查PATH和终端重启)、网络连接失败(终端代理配置)、权限不足(系统安全限制)及账号认证问题。首次使用应避免复杂任务,建议从基础功能测试开始。快速自检可按终端重启→命令识别→网络→代理→权限→账号状态的顺序排查。理顺终端、网络和权限后,Claude Code运行将更稳定。 (150字)

sg_knight的专栏 6701

17、非线性动力学特征在情感语音与食管语音分析中的应用

本文探讨了非线性动力学特征在情感语音与食管语音分析中的应用。在情感语音识别中,选取Hurst指数、相关维数和Lempel-Ziv复杂度等混沌特征结合统计量,通过神经网络实现了中性、恐惧和愤怒情感的高效分类,全局成功率高达93.78%。在食管语音分析中,针对其缺乏明显周期性的问题,提出基于改进自相关方法的基频测量流程,包括包络计算、平滑与峰值细化,并对基频的物理意义提出思考。研究展示了两类语音在特征表现与技术方法上的差异,展望了其在客服、安全、医疗康复等领域的应用前景,并指出了未来在特征拓展、算法优化和发声机

sunny的博客 77

【学习笔记】51单片机 按键控制LED流水灯模式&定时器时钟

在下面去给他写中断子函数,他会在main中去到Timer0这个子函数当中去,再接着跳转回来。再TMOD上,这个是不可位寻址的,必须八位同时复制,如果同时使用定时器1和定时器0,先配置定时器1再去配置定时器0会把 之前前定时器1的更新掉,我们去给他让他只去执行一部分。现在我们要去做中断了,改正之后的是这样,但其实是还有缺陷在的。寄存器是连接软硬件的媒介,我们现在写一个关于这个的代码。这样得到的和我们预期的一样。TMOD的寄存模式,M1和M0是来决定工作模式的。我们要看的是关于以下的寄存器。

2601_96469072的博客 235

基于STM32、HAL库的TCA9555PWR I/O扩展器驱动程序设计

define TCA9555_ADDR_BASE 0x20 // 基础地址 (A0=A1=A2=0)* @param direction: 方向 (0=输出, 1=输入)* @param direction: 方向 (0=输出, 1=输入)* @param polarity: 极性 (0=正常, 1=反转)* @param polarity: 极性 (0=正常, 1=反转)

corlin6688的博客 528

51单片机:流水灯

复位后单片机会:PC归零(从0000H重新执行)、各SFR恢复默认值、端口输出高电平(P0~P3默认全1)。所以复位期间LED通常全灭(共阳极接法下输出1即灭),复位结束后程序从头跑起。正常工作时RST应保持低电平(接近0V),复位时则需把它拉高。:当RST引脚上的电压高于某个阈值(通常约1.5V~2.5V,具体随芯片型号和电源电压变化)并持续。,视觉上像水流一样移动。以8个LED接P1口、共阳极接法为例:要让最低位LED亮,P1应输出。的值,每个值点亮不同的LED组合,配合延时,人眼就看到"流动"效果。

橘为己有的博客 201

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

【学习笔记】51单片机 定时器

定时器子单片机内部就像一个小闹钟一样,根据时钟的输出信号,每隔“一秒”,计数单元的数值就增加一,当技术单元数值增加到“设定的闹钟提醒时间”时,计数单元就会向中断系统发出中断申请,产生“响铃提醒”,使程序跳转到中断服务函数执行。注意:定时器的资源和单片机的型号是关联在一起的,不同的型号可能会有不同的定时器个数和操作方式,但一般来说,T0和T1的操作方式是所有51单片机所共有的。注意:中断的资源和单片机的型号是关联在一起的,不同的型号可能会有不同的终端资源,例如中断源个数不同、中断优先级个数不同等。

2601_96469072的博客 261

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

51单片机:STC89C52RC片内硬件结构

8051 兼容内核 + 8KB Flash + 512B SRAM + 4KB EEPROM + 3 个定时器 + 8 个中断源 + 1 个 UART + 看门狗,相比经典 8051/89C52,主要增强了 RAM 容量、EEPROM、定时器数量和中断优先级层级,同时保留了串口直接下载的便利性。

橘为己有的博客 288

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

上一篇: DS18B20单总线温度传感器:从原理到实战应用
下一篇: STM32CubeMX外设配置实战:从零搭建物联网节点
algae
博客等级 码龄19年 1380粉丝 1719原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值