单片机课程设计直流电机调速Word文档下载推荐.docx
《单片机课程设计直流电机调速Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《单片机课程设计直流电机调速Word文档下载推荐.docx(17页珍藏版)》请在冰点文库上搜索。
某些场合往往要求直流电机的转速在一定X围内可调节,例如,电车、机床等,调节X围根据负载的要求而定。
调速可以有三种方法:
〔1〕改变电机两端电压;
〔2〕改变磁通;
〔3〕在电枢回路中,串联调节电阻。
本设计采用第一种方法:
通过改变施加于电机两端的电压大小达到调节直流电机转速的目的。
而本设计选用DAC0832式D/A转换器与通用型低功耗集成运放LM324结合输出适合控制直流电机的电压。
而在直流电机测速中,使用栅格圆盘和光电门组成测速系统。
当直流电机通过传动局部带动栅格圆盘旋转时,测速光电门获得一系列脉冲信号。
这些脉冲信号通过单片机两个定时/计数器配合使用,一个计数,一个定时。
计算出单位时间内的脉冲数,经过单位换算,就可以算得直流电机旋转的速度。
而在速度显示系统中,先把计算得到的速度值的每一位分别取出,再运用74LS164串行输入并行输出移位存放器通过查表逐步把各位要显示的数据移给数码管显示出来。
这样,最终就可以对直流电机进展调速并测速显示了,达到了预期目的。
关键词:
D/A转换调压调速光电测速74LS164移位显示
一、方案选择
本设计需要分三个环节:
调速、速度测量、速度显示。
〔3〕在电枢回路中串联调节电阻。
本设计采用第一种方法改变电机两端电压,改变电压可以采用定时器产生占空比可调的PWM波或者数模转换产生。
本设计选用DAC0832式D/A转换器与通用型低功耗集成运放LM324输出适合控制直流电机的电压。
2、直流电机速度测量环节
速度测量主要有两种方法:
〔1〕光电测速法:
使用栅格圆盘和光电门组成测速系统。
这些脉冲信号通过单片机两个定时/计数器配合,一个计数,一个定时。
计算出单位时间内的脉冲数m,经过单位换算,就可以算得直流电机旋转的速度。
直流电机转速计算公式:
r=1000n/(T*N1*N)(rps)
r为直流电机转速,N为栅格数,N1为T1中断次数,T为定时器T1定时器溢出时间。
〔2〕霍尔效应原理测速法:
电动机转轴带动轴上的磁钢旋转,从而改变磁场大小,通过霍尔电路将磁场变化转换为脉冲信号,经放大整形,输出矩形脉冲信号。
当转速改变时,输出脉冲的频率会发生变化。
从而得到电机旋转的速度。
本设计根据实验台上的仪器选用了光电测速的方法。
3、直流电机速度显示环节
速度显示局部备选方案有两种:
〔1〕把计算得到的速度值的每一位分别取出,再运用74LS164串行输入并行输出移位存放器通过查表逐步把各位要显示的数据移给数码管显示出来。
〔2〕用CS8279键盘显示模块局部。
本设计选用74LS164串行输入并行输出移位存放器在数码管上显示速度值。
总之,本设计采用“D/A转换得到控制电压—光电测速电路测速—74LS164移位存放器显示速度〞的方案达到控制直流电机速度并测量速度到实时显示电机速度的设计目的。
二、各环节电路原理和数据程序分析
1、直流电机调速环节
〔1〕电路图与线路连接
运用DAC0832式D/A转换器与通用型低功耗集成运放LM324输出适合控制直流电机的电压的电路图见图1的DAC0832并行数模转换电路局部。
线路连接:
系统各跳线器处在初始状态,8P数据线将CPU模块的P11F3和P1F3连接,即单片机P0口与DAC0832的8位数据输入口相连接;
用导线连接并行数模转换模
图1DAC0832并行数模转换电路
块的CS_0832到地,CPU模块的/WR和D1区的/WR相连;
并行数模转换模块的VOUT端口接入电动机电压输入口。
〔2〕调压原理
单片机P0口输出8位二进制数据,进入D/A转换器DAC0832的输入端口,通过对D/A转换器DAC0832的各控制端口的设置选通其直通方式工作,即每进入一个8位二进制数便可直接转化成模拟量,与通用型低功耗集成运放LM324共同作用产生电压输出。
可以通过对单片机进展编程连续增加或者连续减小P0口输出的8位二进制数据大小而达到改变输出电压的目的,便可改变直流电机的转速。
〔3〕程序编写与控制方法
调压环节程序流程图:
图2直流电机电路
图3光电测速电路
光电测速电路的输出脉冲端口PulseOut接定时器0的外部输入端口P3.4。
〔2〕测速原理
光电测速法:
n=m/(N1·
T·
N)(rps)
其中:
n为直流电机转速,N为栅格数,N1为T1中断次数,m为计数器T0在规定时间内测得的脉冲数,T为定时器T1定时器溢出时间。
图474LS164与数码管连接图
本设计中,用到四个串联使用的74LS1644LS164串行输入并行输出移位存放器的串行数据线DIN口,用来从单片机向数码管输送要显示的速度数据;
P1.5接移位信号CLK端口,用来产生上升沿,以触发74LS164串行输入并行输出移位存放器工作。
〔2〕速度显示原理
静态数码管显示电路由四只74LS164、四只共阴极数码管组成。
输入有两个信号:
串行数据线DIN和移位信号CLK。
74LS164首尾相连,并行输出LED数码管的段码。
把计算得到的速度值每一位取出,用74LS164通过查表把各位要显示的数据移给数码管显示出来。
4、数据计算
定时器1定时27.7ms,赋初值TH1为93H,TL1为0CCH,循环3次,共计时83.1ms,这个时间里计数器T0计得n个脉冲。
如此转速为1000n/(27.7*3*12)=nr/s.
三、直流电机调速系统的总电路原理图
注:
P1.0口接加速键,P1.1接减速键,P1.2接起启动键,P1.3接停止键。
四、直流电机调速系统的总程序流程图
五、直流电机调速系统的总程序
ORG0000H
JMPMAIN
ORG001BH
JMPdingshi
ORG0200H
MAIN:
MOVSP,#60H
SETBP3.4;
P3.4口写1,允许输入脉冲
MOVTMOD,#15H;
设置定时器T1工作方式1,计数器T0工作方式1
MOVTH0,#00H;
计数器赋初值0
MOVTL0,#00H
MOVTH1,#0A
MOVTL1,#54H
MOVIE,#88H;
定时器中断允许
SETBTR0;
开计数器
SETBTR1;
开定时器
SJMP$
dingshi:
djnzr4,mm;
不到83.1ms转到mm,重新赋初值循环,到如此顺序执行,停止计时和计数
CLRTR1
MOVA,TL0;
把83.1ms的脉冲数送到A中
MOVB,#100
DIVAB
MOVR0,A;
百位数送入R0
MOVA,#10
XCHA,B
DIVAB;
十位数送入A,个位数送入B
XCHA,B;
个位数送入A,十位数送入B
MOVDPTR,#0100H;
设置表格地址
MOVCA,A+DPTR
MOVR2,#8
LOOP:
;
传送个位数
RLCA
CLRP1.5;
用p1.5口得到上升沿,触发164
DJNZR2,LOOP
MOVA,B;
十位数送入A
LOOP1:
传送十位数
MOVP1.4,C
DJNZR2,LOOP1
MOVA,R0
LOOP2:
传送百位数
DJNZR2,LOOP2
MOVA,#00H
LOOP3:
传送最高位0
DJNZR2,LOOP3
LCALLDELAY
-----检测按键------
saomiaoanjian:
MOVA,50H;
把50H单元存放的内容回送给A
MOVDPTR,#7fffh;
选中DAC0832
CLRP1.2
P1.2,START;
p1.2接启动键,以某一较高速度启动
P1.0,UP;
p1.0接加速键,假如按下如此转up加速
P1.1,DOWN;
p1.1接减速键,假如按下如此转down减速
JMPAAA
mm:
MOVTH1,#0A
RETI;
不到416ms,中断返回,继续循环
-----启动----------
START:
MOVA,#07FH
MOVXDPTR,A
LCALLDELAY
JMPAAA
-----停止----------
CUT:
LCALLdelay
DELAY:
MOVR5,#20
D2:
MOVR6,#50
D3:
MOVR7,#250
D4:
NOP
NOP
DJNZR7,D4
DJNZR6,D3
DJNZR5,D2
RET
-----加速----------
CJNEA,#0FFH,AA
MOVXDPTR,A;
向DAC0832输数据
AA:
INCA
CJNEA,#0FFH,BB
BB:
CJNEA,#0FFH,CC
MOVXDPTR,A;
CC:
CJNEA,#0FFH,DD
DD:
CJNEA,#0FFH,EE
EE:
-----减速----------
CJNEA,#00H,FF
FF:
DECA
DECA
CJNEA,#00H,HH
HH:
DECA
CJNEA,#00H,JJ
JJ:
CJNEA,#00H,KK
KK:
AAA:
MOV50H,A;
把A的内容存放给50H单元
MOVr4,#3;
设置定时26ms的次数,共得到416ms
MOVTL0,#00H
到416ms,中断返回,继续测速
ORG0100H
DMB:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,73H
END
六、设计体会与今后的改良意见
经过这次独立的课程设计,学到了很多实践后才有的东西:
连接线后,要检查系统各跳线器是否处在初始设置状态,以保证硬件的可操作性。
在编写程序时,会出现各种错误,例:
〔1〕targetoutofrange:
这种情况是程序繁琐冗长使跳转超出X围,主要有jcjnbjnccsjmpdjnzacalljzjnzcjne等跳转指令超出跳转的X围,一般可以增加分支或改用长跳转指令LJMP,LCALL等解决。
(2)SJMP
$指令不可在定时器中断中乱用,要严格按照程序顺序执行才可以正确使用。
程序必须反复写-修改-使用,还要学会熟练使用单步调试修改程序。
这样,只有硬件与软件相匹配好后,才能达到试验功能成功。
参考文献
【1】马建国、孟宪元,《电子设计自动化技术根底》
【2】姜威,实用电子系统设计根底》.2008年1月
【3】X靖武,《单片机系统的PROTEUS设计与仿真》.2007年4月