51单片机课程设计

2019-03-24 17:58发布

直流电机调速
1,PWM占空比调速
2,用八个开关k0~k7控制电机的转向,及转速
k7=1,电机顺时针转动
k7=0,逆时针转动
k0到k6控制转速,k6=1,转速最快
k0=1,转速最慢
当k6=k5=k4=k3=k2=k1=k0=0时,电机停转
跪求试验程序(汇编)和电路原理图

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
7条回答
ywlzh
2019-03-25 06:26
对于lz的问题,其实不难设计,51单片机,直流电机,8个按键或者开关,外设不多,看了一下,整个程序的重点就在PWM占空比调速和电机的正反转。首先对于电机的正反转电路的设计不难,单片机的IO口不就可以输出高低电平吗?假设引出P1.0和P1.1接在电机上,
set p1.0
clr p1.1 (正转)
set p1.0
clr p1.1(反转)
然而51单片机的IO的输出能力不强,但是可以把IO口作为驱动,在IO口与电机之间加上三极管,使电机能够接通外部电源,正转clr p1.1,另一个引脚输出PWM,便可调速;反转clr p1.0,另一引脚输出PWM,便可调速。
之后便是PWM的问题,所谓PWM,基本意思不用多说,占空比的改变其实很简单,使之周期成为一个定值,假如这个定值用Z来代替,X代替高电平的延时参数,Y代替低电平的延时参数,时刻满足X+Y=Z不就行啦!
至于X与Y的值可以设成8:2,7:3,6:4,5:5,4:6,3:7,2:8等等不就实现了占空比的改变了吗。
比如正转:
  loop:clr p1.1
            set p1.0
            mov r3,x   ;  r3可以作为延时函数的参数
       call delay
            clr  p1.0
            mov r3,y
            call delay
通过定时器定时查按键的状态,来改变正反转和X,Y的值就可以了,至于这些值怎么存,可以在程序一开始就就可以开辟一块区域:
  org 0000h
   jmp  strat
   org  0070h
strat:.............
        ............
         ........
其中除了中断区不用,还有很大一片可以给你使用。
说的很直白了,程序就不用写了,懂得思路,程序也就能写了
            jmp  loop1

一周热门 更多>