利用单片机的定时器TIMER_A(TA)中断产生脉冲信号,通过在响应的中断程序中实现步进电机步数和圈数的准确计数,通过PWM实现转速控制。
可以利用P10端口的中断关闭TA中断程序,并推入堆栈,停止电机;P11中断则开启TA中断,堆栈推入程序计器(PC),开启电机。
P31端口输出高电平由PMM8713的U/D端口控制电机的转向;P3.0~P37端口接8279的8个数据接口。
单片机扫描到矩阵键盘有键按下时,利用P2端口的中断设置TA,控制启停、调速和转向等,同时单片机反馈给8279控制LED管显示转速和转向。
扩展资料
1、单片机所接收到控制命令暂存在RXBUFFER中,与存储在片内Flash的中断程序的入口地址相比较,相同就进入中断,实现步进电机的控制。
2、当P10中为高电平时,其内部三极管导通,使电机转动。当P10为低电平时,内部三极管截止,电路断开,电机停止转动。所以在程序中可以利用P10口输出PWM波来控制电机的转速。
参考资料来源:百度百科-单片机
参考资料来源:百度百科-电动机的单片机控制
那就看你做什么咯。转速的直接面向控制设备是 仪表盘。
如果你是做仪表盘,那么转速信号就是从无到有咯,你就需要对转速传感器进行脉冲测量,而且得很清楚,多少脉冲对应多少圈数。
如果你是做一般控制器,那么只要对仪表盘输出的转速信号进行脉冲测量,同样也需知道,多少脉冲对应多少圈数。当然,你也可以直接找转速传感器,直接像仪表盘一样测量。
我这个是用pwm+adc做的
ADC EQU 35H
CLOCK BIT P24 ;定义ADC0808时钟位
ST BIT P25
EOC BIT P26
OE BIT P27
PWM BIT P37
ORG 00H
SJMP START
ORG 0BH
LJMP INT_T0
START: MOV TMOD,#02H ;
MOV TH0,#20
MOV TL0,#00H
MOV IE,#82H
SETB TR0
WAIT: CLR ST
SETB ST
CLR ST ;启动AD转换
JNB EOC,$ ;等待转换结束
SETB OE
MOV ADC,P1 ;读取AD转换结果
CLR OE
SETB PWM ;PWM输出
MOV A,ADC
LCALL DELAY
CLR PWM
MOV A,#255
SUBB A,ADC
LCALL DELAY
SJMP WAIT
INT_T0: CPL CLOCK ;提供ADC0808时钟信号
RETI
DELAY: MOV R6,#1
D1: DJNZ R6,D1
DJNZ ACC,D1
RET
END
以上就是关于单片机如何控制电机转速全部的内容,包括:单片机如何控制电机转速、单片机汽车转速测量怎么做、用51单片机控制直流电动机并测量转速等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)