常州工学院课设报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
常州工学院课程设计报告
题目:无刷无霍尔直流电机
学校:常州工学院
专业:自动化
班级: 10自二
姓名:李瑞 & 吴杰
学号: 10020616 &10020629
指导教师:王雁平
设计时间: 2013年11月12日
目录
1 设计说明 (2)
2 原理图 (4)
3 原理框图..........................................................................................................错误!未定义书签。
4 PCB图 (6)
5 程序清单 (7)
6 软件调试 (11)
7 软硬联调 (12)
8 课设心得 (13)
9 元件清单 (14)
1 设计说明
随着人们生活水平的提高,产品质量、精度、性能、自动化程度、功能以及功耗、价格问题已经是选择家用电器的主要因素。就电动机而言,传统的直流电动机均采用电刷, 以机械方法进行换向, 存在着相对的机械摩擦, 由此带来了噪声、火花、无线电干扰以及寿命短等致命弱点, 制造成本高及维修困难等缺点,因而大大地限制了它的应用范围。永磁无刷直流电动机是近年随着电力电子器件及新型永磁材料发展而迅速成熟起来的一种新型机电一体化电机,既具有交流电机的结构简单、运行可靠、维护方便等优点,又具备直流电机那样固有的优越的起动性能和调速特性,而无机械式换向机构,现以广泛应用于各种调速驱动场合,其应用前景看好,尤其从当今的环保、能源、效率等综合因素出发,水磁无刷直流电机可望在未来的电动车及冰箱或空调类永磁压缩机领域占有主导地位。
就目前而言,永磁无刷直流电动机控制器结构已有多种形式,由最初复杂的模拟式到近来以单片机为核心的数字式,但新型电机控制专用芯片的出现,给无刷直流电机调速装置设计带来了极大的便利,这种集成模拟控制芯片控制功能强、保护功能完善、工作性能稳定,组成的系统所需外围电路简单、抗干扰能力强、特别适用于对控制器体积、价格性能比要求较高的场合。专用控制芯片优点固然多,但往往价格比较昂贵。在一些控制要求精度不是很高的场合,就需要能有一种工
作稳定、价格又比较低廉的控制器。
2 原理图
3 原理框图
电源单
片
机
无
刷
电
机
驱
动
器
M
4 PCB图
5 程序清单
/*******头文件**********/
#include
#include
#include
/*********************/
/********自定义变量******/
#define uint unsigned int
#define uchar unsigned char
char gw,sw,bw,qw;
uchar j;//定时次数,每次20ms
uchar f=5;//计数次数
sbit P30=P3^0;//PWM脉冲输出信号
sbit P31=P3^3;//INT1用于速度脉冲信号检测输入信号sbit p11=p1^2;//正反转输出信号
sbit p10=p1^0;//k1 启动、停止
sbit p11=p1^1;//k2 减速
sbit p32=p3^2;//k3 加速
sbit p33=p3^3;//k4 正反转
uchar k;
uchar a,b;
uchar l;//占空比等级
uchar flag=0;//启停标志,初始为停止状态
uchar t=6;//脉冲加减
/************************/
/*********控制位定义********/
unchar code smg[]={};//定义字型码表
char data led[4]={0x08,0x04,0x02,0x01};//位码
uint x;//数码管显示的数值
display();//数码管显示
delays();//延时函数
key();//按键检测
/**********************************/
/***********主函数*************/
main(void)
{
IE=0x8f;//允许INT0、INT1、T0、T1中断
TMOD=0x11;//T0、T1均为定时Model 1
TCON=0x04;//INT1 脉冲触发
TH0=0xb1;//T0 定时20ms
TL0=0xe0;
TH1=0xfc;//T1 定时1ms
TL1=0x18;
TR1=1;// 启动T1
TR0=1;//启动T0
a=0;
b=10;
gw=sw=bw=qw=0;//数码管初始化
p2=0x00;
display();
}
/**********************************/
/**********T0定时中断函数***********/
void t0() interrupt 1 using 2
{
TH0=0xb1;//重装T0
TL0=0xe0;
a++;
if(a==20) a=0;
if(a
else p30=0;
l=b/20; //占空比等级计算
x=300*5*l; //计算转速
display(); //显示转速
}
/*************************************/
/**********外部中断0服务子程序***********/ void exint0(void) interrupt 0
{
b++;//增大占空比,电机加速
if(b>19) b=19;//占空比等级最大为19
}
/*********************************/
/**********外部中断1服务子程序***********/ void exint1(void) interrupt 0
{
b--;//减小占空比,电机减速
if(b<1) b=1;//占空比等级最小为1
}
/*********************************/
/**********T1定时中断函数***********/
void t1() interrupt 1 using 1
{