作者kittysan (季罗桑)
看板ASM
标题[问题] 8051 输出方波
时间Thu Feb 24 13:40:05 2011
大家好 我是正在学习8051的新手
我想请教各位版友
我买了一个市售的8051模组 机械周期为1微秒
我要使用这个模组输出一个频率为3Hz且可调整Duty Cycle的方波
频率3Hz周期为1/f=333333.333微秒
若duty cycle值为0.2% 则方波on的时间为333333.333*0.2%=666.666微秒
方波off的时间为333333.333-666.666=332666.667微秒
所以on时间须执行667次机械周期
off时间须执行332666次机械周期而,我程式理设定执行300000微秒)
因为计时/计数器最大的计数值仅有2^16=65536
所以我设计让off每次跑10000微秒 总共跑30次
只是写完总是觉得怪怪的
以下是我的程式码 恳请各位版友帮帮我看哪里有问题!
ORG 00H
SJMP START
START:
MOV TMOD,#01H
SETB TR0
LOOP:
CLR P1.0 ;on 的周期开始
MOV TH0,#>(65536-667)
MOV TL0,#<(65536-667)
S1: JBC TF0,S3
SJMP S1
S3: R6,#30
pint0:
CPL P1.0 ;off 的周期开始
CLR TF0
MOV TH0,#>(65536-10000)
MOV TL0,#<(65536-10000)
S2: JBC TF0,S4
S4:
CLR TF0
DJNZ R6,pint0
SJMP LOOP
END
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.153.86
※ 编辑: kittysan 来自: 140.113.253.119 (02/24 17:34)
1F:推 ksmrt0123:pwm 程式写法可先参考W大的旧文 #1BZWffSY 02/24 17:25
※ 编辑: kittysan 来自: 140.113.253.119 (02/24 17:55)