EDN首页   博客首页 用户登陆  |  注册

日志档案

发表于 2010/2/9 21:04:28

1

标签: 汇编多功能数码管闪烁  

2010年泉洲市单片机竞赛题

;==============这课要点为中断与多分支===================
;这我凭印象所再做的程序题目2010年1月26日泉洲市赛竞赛题
;我目前没题目要求材料,要等到我进校才能够再拿到
;现在我先发布出来给大家看看
;=======================================================
K1 BIT P1.6
K2 BIT P1.7
K3 BIT P1.4
K4 BIT P1.5
YS1 DATA 30H
YS2 DATA 31H
YS3 DATA 32H
YS4 DATA 33H
YS5 DATA 34H
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP SST0       ;闪烁T0
MAIN:    MOV SP,#80H
         LCALL CSH
LOOP:    LCALL KEY
LOP:     JNB F1,LOOP
         LCALL DFZ
         SJMP LOP

CSH:     MOV P2,#7
         MOV P0,#0C0H
         MOV R2,#0
         SETB EA
         SETB ET0
         MOV TH0,#5EH
         MOV TL0,#0E0H
         MOV TMOD,#01H
         RET
KEY:     JNB K1,FDD
         JNB K2,FDD
         JNB P2,FKE
         JNB K3,FDD
FKE:     RET
FDD:     LCALL D15MS
         JNB K1,M1
         JNB K2,M2
         JNB K3,M3
         RET
M1:      JNB K1,$
         LCALL D15MS
         MOV R3,#51
         SETB TR0
         INC R2
         CJNE R2,#10,TM1
         MOV R2,#0
TM1:     LCALL CB
         MOV P2,#7
         RET
M2:      JNB K2,$
         LCALL D15MS
         MOV R3,#51     ;设置闪烁次数(闪烁时间)
         SETB TR0
         DEC R2
         CJNE R2,#-1,TM2
         MOV R2,#9
TM2:     LCALL CB
         MOV P2,#7
         RET
CB:      MOV DPTR,#TABLE
         MOV A,R2
         MOVC A,@A+DPTR
         MOV P0,A
         RET
M3:      JNB K3,$
         LCALL D15MS
         JB TR0,FM3
         SETB F1
FM3:     RET
DFZ:     MOV A,R2
         MOV B,#2
         MUL AB
         MOV DPTR,#TAB
         JMP @A+DPTR

TAB:     AJMP LED1
         AJMP LED1
         AJMP LED1
         AJMP LED2
         AJMP LED2
         AJMP LED2
         AJMP LED3
         AJMP LED3
         AJMP LED4
         AJMP LED4

LED1:    MOV P2,#0
         LCALL ZY
         RET
LED2:    MOV P2,#0
         LCALL YY
         RET
LED3:    MOV P2,#0
         LCALL DL
         RET
LED4:    MOV P2,#0
         LCALL ZS
         RET
ZY:      MOV A,#0FEH
TZY1:    MOV P0,A
         JNB K4,FD
         LCALL D1S
         RL A
         CJNE A,#0FEH,TZY1
         RET
YY:      MOV A,#7FH
TYY1:    MOV P0,A
         JNB K4,FD
         LCALL D1S
         RR A
         CJNE A,#07FH,TYY1
         RET
DL:      MOV A,#0FEH
TDL1:    MOV P0,A
         JNB K4,FD
         LCALL D1S
         CLR C
         RLC A
         CJNE A,#00H,TDL1
         RET
ZS:      MOV R3,#0
TZS1:    LCALL CB1
         JNB K4,FD
         LCALL D1S
         CJNE R3,#10,TZS1
         RET
CB1:     MOV DPTR,#TABLE
         MOV A,R3
         MOVC A,@A+DPTR
         MOV P0,A
         INC R3
         RET
FD:      LCALL D15MS
         JNB K4,M4
         RET
M4:      JNB K4,$
         LCALL D15MS
         CLR F1
         MOV P0,#89H
         LJMP LOOP

SST0:    MOV TH0,#5EH
         MOV TL0,#0E0H
         JB F0,TSS1
         MOV P0,#0FFH
TSS1:    JNB F0,FH
         LCALL CB
FH:      CPL F0
         DJNZ R3,TFH    ;关闭闪烁
         CLR TR0
         LCALL CB     ;防止P0出现0FFH,使数码管无码
TFH:     RETI
D15MS:   MOV YS1,#30
D1:      MOV YS2,#250
         DJNZ YS2,$
         DJNZ YS1,D1
         RET
D1S:     MOV YS3,#8
D2:      MOV YS4,#250
D3:      MOV YS5,#250
         DJNZ YS5,$
         DJNZ YS4,D3
         DJNZ YS3,D2
         RET
TABLE:
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END

系统分类: 单片机   |   用户分类: 无分类   |   来源: 原创   |   【推荐给朋友】   |   【添加到收藏夹】

阅读(219)  |  评论(2)  |  收藏(0)  |  举报  

投一票您将和博主都有获奖机会!

最新评论

  • hlxldb

    2010/3/7 16:54:45

    泉州?我也是泉州的哦 泉洲市单片机竞赛题?能说说这是一个什么样的竞赛吗?

  • xl85285033

    2010/3/3 22:56:55

    主要是多分支与中断的运用掌握了这两个就可以了!