设计脉宽占空比50%,25%可调的脉冲发生器

单片机实验设计:要求使用8951系列单片机,设计脉宽占空比50%,25%可调的脉冲发生器,周期2秒。

P1.1输出PWM。
P3.3接开关,低电平时占空比50%、高电平时占空比25%。

问题补充:晶振是6MHz。

悬赏分:10 - 解决时间:2010-4-21 08:54
;=================================================
最佳答案:

;下列程序,经过编译、仿真,符合要求。
;-------------------------------------
    ORG  0000H
    JMP  START
    ORG  000BH
    JMP  T0_INT
;-------------------------------------
START:
    MOV  TMOD, #01H
    MOV  TH0, #9EH
    MOV  TL0, #58H       ;50ms@6MHz
    SETB TR0
    SETB ET0
    SETB EA
    MOV  R2, #10
LOOP:
    CLR  PSW.5
    CLR  P1.1            ;输出0,这是一个周期的开始
    JNB  PSW.5, $        ;等待500ms
    CLR  PSW.5
    JNB  PSW.5, $        ;再等待500ms
    CLR  PSW.5
    MOV  C, P3.3         ;输入,如果P3.3为低
    CPL  C
    MOV  P1.1, C         ;就输出高,这就是50%占空比
    JNB  PSW.5, $        ;继续等待500ms
    CLR  PSW.5
    SETB P1.1            ;如果到这里才输出高,就是25%占空比
    JNB  PSW.5, $        ;输出高500ms
    SJMP LOOP
;-------------------------------------
T0_INT:                  ;50ms执行一次
    MOV  TH0, #9EH       ;重新赋初始值
    MOV  TL0, #58H       ;50ms@6MHz
    DJNZ R2, T0_END      ;不到10次,转到退出
;                        ;下列指令都是每隔500ms执行一次
    MOV  R2, #10         ;重新设置
    SETB PSW.5           ;每隔500ms,设置一次1
T0_END:
    RETI
;-------------------------------------
    END
;-------------------------------------
编译后的机器语言,仅仅用了74字节
;=================================================
回答者: 做而论道 - 十三级   2010-4-17 20:55
原文网址:http://z.baidu.com/question/147794910.html
;=================================================

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值