×
单片机 > 单片机程序设计 > 详情

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

发布时间:2020-08-26 发布时间:
|

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

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

问题补充:晶振是6MHz。

;=================================================
最佳答案:

;下列程序,经过编译、仿真,符合要求。
;-------------------------------------
    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字节 




『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
基于arm的指纹识别门禁系统是如何设计的