找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1104|回复: 2
打印 上一主题 下一主题
收起左侧

这个在单片机p1.1接一个了led怎么不闪烁?

[复制链接]
跳转到指定楼层
楼主
ID:661998 发表于 2019-12-11 22:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
假定P1.0每秒产生一个机器周期的正脉冲,P1.1每分钟产生一个机器周期的正脉冲。
单片机是89C51。
ORG    0000H
       AJMP   START
       ORG    000BH              ;定时器0中断入口.
       AJMP   SERVE
START:
       MOV TMOD, #01H           ;T0定时方式0
       MOV TH0, #3CH            ;定时
       MOV TL0, #0B0H
       SETB TR0                  ;启动.
       SETB ET0                  ;允许中断.
       SETB EA
       MOV R2, #20             ;秒.
       MOV R3, #60             ;分.
       CLR P1.0                 ;开始时,输出低电平.
       CLR P1.1
       SJMP $                   ;等待中断.
;--------------------------------------------
SERVE:                           ;50ms执行一次本中断程序.
       MOV TL0, #0B0H           ;重新送入初始值.
       MOV TH0, #3CH            ;定时
       DJNZ R2, T0_END          ;不到20次转移.
       SETB P1.0                 ;到了20次,就是到了1秒,输出正脉冲.
       CLR P1.0                 ;马上就恢复为0,这就是1个机器周期.
       MOV R2, #20
       DJNZ R3, T0_END          ;不到60秒转移.
       SETB P1.1                 ;到了60秒,输出正脉冲.
       CLR P1.1                 ;马上就恢复为0,这就是1个机器周期.
       MOV R3, #60
T0_END:
       RETI
;--------------------------------------------
END

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:235200 发表于 2019-12-12 00:24 | 只看该作者
中断程序应该改一下,1个机器大约1us左右,无法点亮LED
SERVE:                           ;50ms执行一次本中断程序.
       MOV TL0, #0B0H           ;重新送入初始值.
       MOV TH0, #3CH            ;定时
       DJNZ R2, T0_END          ;不到20次转移.
       CPL      P1.0                 ;到了20次,1秒钟翻转一次
       MOV R2, #20
       DJNZ R3, T0_END          ;不到60秒转移.
       CPL      P1.1                 ;到了60秒,LED亮灭翻转
       MOV R3, #60
       MOV R2,#20
T0_END:
       RETI
回复

使用道具 举报

板凳
ID:10193 发表于 2019-12-12 08:01 | 只看该作者
输出高电平时间太短了,微妙级,LED估计都反映不过来,而且人眼也看不到
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表