基于proteus仿真的pwm电机调速

基于proteus仿真的pwm电机调速

ID:38921067

大小:302.50 KB

页数:10页

时间:2019-06-21

基于proteus仿真的pwm电机调速_第1页
基于proteus仿真的pwm电机调速_第2页
基于proteus仿真的pwm电机调速_第3页
基于proteus仿真的pwm电机调速_第4页
基于proteus仿真的pwm电机调速_第5页
资源描述:

《基于proteus仿真的pwm电机调速》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、直流电机调速资料汇总一.使用单片机来控制直流电机的变速,一般采用调节电枢电压的方式,通过单片机控制PWM1,PWM2,产生可变的脉冲,这样电机上的电压也为宽度可变的脉冲电压。C语言代码:#include#defineucharunsignedchar#defineuintunsignedintsbitK5=P1^4;sbitK6=P1^5;sbitPWM1=P1^0;sbitPWM2=P1^1;sbitFMQ=P3^6;ucharZKB1,ZKB2;voiddelaynms(uintaa){ucharb

2、b;while(aa--){for(bb=0;bb<115;bb++)//1ms基准延时程序{;}}}voiddelay500us(void){intj;for(j=0;j<57;j++){;}}voidbeep(void){uchart;for(t=0;t<100;t++){delay500us();FMQ=!FMQ;//产生脉冲}FMQ=1;//关闭蜂鸣器delaynms(300);}voidmain(void){TR0=0;//关闭定时器0TMOD=0x01;//定时器0,工作方式1TH0=(65526-100)/25

3、6;TL0=(65526-100)%256;//100us即0.01ms中断一次EA=1;//开总中断ET0=1;//开定时器0中断TR0=1;//启动定时器T0ZKB1=50;//占空比初值设定ZKB2=50;//占空比初值设定while(1){if(!K5){delaynms(15);//消抖if(!K5)//确定按键按下{beep();ZKB1++;//增加ZKB1ZKB2=100-ZKB1;//相应的ZKB2就减少}}if(!K6){delaynms(15);//消抖if(!K6)//确定按键按下{beep();ZK

4、B1--;//减少ZKB1ZKB2=100-ZKB1;//相应的ZKB2增加}}if(ZKB1>99)ZKB1=1;if(ZKB1<1)ZKB1=99;}}voidtime0(void)interrupt1{staticucharN=0;TH0=(65526-100)/256;TL0=(65526-100)%256;N++;if(N>100)N=0;if(N<=ZKB1)PWM1=0;elsePWM1=1;if(N<=ZKB2)PWM2=0;elsePWM2=1;}//显现:电机转速到最高后,也就是N为1或99时,再按一下,

5、就变到99或1,//电机反方向旋转以最高速度二、内容及要求:1、设计一个直流电机调速系统,并用单片机实现连接开关和数码显示并将其值输入直流电机调速系统。2、通过公式及键控实现其直流电机启动、加速、减速和停止等四种形态。目标:(1)CPU为8051芯片;(2)实验需要4个LED,分别显示启动、加速、减速和停止。(3)通过按键开关输入不同的值改变脉冲占空比的控制值从而得到不同的频率脉冲,实现脉冲转变为点评,实现调速功能。PWMEQU7FH;PWM赋初始值OUTEQUP0;8个LED灯的接口INCKEYEQUP1.4;K1,PWM

6、值增加键。DECKEYEQUP1.5;K2,PWM值减小键。BEEPEQUP3.7;----ORG0000HSJMPSTARTORG000BHSJMPINTT0ORG001BHSJMPINTT1ORG0030H;----;主程序;定时器0工作在模式1,定时器1工作在模式2。;----START:MOVSP,#30HMOVTMOD,#21HMOVTH1,PWM;脉宽调节MOVTL1,#00HMOVTH0,#0FCH;MOVTL0,#066H;频率调节SETBEASETBET0SETBET1SETBTR0LOOP:MOVA,PW

7、M;JBINCKEY,LOOP1;增加键是否按下?CALLDELAY;延时去抖动JBINCKEY,LOOP1CJNEA,#0FFH,PWMINC;是否到最大值?CALLBEEP_BL;是,蜂鸣器报警。SJMPLOOPPWMINC:INCPWM;调节脉宽(脉宽减小)SJMPLOOPLOOP1:JBDECKEY,LOOP2;减小键是否按下?CALLDELAY;延时去抖动JBDECKEY,LOOP2CJNEA,#02H,PWMDEC;是否到最小值?CALLBEEP_BL;是,蜂鸣器报警。SJMPLOOPPWMDEC:DECPWM;

8、调节脉宽(脉宽增加)LOOP2:SJMPLOOP;----;T0中断服务子程序(频率);控制定时器1中断;----INTT0:CLRTR1MOVTH0,#0FCH;1ms延时常数MOVTL0,#066H;频率调节MOVTH1,PWMSETBTR1MOVOUT,#00H;启动输出RETI;-

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。