找回密码
 立即注册

QQ登录

只需一步,快速开始

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

求一汇编程序,急用

[复制链接]
跳转到指定楼层
楼主
ID:37123 发表于 2012-3-26 14:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

有八盏灯,全亮,每隔五秒灭一盏

希望有大侠帮忙解决一下

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

使用道具 举报

沙发
ID:37123 发表于 2012-4-12 11:12 | 只看该作者

顶一下,希望版主能看到帮忙解决一下

回复

使用道具 举报

板凳
ID:34305 发表于 2012-4-21 19:48 | 只看该作者

          ORG      0000H
          CLR      P1.4
START:    MOV      A,#0H             ;全部点亮
          MOV      P0,A             
          LCALL    DEL_5S
          MOV      A,#00000001B      ;灭一盏灯
          MOV      P0,A
          LCALL    DEL_5S
          MOV      A,#00000011B      ;灭两盏灯
          MOV      P0,A
          LCALL    DEL_5S
          MOV      A,#00000111B      ;灭三盏灯
          MOV      P0,A
          LCALL    DEL_5S
          MOV      A,#00001111B      ;灭四盏灯
          MOV      P0,A
          LCALL    DEL_5S
          MOV      A,#00011111B      ;灭五盏灯
          MOV      P0,A
          LCALL    DEL_5S
          MOV      A,#00111111B      ;灭六盏灯
          MOV      P0,A
          LCALL    DEL_5S
          MOV      A,#01111111B      ;灭七盏灯
          MOV      P0,A
          LCALL    DEL_5S
          MOV      A,#11111111B      ;灭八盏灯
          MOV      P0,A
          LCALL    DEL_5S
          SJMP     START             ;循环
;-----------------------------------------------------------------   
          ORG    1000H         ;5秒延时程序
DEL_5S:   MOV   TMOD,#10H      ;定时器1、方式1、定时状态
          MOV   TL1,#0B0H
          MOV   TH1,#3CH       ;送50ms定时初值
          MOV   R2,#0AH        ;设置软件计数器,使10*5ms=0.5s
          MOV   R3,#0AH        ;设置软件计数器,使10*0.5s=5s
          SETB  TR1            ;启动定时器1
LOOP:     JNB   TF1,$          ;判断基时是否到
          MOV   TL1,#0B0H
          MOV   TH1,#3CH       ;再赋初值
          CLR   TF1            ;清溢出标志
          DJNZ  R2,LOOP        ;判断0.5s是否到
          MOV   R2,#0AH
          DJNZ  R3,LOOP        ;判断5s是否到
          CLR   TR1            ;关闭定时器1
          RET                  ;定时结束

 

 

 

 

此程序根据51hei电路板线路编成,仅供参考

回复

使用道具 举报

地板
ID:34305 发表于 2012-4-21 20:09 | 只看该作者

          ORG      0000H
          CLR      P1.4
          MOV      R4,#00H
START:    MOV      A,#0H             ;全部点亮
          MOV      P0,A             
          LCALL    DEL_5S
          MOV      DPTR,#TAB
LOOP1:    MOV      A,R4
          MOVC     A,@A+DPTR
          MOV      P0,A
          LCALL    DEL_5S
          INC      R4                ;灭n盏
          CJNE     R4,#8H,LOOP1
          MOV      R4,#0H
          SJMP     START             ;循环
;-----------------------------------------------------------------   
          ORG    1000H         ;5秒延时程序
DEL_5S:   MOV   TMOD,#10H      ;定时器1、方式1、定时状态
          MOV   TL1,#0B0H
          MOV   TH1,#3CH       ;送50ms定时初值
          MOV   R2,#0AH        ;设置软件计数器,使10*5ms=0.5s
          MOV   R3,#0AH        ;设置软件计数器,使10*0.5s=5s
          SETB  TR1            ;启动定时器1
LOOP:     JNB   TF1,$          ;判断基时是否到
          MOV   TL1,#0B0H
          MOV   TH1,#3CH       ;再赋初值
          CLR   TF1            ;清溢出标志
          DJNZ  R2,LOOP        ;判断0.5s是否到
          MOV   R2,#0AH
          DJNZ  R3,LOOP        ;判断5s是否到
          CLR   TR1            ;关闭定时器1
          RET                  ;定时结束
;---------------------------------------------------------------
TAB:      DB  01H,03H,07H,0FH
          DB  1FH,3FH,7FH,0FFH  

 

 

 

 

这个看起简洁些

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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