当前位置 : 安防网>安防技术>图形图像>阅读正文

基于单片机控制的变频调速系统

作者: 时间:2008-06-20

七段发光数码管是由若干个发光二极管按一定的规律排列而成,其中七个发光二极管a~g控制七个笔画(段)的亮或暗,另一个控制一个小数点的亮和暗。若发光二极管的阳极连在一起则称为共阳极的,若发光二极管的阴极连在一起则称为共阴极的。此处应用是要显示0~9的数字,因此要先将16进制数转换为十进制BCD码,然后经查表程序即可显示出相应的数字。
在此项目中,要用到两种16进制转换为十进制BCD码的算法,一种是把16位的16进制转换为十进制BCD码的算法,主要用在频率计算和速度计算的程序中,另一种是把8位的16进制转换为十进制BCD码的算法,其程序流程图如图3-5所示,主要用在深度计算的程序中。

 

图3-6 频率计算程序流程图
3.5  频率计算程序
由于变频器中v与f的关系为1:10,因此频率f=10 * (D*/51.2) = 0.2* D*,即D*每变化1个单位量,f要变化0.2Hz,为了便于编程,程序中要先扩大10倍,最后再缩小10倍,其程序流程图如图3-6图所示。

 

 

图3-7 速度计算程序流程图
3.6  速度计算程序
由上可知,频率f=0.2* D*,根据电机转速公式n=60f(1-s)/p其中极对数P为2,转差s=0.067,可得n=0.2*D**60*(1-0.067)/2=5.5D*,即D*每变化1个单位量,n要变化5.5r/min,为了便于编程,程序中要先扩大10倍,最后再缩小10倍,其程序流程图如图3-7图所示。
3.7  深度计算程序
由于定时/计数器T1是每隔0.1m中断一次,每次中断都在中断服务程序中将深度值加1,因为总的行程为1.5m,并且主、副井正好是一对相反的过程,这里以主井为参考,要得到副井的数据就要用总行程减去主井的数值。其程序流程图如图3-8图所示。

 
4  系统测试
测试有两种方法:一种称为黑盒测试,即已经知道了产品应该具有的功能,可以通过测试来检验是否每个功能都能正常使用;另一种称为白盒测试,即知道产品内部工作过程,可以通过测试来检验产品内部动作是否按照规格说明书的规定正常进行。[5]
无论采用哪种测试方法,只要对每一种可能的情况都进行测试,就可以得到完全正确的程序,然而对于实际程序而言,穷尽测试通常是不可能做到的,所以通过测试并不能证明程序是正确的,但是,我们的目的是要通过测试保证软件的可靠性。
4.1  硬件测试
首先,在焊接元器件之前,要对每个元器件进行测试,以防止把有问题的器件焊接上去,会对以后的工作造成很大的影响。对于电阻,要将万用表拨到电阻档,阻值只要不是偏差太大,一般没什么问题。对于芯片来说,不易测量,一般也不会有什么问题,可以不测量,直接焊上。对于发光二极管,要检测出正负极,以便于接线。
第二,要对焊接好的电子元器件进行测试,主要是测一下是否连通,有没有短路现象,器件间接线有没有问题等。将万用表拨到短路振铃档位,然后把探针一头固定在一个焊点上,另一头试接其它焊点,看一下有没有不该相连的地方,如果有则一定在接线时发生了短路,要及时更改过来。对于逻辑上接到一起的焊点,一定会发生短路,如果没有振铃则说明有线路没有连接好,或有虚焊现象。
第三,将所有的硬件全部组装在一起,并且将程序下载到AT89C51中,然后开机进行测试。第一步测试自动程序,在无人操作的情况下,电动机可以自动完成所有的工作过程。第二步测试手动程序,必须经过人工操作,电动机才会切换状态,否则会按某一动作一直执行,除非是到了末端,因为在程序做了限制,以防止出现不必要的错误。在矿井中,必须要按顺序走完全过程,即爬行、加速、匀速、减速、爬行,当然也可以只走前几步,但不能跳过前面的过程,因此在按键时,如果前面的过程没有走,后面的操作是不会起作用的。测试时,正常与非正常状态都要进行,正常状态下看能否保证顺利完成,非正常状态下看能否通过设定的程序进行处理。
正常操作步骤:先合上三刀开关,保证变频器首先供电,设置好变频器的参数,然后给单片机供电,使整个装置开始运行起来。初始状态是处于自动方式,所以主井要从下向上运行,当达到顶端时,会停止等待是否要人工操作,如果没有,则会继续在自动方式下运行,如果按下了手动按键,则程序会切换到手动方式下运行,并等待按爬行键,一旦按了爬行键,电动机会保持爬行的速度运动起来,如果这期间不再操作,则会一直处于这种状态,除非T0计了407个脉冲,会自动强制停下电动机,因为马上就要到达终点;如果改变了几个状态,则会保持最后一个状态运行。当这次到达终点停下以后,会等待按键操作,以确定要在哪种方式下运行,如果没有按键则会一直等待。
4.2  软件测试
在本次项目开发中,采用模块化设计,使得每个模块都可以完成一个特定的子功能,而且各个子功能在起初设计时没有保持依赖关系。当各个子功能都实现了再组装在一起,根据系统流程的需要进行调用。
1、键盘功能
这个程序设计的思想是:按某个键会在数码管中显示预定义的数值。按照匹配对应键的方法,首先判断是否按下了第一个键,如果是则执行本条语句下面的程序然后返回,如果不是则转判,是否按了下一个键……如果一直没有相匹配的,则认为没有按键,不作任何处理。
在KEIL C51中编辑程序,然后进行编译,有错误则直接到提示的错误行中进行修改,再编译,直到通过为止,最后成目标HEX文件。在PROTEUS中搭建硬件并加载键盘的HEX文件进行仿真调试。这里共设置了6个按键,按第一个键时应显示1,按第二个键时应显示2……以此类推。最后的结果表明,程序能够正常操作。
键盘测试的部分程序:
 
MAI:
MOV P1,#0FFH
MOV A,P1
CJNE A,#0FFH,KEY1
MOV R0,#00
CALL DISP
JMP MAI
KEY1:
LCALL DELAY12MS
MOV A,P1
CJNE A,#0FFH,KEY2
MOV R0,#00
CALL DISP
JMP MAI
KEY2:
CJNE A,#0FEH,NEXT1
KEY3:
MOV A,P1
CJNE A,#0FFH,KEY3
MOV R0,#01H
CALL DISP
LJMP MAI
NEXT1:
CJNE A,#0FDH,NEXT2
KEY4:
MOV A,P1
CJNE A,#0FFH,KEY4
MOV R0,#02H
CALL DISP
LJMP MAI
NEXT2:
CJNE A,#0FBH,NEXT3
KEY5:
MOV A,P1
CJNE A,#0FFH,KEY5

上一页 1 2 3 4 5 67 8 下一页
上一篇:QCIF、CIF是什么格式
下一篇:没有了
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册