接下去的程序该如何编?

[复制链接]
2811|10
 楼主| 弟儿 发表于 2008-12-9 14:54 | 显示全部楼层 |阅读模式
我想利用AT89C51实现直流电机调速,我不知道接下去的程序该如何编?希望大家给点编程的思路!

使用定时器0以工作方式2产生周期为100us的连续正方波脉冲,晶振频率为6MHZ
机器周期为2us,以TH0作为重装载的预置寄存器,TL0作为8位计数器,假使计数初值为X,则
求出X=231D=0E7H
TH0=0E7H     TL0=0E7H
程序:
ORG    0000H
AJMP   MAIN
ORG    0003H
AJMP   EXINT0                转向外部中断0
MAIN:MOV    TCON,  #01H      脉冲触发方式
     MOV    IE,     #83H     开放外部中断0,定时器0,其他中断禁止
     MOV    IP,     #01H     外部中断0为高优先级,其余为低优先级
     MOV    TOMD, #02H       设置定时器0为方式2
     MOV    TH0,   #0E7H      保存计数初值
     MOV    TL0,   #0E7H      预置计数初值
     SETB    TR0              启动定时
EXINT0:   JBC     TF0,   LOOP 查询计数溢出
          AJMP    EXINT0
LOOP:     CPL      P1.0       从P1.0口输出方波
          AJMP    EXINT0      重复循环
我想实现3级调速(低速档,中速档和高速档),得开3个中断吗?可是只有   和 INT0 和 INT1 两个外部中断,如何编程?
耕在此行 发表于 2008-12-9 19:50 | 显示全部楼层

呵呵 找个师傅吧

你的水平不是一般的菜................
mymystery 发表于 2008-12-10 08:51 | 显示全部楼层

我也很菜看不懂 找个师傅算鸟

 楼主| 弟儿 发表于 2008-12-10 16:17 | 显示全部楼层

依然很感谢!2.3楼的朋友!

chen3bing 发表于 2008-12-10 16:34 | 显示全部楼层

可以定义一个变量寄存器

birenai 发表于 2008-12-10 17:42 | 显示全部楼层

人家初学,不应打击

耕在此行 发表于 2008-12-10 18:42 | 显示全部楼层

人家初学,不应打击

所以要找师傅嘛.
或者看看人家的一个小产品的完整程序.
高个 发表于 2008-12-10 19:42 | 显示全部楼层

我是这么想的,你参考下

你可以用一个引脚设定成一个外部输入端,两个中断口作为另外两个外部输入端。这样就有三个了。在每个中断的都加一个读引脚的语句就可以了
benxiaoyu4 发表于 2008-12-10 22:33 | 显示全部楼层

我也来掺和

首先你应该知道直流电动机怎么调速的?是什么直流电动机,一般采用PWM调速。
另你所说的三档调速是怎么输入??为什么要用外部中断。用来判断三个状态?可以用普通IO查询的方法就可以实现了。希望能对有所帮助,我也很菜!
 楼主| 弟儿 发表于 2008-12-11 16:57 | 显示全部楼层

非常感谢各位,我会参考你们的思路的!

 楼主| 弟儿 发表于 2008-12-11 18:15 | 显示全部楼层

希望大家再次帮助!

我们的课题是:利用51单片机实现直流电机调速,我想利用按键的形式实现直流调速,我是新手,不太懂编程的思路,我想利用改变占空比来实现直流调速
,如果我想实现多级调速该如何实现?希望大家给点编程的思路!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

24

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部