单片机定时问题:亮100ms、灭300ms

使用6MHz晶振及定时计数器1,通过P1.0口控制发光二极管实现亮100ms、灭300ms的周期性闪烁。采用汇编语言编程,经编译及仿真验证,程序运行正常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

6MHz晶振,用定时计数器1,采用中断方式,通过P1.0让一个发光二极管亮100ms、灭300ms,周而复始。
汇编编程实现。

悬赏分:20 - 解决时间:2010-1-10 13:14
;----------------------------------
最佳答案:

;下列程序,经过编译、仿真,符合要求:

    ORG  0000H
    SJMP START
    ORG  000BH
    SJMP T0_INT
START:
    MOV  TMOD, #01H
    MOV  TH0, #03CH
    MOV  TL0, #0B0H   ;100ms@6MHz
    SETB TR0
    SETB ET0
    SETB EA
    MOV  R2, #4
    CLR  P1.0
    SJMP $            ;设置结束,原地转移,等待中断
T0_INT:
    MOV  TH0, #03CH
    MOV  TL0, #0B0H   ;100ms@6MHz
    SETB P1.0         ;100ms就上升为高电平
    DJNZ R2, T0_END   ;不够四次,退出中断
    MOV  R2, #4
    CLR  P1.0         ;每中断四次,输出一次低电平
T0_END:
    RETI

END
;----------------------------------
回答者:   做而论道 - 十二级   2010-1-10 10:37
提问者对于答案的评价:非常感谢!!
原文网址:http://zhidao.baidu.com/question/132749703.html
;----------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值