电力拖动课程设计 - 图文 下载本文

浙江理工大学拖动系统课程设计

3 IA1 外接单片机IO口 4 IB1 外接单片机IO口 5 IA2 外接单片机IO口 6 IB2 外接单片机IO口 4P绿端子说明:

1 OA1 OB1 接直流电机2个引脚,无方向 2 OA2 OB2 接直流电机2个引脚,无方向

2.5.3模块使用说明

接通VCC,GND 模块电源指示灯亮 IA1输入高电平,IB1输入低电平,【OA1 OB1】电机正转; IA1输入低电平,IB1输入高电平,【OA1 OB1】电机反转; IA2输入高电平,IB2输入低电平,【OA2 OB2】电机正转; IA2输入低电平,IB2输入高电平,【OA2 OB2】电机反转;

3 软件设计

3.1 操作说明

矩阵键盘3排6个按键分别对应不同的功能。功能如下图8所示:

图8:矩阵键盘按键功能

电机默认的启动状态为3档速度,方向正转。可以通过不同的功能按键来对电机的起停、正反转、转速等控制。电机的实时状态会显示在LCD1602中。电机转速1s刷新一次。

第13页

浙江理工大学拖动系统课程设计

3.2 c程序设计

3.2.1 LCD1602

RS 0 0 1 1 R/W 0 1 0 1 操作说明 写入指令寄存器(清除屏等) 读busy flag(DB7),以及读取位址计数器(DB0~DB6)值 写入数据寄存器(显示各字型等) 从数据寄存器读取数据 图9:LCD1602寄存器选择控制表

LCD1602的寄存器控制如上图9所示。当写入数据时,令RE=1 R/W=0;使能端E设置为低电平,单片机I/O口输出指令,令使能端为E低电平,此时E下降沿是LCD1602写入指令。想LCD1602写入数据用同样的方法。写入数据或指令程序流程图如下图10所示。

开始

R/E=0 E=0 RS=0? N Y

E=1 向数据寄存器写数据

E=1向指令寄存器写指令 结束 图10:LCD1602写入指令/数据流程图

3.2.2 矩阵键盘读取

矩阵键盘读取数值的流程如下图11所示。

第14页

浙江理工大学拖动系统课程设计

开始

P1=0x0f P1=0x0f? Key_sure=1 Y N

延时1ms P1=0x0f? N

key_sure=1?

Y 确定输入值,key_sure=0;

图11:矩阵键盘运行流程

Y N 3.2.3 占空比计算

本单片机采用的是24M晶振,且设置PWM周期为10ms。当设定好档位K时,可以根据一下公式计算出PWM占空比的定时器定时时间。

低电平信号TL1=(65536-2000*(10-K))%5; 低电平信号TH1=(65536-2000*(10-K)-TL1)/255; 高电平信号TL1=(65536-2000*K)%5; 高电平信号TH1=(65536-2000*K-TL1)/255;

3.2.4 PWM信号产生

PWM信号根据占空比计算所得的数值附给定时器。定时器1采用方式1定时。并几下当前电平的状态。当状态为1时,表示输出为高电平,计时器载入高电平信号的时间;当状态为0时,表示输出应为低电平,

第15页

浙江理工大学拖动系统课程设计

计时器载入低电平信号时间。每进入一次中断,状态加一与2取余数。

3.2.5 转速计算

通过T0计时器/计数器计数。本设计采用M法测速。当单片机P3.2口接收到下降沿信号时,产生中断,每产生一次中断,给计一次数。直到产生第100个PWM信号后,根据公式speed=(60*下降沿个数)/(41)计算出电机转速并刷新屏幕。每次计算完成后,重新给PWM信号和下降沿中断信号计数,以能够继续准确的测出电机转速。

3.2.6 换向

当电机高速运转时,若直接换向则会导致过流现象。故在换向时,软件上要停止PWM信号产生,并进行一段延迟,让电机转速降为0时,在定时器开始工作,输出PWM信号换向。当PWM1信号为高电平,PWM2信号为低电平时,电机正转;PWM1为低电平,PWM2为高电平时,电机反转;当PWM1和PWM2信号都为低电平时,电机停止。

第16页