请大家过来看看我的毕业设计出了什么问题

2019-03-24 19:31发布

7.png 我现在正在做毕业设计,但是遇到了点问题 请大家过来帮忙看下 下面是我的程序 ORG  0000H
LJMP MAIN
ORG     0003H    ;外部中断0入口(夜间模式)
LJMP NIGHT
ORG     0013H    ;外部中断1入口(紧急模式)
LJMP DANGER
ORG     0100H
MAIN:            ;主程序实现正常工作状态
SETB EA                  ;开总中断
SETB EX0           ;开外部中断0
CLR     PX0              ;中断0低优先级
CLR     IT0           ;电平触发
SETB EX1           ;开外部中断1
SETB PX1           ;中断1高优先级
CLR     IT1           ;电平触发
MOV     60H,#03H      ;黄灯闪烁次数
MOV     R0,#00H       ; 
MOV     P2,R0       ;灯全灭
SETB P2.7       ;南北绿灯亮
SETB P2.1       ;东西红灯亮
ACALL DISPLAY       ;显示倒计时
SETB    P1.0
SETB    P1.1
CLR     P2.7          ;南北绿灯灭
CLR     P2.1    ;东西红灯灭
SETB P2.6       ;南北黄灯亮
ACALL FLASH1       ;南北方向黄灯闪烁
CLR     P2.6          ;南北黄灯灭
CLR     P2.1       ;东西红灯灭
SETB P2.3       ;东西绿灯亮
SETB P2.5       ;南北红灯亮
ACALL DISPLAY       ;显示倒计时
SETB    P1.0
SETB    P1.1
CLR     P2.3       ;东西绿灯灭
CLR     P2.5    ;南北红灯灭
SETB P2.2       ;东西黄灯亮
ACALL   FLASH2       ;东西方向黄灯灯闪烁
CLR     P2.2       ;东西黄灯灭
LJMP MAIN       ;循环执行正常模式
DISPLAY:
    MOV 30H,#30
L1: MOV A,30H
    MOV B,#10
    DIV AB
    MOV DPTR,#TABLE
    MOV R0,A
    MOV R1,B
    MOV R2,#10              ;增加循环用于延时。
K1: SETB P1.1
    CLR P1.0
    MOVC A,@A+DPTR
    MOV P0,A
    LCALL DEL
    MOV DPTR,#TABLE
    SETB P1.0
    CLR  P1.1
    MOV A,R1
    MOVC A,@A+DPTR
    MOV P0,A
    MOV A,R0
    LCALL DEL
    DJNZ R2,K1              ;判断循环次数到了没  
    DJNZ 30H, L1         ;判断25减完了没有
    RET
DISPLAY1:
    MOV 31H,#9
L2: MOV A,31H
    MOV B,#10
    DIV AB
    MOV DPTR,#TABLE
    MOV R0,A
    MOV R1,B
    MOV R2,#10              ;增加循环用于延时。
K2: SETB P1.1
    CLR P1.0
    MOVC A,@A+DPTR
    MOV P0,A
    LCALL DEL
    MOV DPTR,#TABLE
    SETB P1.0
    CLR  P1.1
    MOV A,R1
    MOVC A,@A+DPTR
    MOV P0,A
    MOV A,R0
    LCALL DEL
    DJNZ R2,K2              ;判断循环次数到了没  
    DJNZ 31H, L2         ;判断30S减完了没有
    RET
DEL: MOV R5,#5
DD2: MOV R6,#20
DD1: MOV R7,#248
     DJNZ R7,$
     DJNZ R6,DD1
     DJNZ R5,DD2
  RET
FLASH1: SETB P2.6  ;南北方向黄灯闪烁子程序
        SETB    P2.1  ;东西方向红灯闪烁子程序
     ACALL DELAY1  ;短延时1
      CLR     P2.6     ;南北方向黄灯灭
  CLR     P2.1  ;东西方向红灯灭
     ACALL DELAY1  ;短延时1
     DJNZ 60h,FLASH1 ;循环3次
     MOV     60h,#3     ;重装循环次数
     RET
