您现在的位置: 主页 > MCU > 单片机技术应用 > 设计脉宽占空比50%,25%可调的脉冲发生器 -
本文所属标签:
为本文创立个标签吧:

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

来源: 网络用户发布,如有版权联系网管删除 2018-09-07 

[导读]
单片机实验设计:要求使用8951系列单片机,设计脉宽占空比50%,25%可调的脉冲发生器,周期2秒。P1.1输出PWM。P3.3接开关,低电平时占空比50%、高电平时占空比25%。问题补充:晶振是6MHz。;============

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

本文引用地址: http://www.21ic.com/app/mcu/201806/764332.htm

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字节




              查看评论 回复



嵌入式交流网主页 > MCU > 单片机技术应用 > 设计脉宽占空比50%,25%可调的脉冲发生器 -
 

"设计脉宽占空比50%,25%可调的脉冲发生器 -"的相关文章

网站地图

围观()