3164|4

66

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

单片机的应用的问题(紧急!!) [复制链接]

单片机才学没多久,写了个程序,死活有问题,头都大了,请大家帮忙啊!!

是交通灯的,要有P3.0,P3.1显示倒计时的秒数,同时红绿灯亮。并有INT0实现计时加一,INT1减一,T0确认。编写了以下的程序,可是在显示时出现问题,可以倒计时,可是灯不亮(一开始会亮一会)。

ORG     0000H
       AJMP    START
       ORG     0003H              ;外部中断0
       AJMP    KINC               ;
       ORG     000BH              ;T0入口
       AJMP    CLK                ;
       ORG     0013H              ;外部中断1
       AJMP    KDEC               ;
       ORG     001BH              ;T1入口
       AJMP    KENT               ;
       ORG     0030H
START: MOV     SP,#70H            ;重新设置堆栈
       SETB    P3.0               ;
       SETB    P3.5
       CLR     P3.1               ;
       CLR     20H.1              ;
       CLR     20H.0
       MOV     P1,#09H            ;设置初值
       MOV     R4,#50
       ACALL   DELAY              ;延时
       MOV     R5,#50             ;
       MOV     R2,#30             ;
       MOV     50H,#30            ;
       MOV     31H,#0F2H          ;
       MOV     30H,#0FCH          ;
       MOV     TH0,#0B1H
       MOV     TL0,#0E0H
       MOV     TH1,#0FFH
       MOV     TL1,#0FFH
       MOV     IE,#10001111B      ;
       MOV     TMOD,#01010001B    ;
       MOV     TCON,#01010000B    ;
MAIN:      CLR     20H.1              ;  红,绿
           MOV     R0,#21H            ;
STATUS1:   CJNE    R2,#5,L1
           MOV     R0,#11H        ;     红,黄
STATUS2:   CJNE    R2,#0,L1
           MOV     R0,#0CH        ;     绿,红
           MOV     R2,50H         ;
STATUS3:   CJNE    R2,#5,L1
           MOV     R0,#0AH        ;     黄,红
STATUS4:   CJNE    R2,#0,L1
           MOV     R2,50H
           JMP     MAIN           ;
L1:    JB      TR0,L2             ;  判断是否返回入口
       ACALL   CAZI
       JMP     L1
L2:    ACALL   CAZI
       JB      20H.1,MAIN
       CJNE    R3,#21H,L3
       JMP     STATUS1
L3:    ACALL   CAZI
       CJNE    R3,#11H,L4
       JMP     STATUS2
L4:    ACALL   CAZI
       CJNE    R3,#0CH,L5
       JMP     STATUS3
L5:    ACALL   CAZI
       CJNE    R3,#0AH,MAIN
       JMP     STATUS4

CLK:   PUSH    PSW                ;
       PUSH    ACC
       ACALL   CAZI
       MOV     TH0,#0B1H           ;
       MOV     TL0,#0E0H           ;
       DJNZ    R5,RETURN           ;
       MOV     R5,#50              ;
       DEC     R2
RETURN:POP     ACC
       POP     PSW
       RETI
CAZI:  MOV     A,R2                ;
       MOV     B,#10
       DIV     AB
       MOV     52H,A               ;
       ACALL   CHABIAO             ;
       MOV     31H,A               ;
       MOV     A,B
       MOV     51H,B               ;
       ACALL   CHABIAO
       MOV     30H,A               ;
       ACALL   XIANSHI
       RET
CHABIAO:PUSH    PSW                    ;查表程序
        MOV     DPTR,#TAB
        MOVC    A,@A+DPTR
        POP     PSW
        RET
TAB:    DB      3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,1EH,0CH,33H,21H
XIANSHI:MOV    P1,31H                  ;
        CLR     P3.0
        MOV     R4,#5
        ACALL   DELAY                   ;
        SETB    P3.0
        MOV     P1,30H
        CLR     P3.5
        MOV     R4,#5
        ACALL   DELAY                   ;
        SETB    P3.5
        MOV     P1,R0
        CLR     P3.1
        MOV     R4,#5
        ACALL   DELAY                    ;
        SETB    P3.1
        RET
KINC:  MOV     R4,#5                   ;  加一子程序
       ACALL   DELAY
       JB      P3.2,OUT1
       JNB     P3.2,$
       CLR     TR0
       CJNE    R2,#99,K1                ;
       MOV     R2,#0
       MOV     50H,R2
       RETI
K1:    INC     R2
       MOV     50H,R2
       RETI                             ;


KDEC:  MOV     R4,#5                   ;     减一子程序
       ACALL   DELAY
       JB      P3.3,OUT1
       JNB     P3.3,$
       CLR     TR0
       CJNE    R2,#0,K2
       MOV     R2,#99                   ;
       MOV     50H,R2
       RETI
K2:    DEC     R2
       MOV     50H,R2
       RETI
KENT:  MOV     R4,#5                   ;      确认子程序
       ACALL   DELAY
       JB      P3.5,OUT
       JNB     P3.5,$
       JB      20H.0,ALARM2             ;
       JB      TR0,ALARM1               ;
       SETB    TR0
       SETB    20H.1
OUT:   MOV     TH1,#0FFH
       MOV     TL1,#0FFH
OUT1:  RETI
ALARM1: CLR     TR0                     ;
        MOV     45H,R2                  ;
        MOV     46H,R0
        MOV     R0,#25H
        SETB    20H.0
        JMP     OUT
ALARM2: CLR     20H.0                   ;
        SETB    TR0
        MOV     R0,46H
        MOV     R2,45H
        JMP     OUT
DELAY:  MOV     R0,#80
DEL1:   MOV     R6,#123
        NOP
        DJNZ    R6,$                     ;
        DJNZ    R0,DEL1                  ;
        DJNZ    R4,DELAY
        RET
        END

最新回复

同上,,汇编没耐心看,不过你说一开始会亮了,,一会就不亮了,一定是引脚驱动不够,要么就是你自己 程序里又把驱动引脚的数据改回去了,你自己没发现,反正是小毛病,,仔细看下就好 了,要有耐心  详情 回复 发表于 2008-6-21 13:10
点赞 关注

回复
举报

76

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
程序好乱,
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

你不会用C语言写吗?现在看汇编都没耐心了,除非是自己刚刚写的。
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

4
 
建议用c
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

5
 
同上,,汇编没耐心看,不过你说一开始会亮了,,一会就不亮了,一定是引脚驱动不够,要么就是你自己 程序里又把驱动引脚的数据改回去了,你自己没发现,反正是小毛病,,仔细看下就好 了,要有耐心
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表