
使用单片机控制变频器可以选择后二种方式,采用通讯口方式控毁旅制,其优点是控制功能全面,通过相应的电平转换电路适合变频器的通讯口形式(RS484/RS232/CAN等),就可与变频器进行通讯,硬件简单,二者间的连线数量少连接方便。缺点是需要了解掌握变频器的通讯协议才能进行控制编程,软件设计复杂。由于不同品牌的变频器通讯接口和通讯协议各不相同,目前尚没有统一的标准,只能针对一种变频器进行开发,缩小了变频器品种的选择范围,适用性受到限制。而对于模拟量输入控制方式,则几乎在所有的变频器中都能支持,虽然在功能上比较单一,但可实现调速的主要功能,能满足多数场合的使用要求,具有普遍性。
最常用的模拟量输入调速方法是通过电位器来调节频率,即改变模拟量输入的电压值,达到调节转速的目的。采用机械式电位器虽简单易行,但易磨损,长期使用不够稳定,同时还有一个最大的缺陷是只适合手动调节,不能实现自动调节。笔者采用数字电位器替代机械式电位器,在单片机的控制下,不但能进行简单的手动变频调速,还能根据控制要求实现PID闭环自动控制,不失为一种功能全面的单片机控制变频器的好方法。原文位置
数字电位器
笔者采用美国Xicor公司的X9221双E2POT非易失性数控电位器,电阻阵列端电压±5V,分为64个抽头。X9211包含二个电阻阵列,每个阵列包含有63个电阻单元。在每个单元之间和二个端点都有可以被访问的抽头点。滑动单元在阵列中的位置由用户通过二线制串行总线接口控制。每个电阻阵列与一个滑动端计数寄存器和四个8位数据寄存器联系在一起,这四个数据寄存器可以由用户直接写入和读出,滑动端计数寄存器的内容控制滑动端在电阻阵列中的位置。功能框图如图1 所示。原文位置
图1 功能框图
原文位置
X9211的写入单元为8字节的E2PROM存储器,写入次数105次,数据保存时间100年,亦即电位器抽头位置具有掉电保持功能,不会因为失电而改变。X9211共有3种电阻阵列值:2KΩ、10KΩ、50KΩ,可根据实际需要选择分辨率为每个电位器64个抽头采用20引脚DIP和SOIC封装。本文所以选择使用双组电位器X9221,是因为控制对象除变频器外,还有一组由可控硅调压控咐谨温的电加热器,同样可以采用数字电位器的方法进行调控,这样使用一片X9221就可实现对二个对象的控制,对二者可以分别进行调节和控制,互不影响,因此非常适合双路输出的控制要求,方便简捷,一举两得。
单片机与数字电位器接口
X9221支持I2C二线制串行总线规约,与单片机的接口只需要2根I/O线。单片机作为主机可按照规约规定的时序启动数据的传输,并为发送和接收 *** 作提供时钟,X9221作为从机响应主机的 *** 作,从总线上接收数据或将数据送至总线上,从而实现单片机对X9221的读写 *** 作,硬件接口电路如图2所示。
图2中X9221的二组电阻阵列分别连接变频器调节端子和电热器调节端子,在变频器接口端子中还有一个控制变频器启停的干接点,由单片机P3.2口经驱动控制继电器实现。与变频器模拟控制接口连接需要注意的是,一般变频器的输入接口的提供的电压是0-10V,X9221电阻阵列的端电压相对于Vss是±5V,如果按一般习惯将变频器控制接口的负极 0V与Vss连接作为公共端时,那么电位器的VH端电压相对Vss将会是10V,超出了允许范围,会造成器件损坏。因此二者连接时应将变频器控制接口的正极10V与X9211的正电源Vcc电源连接作为公共端,即共正极连接,这样就可以保证电位器的VH和VL的 端电压会在±5V的正常工作范围内。由于变频器采用的是整流—PWM逆变输出的工作原理,在工作过程中必然会产生许多高次谐波,对单片机系统的干扰较大,因此二者间的连接应使用屏蔽电缆,并将屏蔽层一端可靠接地同时在X9221的输出端增加滤波电容,减少高频信号的引入。
软件设计
X9221包括二个滑动端计数寄存器(WCR),每个E2POT电位器各对应一个。WCR可以被认为是一个6位并行和串行装载的带有输出译码的计数器,用来选择沿着电阻阵列的六十四选一的开关。WCR的内容可以有4种方法来改变:1.可以由主机通过Write WCR指令来直接写入(串行加载)2.可以通过XFR Data Register指令把四个辅助数据寄存器之一的内容直接写入(并行装载)3.可以通过Increment/Decrement指令一步一步地修改4.可以在上电时装入它的数据寄存器0(R0)的内容。
送给X9221所有的命令都由开始条件为引导,这个条件就是当SCL为高时,SDA由高至低的跳变。X9221连续监视SCL和SDA线上的开始条件,在遇到这个条件前将不响应任何命令。接着单片机必须输出要访问的X9221的8位地址。其中高4位为器件类型辨识符,固定为0101,低4位是该器件地址,由X9221的A0-A3输入端的状态来定义。在本设计中A0-A3全部接地,故地址为50H。 X9221在比较地址成功后会作出一个应答响应,以表示数据接收成功。接着单片机可以送出一个字节包括指令和寄存器指针的信息,格式如下:
其中高4位决定 *** 作指令,P0位选择二个电位器中的一个,最低2位(R1 R0)选择4个寄存器中的一个。最后以SCL为高时SDA由低到高的跳变为一个终止条件来结束。终止条件一旦发出,则X9221开始内部的写周期,典型的写周期时间为10ms,如果单片机在X9221写 *** 作周期内访问,则没有应答返回,此时可以采用轮询的方式等待应答信息。详细的时序及指令说明请参阅器件手册。
原文位置
结语
采用数字电位器控制变频器调速,可适用于各种规格型号的变频器,硬件组成简单,不需要价格较高外围电路复杂的D/A芯片,在单片机的控制下可进行闭环回路的自动跟踪调节,性价比高,易于实现。笔者所设计的电路实际应用于微型喷雾干燥实验机的电脑控制器中,已小批量生产。喷雾干燥实验机是将液体溶液干燥加工成为固体粉末,多用于医药、食品、化工和实验室等进行样品的制备和实验。在实验中要求能够根据物料的特性选择不同的干燥风量和加热温度,该功能的实现就是通过51 单片机控制一片数字电位器X9221,分别调节风机变频器和加热器可控硅调压模块控制风机转速和加热功率,采用模糊控制结合PID调节的控制方法,根据用户设定的温度和风量值,实现了风量和加热温度的自动调节,取得了满意的结果。因此,使用单片机系统控制变频器调速时,采用数字电位器作为输出调节接口,是一个简单实用、适用范围广、具有较高性价比的好方法。
MPLAB应该就可猜袭以。
所谓的机器码应该就是二进制文件吧?
MPLAB IDE 可以进行反汇肆兆灶编(相信它也是最准确最全的PIC反编译工具)
。具体步骤如下:
1.
启动MPLAB IDE 执行Configure菜单下的Select Device选择好芯片
.
2. File菜单下Import导入要反编译的HEX文件
.
3.View菜单下Program Memory 查看程序存储器的内容
,
在程序存储器内容显示窗口的左下角切换到Machine或Symbolic,
在这个窗口上就可以看到每裂扮一个地址和HEX文件对应的ASM“反编译”就是察看源代码,其实最佳的PIC“
反编译”工具就是MPLAB-IDE,也具有察看源代码的功能。不过大家要注意
,
由于PIC采用分页技术,“反编译”后的源程序再次编译后一般FILE-->IMPORT-->IMPORT TO MEMORY -->调入.HEX文件(你的机器码应该是bin文件或者hex文件,都差不多了!)
然后再WINDOW中打开PROGRAM MEMORY窗口,就得到了源程序
注意所有未用的程序段反汇编后全部成了XORLW 0FFH
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)