在直流电动机的驱动中对大功率的电动机常采用IGBT作为主开关元件,对中小功率的电机常采用功率场效应管作为主开关元件.另外还可以采用集成电路来完成对电机的驱动,系统采用集成电路L298来驱动电机
图2-2 L298内部结构和功能引脚图
L298是双H高电压大电流功率集成电路.直接采用 L逻辑电平控制,可以驱 动继电器、直流电动机、步进电动机等电感性负载。其内部有两个完全相同的功率放大回路。其内部结构和引脚功能如图2-2所示。 L298 引脚符号及功能
SENSA、SENSB:分别为两个H桥的电流反馈脚,不用时可以直接接地 ENA 、ENB:使能端,输入PWM信号
IN1、IN2、IN3、IN4:输入端,TTL逻辑电平信号 OUT1、OUT2、OUT3、OUT4:输出端,与对应输入端同逻辑 VCC:逻辑控制电源,4.5~7V GND:地
VSS:电机驱动电源,最小值需比输入的低电平电压高
当使能端为高电平时,输入端IN1为PWM信号,IN2为低电平信号时,电机正转;输入端IN1为低电平信号,IN2为PWM信号时,电机反转;;IN1与IN2相同时,电机快速停止。当使能端为低电平时,电动机停止转动。
五、硬件图
六、程序框图 1、主程序框图 开始 启动
系统初始化 从键盘发命令送入intx中(x=0或1) 定时中断给电机输入脉冲 电机转动,数码管显示速度 结束
2、中断服务程序框图
返回 设置中断返回地址
中断响应 七、程序 #include
uchar TABLE[10]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90}; unsigned int frq1,c; void delay(unsigned int k) { }
void display() {
uchar qian,bai,shi,ge; qian=0; bai=0; shi=0; ge=0; c=frq1; qian=c/1000; bai=c/100; shi=c/10; ge=c; P1=0x01; P2=TABLE[qian]; delay(5); P1=0x02; P2=TABLE[bai]; delay(5); unsigned int i,j; for(i=0;i for(j=0;j<121;j++) ; } P1=0x04; P2=TABLE[shi]; delay(5); P1=0x08; P2=TABLE[ge]; delay(5); void chang(void) interrupt 0 using 0 { } void main() { unsigned int i=0; while(1) { TMOD=0x01; TH0=55536/256; TL0=55536%6; TR0=1; EA=1; EX0=1; while(TF0==1) { i++; if(i==10) { display(); frq1=0; TF0=0; } if(INT0==0) while(!INT0) frq1++;