FLASH2: SETB P2.2  ;东西方向黄灯闪烁子程序
        SETB    P2.5  ;南北方向红灯闪烁子程序
     ACALL DELAY1  ;短延时1
     CLR     P2.2  ;东西方向黄灯灭
  CLR     P2.5  ;南北方向红灯灭
     ACALL DELAY1  ;短延时1
     DJNZ 60h,FLASH2 ;循环3次
     MOV     60h,#3  ;重装循环次数
     RET

DELAY1: MOV  R2,#10  ;短延时1子程序
DEL8: MOV  R3,#100
DEL7: MOV  R4,#75
DEL6: NOP
       NOP
       DJNZ  R4,DEL6
       DJNZ  R3,DEL7
       DJNZ  R2,DEL8
       RET DELAY2: MOV  R2,#1  ;短延时2子程序
D8:   MOV  R3,#10
D7:     MOV  R4,#10
D6:     NOP
       NOP
       DJNZ  R4,D6
       DJNZ  R3,D7
       DJNZ  R2,D8
       RET NIGHT:  MOV     R0,#00H      ;夜间模式
        MOV     P2,R0        ;灯全灭
        SETB    P2.7         ;南北绿灯亮
        SETB    P2.1         ;东西红灯亮
        ACALL   DISPLAY1     ;显示倒计时
  SETB    P1.0
        SETB    P1.1
        CLR     P2.7         ;南北绿灯灭
  CLR     P2.1   ;东西红灯灭
        SETB    P2.6         ;南北黄灯亮
        ACALL FLASH1      ;南北方向黄灯闪烁
        CLR     P2.6         ;南北黄灯灭
        CLR     P2.1         ;东西红灯灭
        SETB    P2.3         ;东西绿灯亮
        SETB    P2.5         ;南北红灯亮
        ACALL   DISPLAY1     ;显示倒计时
  SETB    P1.0
        SETB    P1.1
        CLR     P2.3         ;东西绿灯灭
  CLR     P2.5   ;南北红灯灭
        SETB    P2.2         ;东西黄灯亮
        ACALL FLASH2      ;东西方向黄灯闪烁
        CLR     P2.2         ;东西黄灯灭
     LJMP NIGHT   DANGER: MOV     P2,#00H   ;紧急状态通行子程序
        SETB    P1.0
        SETB    P1.1
     SETB P2.5  ;南北红灯亮
     SETB P2.1  ;东西红灯亮
     CALL DELAY2  ;短延时2
     SJMP DANGER  ;紧急状态循环  
TABLE:  DB 3FH ,06H, 5BH ,4FH ,66H ,6DH, 7DH ,07H ,7FH, 6FH
        END
  在proteus模拟的时候是没问题的 但是在做硬件的时候无论怎么改程序发光二极管却一直亮,而且那个数码管一直没反应不亮,数码管用的是共阴的,led灯也是共阴接法,是什么问题呢 补充一句,我模拟的时候是at89c51,但是硬件用的是stc89c52 keil.rar (20.8 KB, 下载次数: 6) 2011-12-10 16:26 上传 点击文件名下载附件 proteus.rar (96.74 KB, 下载次数: 8) 2011-12-10 16:26 上传 点击文件名下载附件 [ 本帖最后由 mrfantexi 于 2011-12-10 16:26 编辑 ] 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
cat3902982
1楼-- · 2019-03-26 00:25
你的灯的话 最好是 VCC - R - LED - IO口 这样的话 应该不会出现你这样的问题。
孤獨の快樂
2楼-- · 2019-03-26 05:21
 精彩回答 2  元偷偷看……
wzjhuohua
3楼-- · 2019-03-26 09:17
红 {MOD}的最低,蓝 {MOD}最高,绿 {MOD}在中间,我还是同意8楼的看法采用VCC - R - LED - IO这样的方式比较好
mrfantexi
4楼-- · 2019-03-26 14:35
谢谢,换成8楼那样就解决了,不过现在还有个问题,我的数码管现在也能用了,就是会一直闪烁,我采用的是静态的。
小小白
5楼-- · 2019-03-26 15:02
汇编我也不会啊。。。

一周热门 更多>