打印

接下去的程序该如何编?

[复制链接]
1829|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楼的朋友!

使用特权

评论回复
5
chen3bing| | 2008-12-10 16:34 | 只看该作者

可以定义一个变量寄存器

使用特权

评论回复
6
birenai| | 2008-12-10 17:42 | 只看该作者

人家初学,不应打击

使用特权

评论回复
7
耕在此行| | 2008-12-10 18:42 | 只看该作者

人家初学,不应打击

所以要找师傅嘛.
或者看看人家的一个小产品的完整程序.

使用特权

评论回复
8
高个| | 2008-12-10 19:42 | 只看该作者

我是这么想的,你参考下

你可以用一个引脚设定成一个外部输入端,两个中断口作为另外两个外部输入端。这样就有三个了。在每个中断的都加一个读引脚的语句就可以了

使用特权

评论回复
9
benxiaoyu4| | 2008-12-10 22:33 | 只看该作者

我也来掺和

首先你应该知道直流电动机怎么调速的?是什么直流电动机,一般采用PWM调速。
另你所说的三档调速是怎么输入??为什么要用外部中断。用来判断三个状态?可以用普通IO查询的方法就可以实现了。希望能对有所帮助,我也很菜!

使用特权

评论回复
10
弟儿|  楼主 | 2008-12-11 16:57 | 只看该作者

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

使用特权

评论回复
11
弟儿|  楼主 | 2008-12-11 18:15 | 只看该作者

希望大家再次帮助!

我们的课题是:利用51单片机实现直流电机调速,我想利用按键的形式实现直流调速,我是新手,不太懂编程的思路,我想利用改变占空比来实现直流调速
,如果我想实现多级调速该如何实现?希望大家给点编程的思路!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

24

帖子

0

粉丝