打印

如何用一个定时器实现输出两种方波

[复制链接]
6824|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xiexi2001|  楼主 | 2009-1-16 15:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我做的程序中有两种模式,一是输出方波占空比为50%,二是输出方波为10%.用一个定时器来实现.在模式一中    MOV     R0,0
模式二中    MOV     R0,1
然后进入中断后我用如下程序来判断输出的方波是哪种
CTC1:
    CLR     EA
    MOV      A,R0        ;定时器1中断服务程序,控制输出方波。
     JNZ      CC
    CPL    P3.0
    MOV    TL1,#78H    ;输出占空比为50%
    MOV     TH1,#0ECH
    SETB     EA
    RETI
CC:     CPL     P3.0         ;输出方波占空比为10% 
     JNB     P3.0,FAN
     MOV     TL1,#18H
     MOV      TH1,#0FCH
    SETB     EA
     RETI
FAN:     MOV      TL1,#0D8H
     MOV     TH1,#0DCH
    SETB     EA
     RETI
只是在实际电路中,第一次可以实现,多转换几次就会停留在输出占空比为10%的状态,不知道为什么,高手指点下.谢了

相关帖子

沙发
ayb_ice| | 2009-1-16 20:10 | 只看该作者

算出两个波形的最小精度

然后作为定时器的定时值,其它自己搞定...

使用特权

评论回复
板凳
李冬发| | 2009-1-17 16:14 | 只看该作者

51有点难度,要是430就方便了。

使用特权

评论回复
地板
ljm810010| | 2009-1-17 21:43 | 只看该作者

R0不宜用作模式标记

R0是通用寄存器,常用于保存中间结果,这里用作模式标记,一不小心就会被修改。
另外要说明一下同一时间只有一路方波输出还是两路同时输出

使用特权

评论回复
5
lyjian| | 2009-1-19 09:44 | 只看该作者

还有方波频率是多少

使用特权

评论回复
6
bjc125| | 2009-1-19 10:53 | 只看该作者

支持2楼

使用特权

评论回复
7
xiexi2001|  楼主 | 2009-1-19 13:02 | 只看该作者

回复

最小精度是什么意思?
不用寄存器的话,其他的好像没什么可以用于模式标记。
在一个时间内,只能有一个方波输出
在两种模式下的方波的频率都是100HZ
谢谢各位了。

使用特权

评论回复
8
刘前辈| | 2009-1-19 13:05 | 只看该作者

2楼是RTX51应用高手。

那还有什么难的?一个定时器,用51输出8个占空比不同的方波也是小菜。

任务1、 P1=!P1;   WAIT2(K_TMO,T1);  
任务2、 P2=!P2;   WAIT2(K_TMO,T2); P2=!P2; WAIT2(K_TMO,9*T2);
.
.
.


还有那本英国人写的书上,说了应用以上技术时怎样避免几个方波同时...即相位相同时,所采用的技巧。现成的C51程序,看看大师怎么做的吧。我们自己一辈子也编写不出来。



使用特权

评论回复
9
xiexi2001|  楼主 | 2009-1-19 15:41 | 只看该作者

你说的我明白,不过我做的程序的主程序在查询另一个端口

你说的那程序的主程序都在执行输出方波了。

使用特权

评论回复
10
刘前辈| | 2009-1-19 16:46 | 只看该作者

差矣。

RTX51的概念是多任务“并发”执行,你的查询端口主程序可以写成任务3或者任务0,这样,3任务并发执行,谁也不影响谁。

操作系统的概念是虚拟多处理器概念。就好像每个任务单独占有一个51处理器一样。你在编写任何一个任务程序的时候,根本不用考虑还有其他任务程序的存在和影响。“我独占处理器,其他任务独占其它虚拟处理器。”结果一切复杂系统的设计都变得简单了。

8051简单么?够咱们研究一辈子。

使用特权

评论回复
11
xiexi2001|  楼主 | 2009-1-19 16:55 | 只看该作者

我用的只是at89s51的而已。

那个我们这没有,呵呵
谢谢了

使用特权

评论回复
12
hotpower| | 2009-1-19 20:06 | 只看该作者

T2自动装载

使用特权

评论回复
13
刘前辈| | 2009-1-20 12:26 | 只看该作者

回11楼:at89s51没用到Keil C51?

Keil C51 支持RTX51实时操作系统。关于Keil C51 的教材上都有介绍。

A51?用不了。  C51难学还是A51难学?

推荐一本书《RTX51实时操作系统源代码解析及应用》

使用特权

评论回复
14
张永标张标| | 2014-1-11 22:28 | 只看该作者
楼主做出来了吗?

使用特权

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

本版积分规则

16

主题

34

帖子

0

粉丝