基于proteus仿真的pwm电机调速

上传人:小** 文档编号:91015721 上传时间:2019-06-20 格式:DOC 页数:10 大小:302.50KB
返回 下载 相关 举报
基于proteus仿真的pwm电机调速_第1页
第1页 / 共10页
基于proteus仿真的pwm电机调速_第2页
第2页 / 共10页
基于proteus仿真的pwm电机调速_第3页
第3页 / 共10页
基于proteus仿真的pwm电机调速_第4页
第4页 / 共10页
基于proteus仿真的pwm电机调速_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《基于proteus仿真的pwm电机调速》由会员分享,可在线阅读,更多相关《基于proteus仿真的pwm电机调速(10页珍藏版)》请在金锄头文库上搜索。

1、直流电机调速资料汇总一使用单片机来控制直流电机的变速,一般采用调节电枢电压的方式,通过单片机控制PWM1,PWM2,产生可变的脉冲,这样电机上的电压也为宽度可变的脉冲电压。C语言代码:#include#define uchar unsigned char#define uint unsigned intsbit K5=P14;sbit K6=P15;sbit PWM1=P10;sbit PWM2=P11;sbit FMQ=P36;uchar ZKB1,ZKB2;void delaynms(uint aa) uchar bb; while(aa-) for(bb=0;bb115;bb+) /1m

2、s基准延时程序 ; void delay500us(void) int j; for(j=0;j57;j+) ; void beep(void) uchar t; for(t=0;t99) ZKB1=1; if(ZKB1100) N=0; if(N=ZKB1) PWM1=0; else PWM1=1; if(N=ZKB2) PWM2=0; else PWM2=1;/显现:电机转速到最高后,也就是N为1或99时,再按一下,就变到99或1,/电机反方向旋转以最高速度二、内容及要求:1、设计一个直流电机调速系统,并用单片机实现连接开关和数码显示并将其值输入直流电机调速系统。2、通过公式及键控实现其直

3、流电机启动、加速、减速和停止等四种形态。目标:(1) CPU为8051芯片;(2) 实验需要4个LED,分别显示启动、加速、减速和停止。(3) 通过按键开关输入不同的值改变脉冲占空比的控制值从而得到不同的频率脉冲,实现脉冲转变为点评,实现调速功能。 PWM EQU 7FH ;PWM赋初始值 OUT EQU P0 ;8个LED灯的接口 INCKEY EQU P1.4 ;K1,PWM值增加键。 DECKEY EQU P1.5 ;K2,PWM值减小键。 BEEP EQU P3.7; ORG 0000H SJMP START ORG 000BH SJMP INTT0 ORG 001BH SJMP IN

4、TT1 ORG 0030H;主程序;定时器0工作在模式1,定时器1工作在模式2。;START: MOV SP,#30H MOV TMOD,#21H MOV TH1,PWM ;脉宽调节 MOV TL1,#00H MOV TH0,#0FCH ; MOV TL0,#066H ;频率调节 SETB EA SETB ET0 SETB ET1 SETB TR0LOOP: MOV A,PWM ; JB INCKEY,LOOP1 ;增加键是否按下? CALL DELAY ;延时去抖动 JB INCKEY,LOOP1 CJNE A,#0FFH,PWMINC ;是否到最大值? CALL BEEP_BL ;是,蜂鸣

5、器报警。 SJMP LOOPPWMINC: INC PWM ;调节脉宽(脉宽减小) SJMP LOOPLOOP1: JB DECKEY,LOOP2 ;减小键是否按下? CALL DELAY ;延时去抖动 JB DECKEY,LOOP2 CJNE A,#02H,PWMDEC ;是否到最小值? CALL BEEP_BL ;是,蜂鸣器报警。 SJMP LOOPPWMDEC: DEC PWM ;调节脉宽(脉宽增加)LOOP2: SJMP LOOP;T0中断服务子程序 (频率);控制定时器1中断;INTT0: CLR TR1 MOV TH0,#0FCH ;1ms延时常数 MOV TL0,#066H ;频

6、率调节 MOV TH1,PWM SETB TR1 MOV OUT,#00H ;启动输出 RETI;T1中断服务子程序 (脉宽) ;INTT1: CLR TR1 ;脉宽调节结束 MOV OUT,#0FFH ;结束输出 RETI;10ms延时子程序;DELAY: MOV R6,#50DELAY1: MOV R7,#100 DJNZ R7,$ DJNZ R6,DELAY1 RET;-;蜂鸣器响一声子程序;-BEEP_BL: MOV R6,#100 BL1: CALL BL2 CPL BEEP DJNZ R6,BL1 MOV R5,#25 CALL DELAY2 RET BL2: MOV R7,#18

7、0 BL3: NOP DJNZ R7,BL3 RET DELAY2: ;延时R510MS MOV R6,#50 BL4: MOV R7,#100 BL5: DJNZ R7,BL5 DJNZ R6,BL4 DJNZ R5,DELAY2 RET END */ #include #define uchar unsigned char /* * TH0和TL0是计数器0的高8位和低8位计数器,计算办法:TL0=(65536-C)%256; * * TH0=(65536-C)/256,其中C为所要计数的次数即多长时间产生一次中断;TMOD是计数器* * 工作模式选择,0X01表示选用模式1,它有16位计数器,最大计数脉冲为65536,最长时 * * 间为1ms*65536=65.536ms * */ #define V_TH0 0XFF #define V_TL0 0XF6 #define V_TMOD 0X01 void init_sys(void); /*系统初始化函数*/ void Delay5Ms(void); unsi

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号