日电电子NEC MCU在马达控制中的应用与特点

需积分: 9 4 下载量 154 浏览量 更新于2024-08-01 收藏 5.2MB PDF 举报
"本文介绍了NEC MCU在马达应用方面的特点,包括8位、16位和32位MCU的不同优势,并重点解析了实时输出端口在马达控制中的作用,特别是78K0系列马达控制产品如78F0711/12和78F0714的应用。" NEC MCU在马达控制领域具有显著的优势,针对不同的马达类型,如步进马达、直流马达和无刷马达,提供了相应的功能模块。其中,实时输出端口是其核心特性之一,对于电机调速控制至关重要。 实时输出端口(Real-Time Output Port,RTOS)是一种能够即时响应中断请求并将预设数据传输至输出锁存器的机制。这种功能特别适用于需要精确时间间隔输出的场景,如步进电机的开环控制和无刷马达驱动。RTOS分为实时输出端口0和实时输出端口1,各有其独特的操作模式。 实时输出端口0由RTBL00和RTBH00两个4位寄存器组成,可工作在8位×1或4位×2模式。在8位×1模式下,写入的8位数据同时被设置到两个寄存器;而在4位×2模式下,数据分别写入,独立读取。这种灵活性使得MCU能适应不同类型的马达控制需求。 实时输出端口1同样配备RTBL01和RTBH01寄存器,但支持6位×1和4位×1模式。这种设计进一步扩展了MCU在马达控制中的应用范围,尤其对于需要更复杂输出模式的系统来说。 NEC的uPD78F0714型号MCU就是一个典型例子,它集成了这些强大的马达控制功能。该MCU的实时输出端口0的框图展示了其实现马达控制的具体硬件结构,表明了其在处理电机控制任务时的高效性和可靠性。 NEC MCU凭借其特有的实时输出端口和其他相关功能,为马达控制提供了强大的解决方案。无论是8位、16位还是32位产品,都能够满足不同复杂度的马达控制需求,从而在工业自动化、汽车电子、家用电器等领域得到广泛应用。开发者可以根据具体应用需求,选择合适的NEC MCU型号,实现精确、高效的马达控制。

优化这段代码#include <REGX52.H> #include "lcd1602.h" #include "send_IR.h" #include "notsend_IR.h" #include "keybored.h" #include "Delay.h" sbit IR_EN = P2^0; void Send_NEC_0() { NotSend_IR(19); Send_IR(19); } void Send_NEC_1() { NotSend_IR(60); Send_IR(19); } void send(unsigned char s1,unsigned char s2) { unsigned char temp,i; Send_NEC_1(); Send_NEC_0(); Send_NEC_1(); Send_NEC_1(); Send_NEC_0(); Send_NEC_0(); Send_NEC_1(); Send_NEC_0(); Send_NEC_0(); Send_NEC_1(); Send_NEC_0(); Send_NEC_0(); Send_NEC_1(); Send_NEC_1(); Send_NEC_0(); Send_NEC_1(); temp = s1 & 0x001; for(i = 0;i<12;i++) { if(temp) { Send_NEC_1(); } else { Send_NEC_0(); } temp = temp>>1; } Send_NEC_0(); Send_NEC_0(); Send_NEC_0(); Send_NEC_0(); temp = s2 & 0x001; for(i = 0;i<12;i++) { if(temp) { Send_NEC_1(); } else { Send_NEC_0(); } temp = temp>>1; } //????? Send_NEC_1(); Send_NEC_1(); Send_NEC_1(); Send_NEC_1(); } void Send1(unsigned char s1,unsigned char s2) { Send_IR(167); NotSend_IR(167); Send_IR(167); send(s1,s2); Send_IR(167); NotSend_IR(167); Send_IR(167); send(s1,s2); Send_IR(167); NotSend_IR(167); Send_IR(167); Send_NEC_1(); Send_NEC_1(); Send_NEC_0(); Send_NEC_1(); Send_NEC_0(); Send_NEC_1(); Send_NEC_0(); Send_NEC_1(); Send_NEC_0(); Send_NEC_1(); Send_NEC_1(); Send_NEC_0(); Send_NEC_0(); Send_NEC_1(); Send_NEC_1(); Send_NEC_0(); Send_NEC_0(); Send_NEC_0(); Send_NEC_0(); Send_NEC_0(); Send_NEC_0(); Send_NEC_0(); Send_NEC_0(); Send_NEC_0(); Send_NEC_0(); Send_NEC_0(); Send_NEC_0(); Send_NEC_0(); Send_NEC_0(); Send_NEC_0(); Send_NEC_0(); Send_NEC_0(); Send_NEC_0(); Send_NEC_0(); Send_NEC_0(); Send_NEC_0(); Send_NEC_0(); Send_NEC_0(); Send_NEC_0(); Send_NEC_0(); Send_NEC_0(); Send_NEC_0(); Send_NEC_0(); Send_NEC_0(); Send_NEC_0(); Send_NEC_1(); Send_NEC_0(); Send_NEC_0(); Send_NEC_1(); Send_NEC_0(); Send_NEC_1(); Send_NEC_0(); }

2023-05-30 上传