单片机控制电机转速试验(PWM)
实验内容:通过ADC0809采样0-5V的电压值(由电位器产生),根据采样值产生占空比不同的脉冲信号,控制电机转速。PWM提送苏为单极性方式。PWMIN为PWM脉冲信号输...
实验内容:通过ADC0809采样0-5V的电压值(由电位器产生),根据采样值产生占空比不同的脉冲信号,控制电机转速。PWM提送苏为单极性方式。PWM IN 为PWM脉冲信号输入端。ADC0908模块使用时先调整模块上10K电位器VREF。ADJ,将参考电压调至5V。调整电位器A.ADJ可得到0-5V的模拟电压,供ADC0809采样使用。预测实验结果为:电机的转速随电位器输出电压的改变而改变求单片机程序,不要C语言的
展开
3个回答
2013-12-31
展开全部
一. 带注释软件清单
;==========使用单元设定==========
//..................................使用单元设定
DIS0 EQU 30H
DIS1 EQU 31H
DIS2 EQU 32H
DIS3 EQU 33H
LED EQU 34H
TM1 EQU 35H;
TM2 EQU 36H;
INTV BIT 37H;中断标志
THX EQU 38H;定时脉宽高电平
CISHU EQU 39H
FIRST BIT 41H; 检测加减是否第一次按下
SET1 BIT 42H
SETZ0 EQU 43H;设定当前设定值SETZ0~SETZ3
SETZ1 EQU 44H
SETZ2 EQU 45H
SETZ3 EQU 46H
TM3 EQU 47H; 循环次数单元
JIA1 BIT 48H; 单步加标志
LIANJIA BIT 49H; 连加标志
JIAN1 BIT 50H; 单步减标志
LIANJIAN BIT 51H; 连减标志
SETDATA EQU 52H; 设定速度暂存单元
REALDATA EQU 53H; 实测速度暂存单元
YK1 EQU 54H; 上次输出数据暂存单元
KP EQU 56H;比例系数
KI EQU 57H;积分系数
EK EQU 58H;设定值和实测值的差值
EK1 EQU 59H;上次的EK值
OUTPUT EQU 60H;
EK2 EQU 61H;EK-EK1的值
ONPRESS BIT 62H;判定ENTER键是否弹起标志
TMS EQU 63H;闪烁时长
SHAN BIT 64H; 闪烁标志
;==========主程序==========
ORG 0000H
SJMP MAIN
ORG 0013H;外部中断1入口地址
AJMP INX1
ORG 001BH;定时器T1中断入口地址
AJMP ITX1
ORG 0070H
MAIN: MOV SP,#70H;设定堆栈指针入口地址
ACALL INIT;调用初始化程序
M1: JB SET1,FLASH;当前为设置状态则跳到闪烁显示模块
ACALL DISP; 否则为一般显示
SJMP NEXTT
FLASH: ACALL DISP1
NEXTT: ACALL DELAY;调用按键延时程序
ACALL M2;调用按键程序
DJNZ CISHU,M1;第隔100MS刷新一下实测值
MOV CISHU,#20
ACALL CONTROL;调用控制调速模块
SJMP M1
//==========初始化模块==========
INIT:MOV DPTR,#0FD00H ;设置PA、PB为输出口,PC为输入口
MOV A,#03H
MOVX @DPTR,A
MOV TMOD,#21H ;定时器/计数器T1为方式2,定时器/计数器T0为方式1
MOV TL0,#00H ; 定时器/计数器T0赋初值#00H
MOV TH0,#00H
MOV THX,#0BBH ;输出单元赋初值#0BBH,即脉冲高电平宽度
MOV TH1,THX
MOV TL1,THX
SETB TR1 ;启动定时器/计数器T1
SETB TR0 ; 启动定时器/计数器T0
SETB ET1 ;允许定时器/计数器T1溢出中断
SETB EX1 ;允许外部中断1中断
SETB IT1 ;选择边沿触发
SETB EA ;CPU开中断
SETB 07H;
SETB SHAN
CLR 11H;检测是否成功
MOV LED,#7FH
;==========使用单元设定==========
//..................................使用单元设定
DIS0 EQU 30H
DIS1 EQU 31H
DIS2 EQU 32H
DIS3 EQU 33H
LED EQU 34H
TM1 EQU 35H;
TM2 EQU 36H;
INTV BIT 37H;中断标志
THX EQU 38H;定时脉宽高电平
CISHU EQU 39H
FIRST BIT 41H; 检测加减是否第一次按下
SET1 BIT 42H
SETZ0 EQU 43H;设定当前设定值SETZ0~SETZ3
SETZ1 EQU 44H
SETZ2 EQU 45H
SETZ3 EQU 46H
TM3 EQU 47H; 循环次数单元
JIA1 BIT 48H; 单步加标志
LIANJIA BIT 49H; 连加标志
JIAN1 BIT 50H; 单步减标志
LIANJIAN BIT 51H; 连减标志
SETDATA EQU 52H; 设定速度暂存单元
REALDATA EQU 53H; 实测速度暂存单元
YK1 EQU 54H; 上次输出数据暂存单元
KP EQU 56H;比例系数
KI EQU 57H;积分系数
EK EQU 58H;设定值和实测值的差值
EK1 EQU 59H;上次的EK值
OUTPUT EQU 60H;
EK2 EQU 61H;EK-EK1的值
ONPRESS BIT 62H;判定ENTER键是否弹起标志
TMS EQU 63H;闪烁时长
SHAN BIT 64H; 闪烁标志
;==========主程序==========
ORG 0000H
SJMP MAIN
ORG 0013H;外部中断1入口地址
AJMP INX1
ORG 001BH;定时器T1中断入口地址
AJMP ITX1
ORG 0070H
MAIN: MOV SP,#70H;设定堆栈指针入口地址
ACALL INIT;调用初始化程序
M1: JB SET1,FLASH;当前为设置状态则跳到闪烁显示模块
ACALL DISP; 否则为一般显示
SJMP NEXTT
FLASH: ACALL DISP1
NEXTT: ACALL DELAY;调用按键延时程序
ACALL M2;调用按键程序
DJNZ CISHU,M1;第隔100MS刷新一下实测值
MOV CISHU,#20
ACALL CONTROL;调用控制调速模块
SJMP M1
//==========初始化模块==========
INIT:MOV DPTR,#0FD00H ;设置PA、PB为输出口,PC为输入口
MOV A,#03H
MOVX @DPTR,A
MOV TMOD,#21H ;定时器/计数器T1为方式2,定时器/计数器T0为方式1
MOV TL0,#00H ; 定时器/计数器T0赋初值#00H
MOV TH0,#00H
MOV THX,#0BBH ;输出单元赋初值#0BBH,即脉冲高电平宽度
MOV TH1,THX
MOV TL1,THX
SETB TR1 ;启动定时器/计数器T1
SETB TR0 ; 启动定时器/计数器T0
SETB ET1 ;允许定时器/计数器T1溢出中断
SETB EX1 ;允许外部中断1中断
SETB IT1 ;选择边沿触发
SETB EA ;CPU开中断
SETB 07H;
SETB SHAN
CLR 11H;检测是否成功
MOV LED,#7FH
推荐于2016-07-01 · 知道合伙人教育行家
关注
展开全部
单片机控制电机转速:
如果只有一个转向的话就比较容易了,如果要有正反两个转向,就需要一个H桥,并且两个I/O口输出高低电频控制。
比如用P1口的P1.0,P1.1,P1.2三个I/O口接按键,P3.4口接电频输出,编个定时程序及按键程序,如果是快(全速运行),那就P3.4口直接输出高电频“1”;中(50%),那就让P3.4口0—50ms输出高电频“1”,50ms—100ms输出低电频“0”,后面就一直以50ms进行一次取反;慢(就用10%吧),0—40ns输出高电频“1”,41ns—400ns输出低电频“0”,这样为一个周期,后面就一直循环吧。
如果按键P1.0按下,执行方式1,全速运行,否则以默认方式运行;按键P1.1按下,执行方式2,改变占空比,以50%的速度运行,否则,不作改变;按键P1.2按下,执行方式3,改变占空比,以10%的速度运行,否则,不作改变。
如果只有一个转向的话就比较容易了,如果要有正反两个转向,就需要一个H桥,并且两个I/O口输出高低电频控制。
比如用P1口的P1.0,P1.1,P1.2三个I/O口接按键,P3.4口接电频输出,编个定时程序及按键程序,如果是快(全速运行),那就P3.4口直接输出高电频“1”;中(50%),那就让P3.4口0—50ms输出高电频“1”,50ms—100ms输出低电频“0”,后面就一直以50ms进行一次取反;慢(就用10%吧),0—40ns输出高电频“1”,41ns—400ns输出低电频“0”,这样为一个周期,后面就一直循环吧。
如果按键P1.0按下,执行方式1,全速运行,否则以默认方式运行;按键P1.1按下,执行方式2,改变占空比,以50%的速度运行,否则,不作改变;按键P1.2按下,执行方式3,改变占空比,以10%的速度运行,否则,不作改变。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-12-31
展开全部
啊 啊 啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询