⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 8279.asm

📁 8279汇编驱动程序
💻 ASM
字号:

SH_LEFT DATA 58H
DISP_FLASH DATA 59H
SAVE_FLASH DATA 5AH
FLASH BIT 00H
FLASH1 BIT 01H
NIAN BIT 02H
SHIJIAN BIT 03H
bobao bit 04h
           ORG  0000H
           LJMP  MAIN
           ORG  000BH
           LJMP INTT0
           ORG 0023H
           LJMP URAT
           ORG 0030H
      MAIN:mov sp,#70h
           MOV R0,#7FH
   CLR_RAM:MOV @R0,#00H
           DJNZ R0,CLR_RAM
           MOV @R0,#00H
           clr bobao
           MOV SH_LEFT,#48H
           MOV TMOD,#00000001B
           MOV TH0,#00H
           MOV TL0,#00H
           MOV SCON,#10111000B
           MOV PCON,#10000000B
           MOV IE,#92H
           SETB TR0
           LCALL INIT_8279
	   MOV R0,#40H
           MOV R2,#08H
     MAIN3:MOV @R0,#00H
           INC R0
           DJNZ R2,MAIN3
     MAIN1:JNB FLASH,L1
           setb FLASH1
           MOV R1,SH_LEFT
           MOV SAVE_FLASH,@R1
           MOV @R1,#1AH
        L1:LCALL DISP
           JNB FLASH1,L2
           MOV R1,SH_LEFT
           MOV @R1,SAVE_FLASH
           CLR FLASH1
        L2:LCALL KEY_B
	   CJNE  A,#0FFH,MAIN2
	   AJMP  MAIN1
MAIN2:     CJNE A,#0AH,$+1
           JNC SET_DATE
           MOV R1,SH_LEFT
           MOV   @R1,A
           LJMP  MAIN1
SET_DATE:  CJNE A,#0AH,KEY_BB   ;a键闪烁位左移键
           DEC SH_LEFT
           MOV A,SH_LEFT
           CJNE A,#40H,KEY_AA
           MOV SH_LEFT,#48H
    KEY_AA:LJMP  MAIN1
    KEY_BB:CJNE A,#0BH,KEY_CC   ;b键年月日设置
           SETB NIAN
           CLR SHIJIAN
           MOV SH_LEFT,#47H
           MOV 40H,#01
           MOV 41H,#26
           MOV 42H,53H          ;年设置
           MOV 43H,52H
           MOV 44H,51H          ;星期设置
           MOV 45H,50H
           MOV 46H,4fH          ;月设置
           MOV 47H,4eH
           LJMP  MAIN1
   KEY_CC:CJNE A,#0CH,KEY_DD    ;C键时分秒设置
           CLR NIAN
           SETB SHIJIAN
           MOV 40H,#02
           MOV 41H,#26
           MOV 42H,4dH          ;日设置
           MOV 43H,4cH
           MOV 44H,4bH          ;时设置
           MOV 45H,4aH
           MOV 46H,49H          ;分设置
           MOV 47H,48H
           MOV SH_LEFT,#47H
           LJMP  MAIN1
   KEY_DD:CJNE A,#0DH,KEY_EE      ;D键确定键
           JNB NIAN,KEY_2D
           MOV 53H,42H
           MOV 52H,43H
           MOV 51H,44H
           MOV 50H,45H
           MOV 4fH,46H
           MOV 4eH,47H
           clr nian
           LJMP KEY_4D
    KEY_2D:JNB SHIJIAN,KEY_3D
           MOV 4dH,42H
           MOV 4cH,43H
           MOV 4bH,44H
           MOV 4aH,45H
           MOV 49H,46H
           MOV 48H,47H
           clr shijian
    KEY_4D:MOV SH_LEFT,#48H
           MOV R0,#40H
           MOV R2,#08H
    KEY_1D:MOV @R0,#00H
           INC R0
           DJNZ R2,KEY_1D
    KEY_3D:LJMP  MAIN1
    KEY_ff:CJNE A,#0fH,out     ;E键播报时间设定
           setb bobao
           mov 40h,#03h
           mov 41h,#26
           mov 42h,#26
           mov 43h,#0
           mov 44h,#0
           mov 45h,#26
           mov 46h,#0
           mov 47h,#0
           LJMP  MAIN1
    KEY_ee:CJNE A,#0eH,KEY_ff      ;f键发送键
           jb bobao,key_1f
           lcall sett_data1
           lcall send
           ljmp out
   key_1f: lcall sett_data2
           lcall send
           clr bobao
       out:LJMP  MAIN1
;8279初始化子程序

      send:mov r5,#08h
           mov r0,#30h
      send1:mov a,@r0
           mov sbuf,a
           lcall dealyy
           inc r0
           djnz r5,send1
           ret

DEALYY: MOV R7,#0AH
DEALY1: MOV R6,#0FFH
DEALY2: DJNZ R6,DEALY2
        DJNZ R7,DEALY1
        RET

sett_data1:mov 30h,#00h
       mov r7,#6
       mov r0,#31h
       mov r1,#48h
sett1: mov a,@r1
       mov r6,a
       inc r1
       mov a,@r1
       swap a
       orl a,r6
       mov @r0,a
       inc r1
       inc r0
       djnz r7,sett1
       mov 37h,#00h
       ret
       

sett_data2:mov r7,#8
       mov r0,#30h
       mov a,#00h
sett2: mov @r0,a
       inc r0
       djnz r7,sett2
       mov a,43h
       swap a
       orl a,44h
       mov 32h,a
       mov a,46h
       swap a
       orl a,47h
       mov 31h,a
       mov 37h,#0ffh
       ret



 URAT:JBc RI,RCV1
          CLR TI
     RCV1:reti




INIT_8279: MOV   DPTR,#0FFC1H
           MOV   A,#0D1H
           MOVX  @DPTR,A
LP0:       MOVX  A,@DPTR
           JB    ACC.7,LP0
           MOV   A,#2AH
           MOVX  @DPTR,A
           MOV   A,#00H
           MOVX  @DPTR,A
           RET

DISP:      MOV   DPTR,#0FFC1H
           MOV   A,#90H
           MOVX  @DPTR,A
           MOV   R0,#40H
           MOV   R3,#08
LP:        MOV  DPTR,#TAB
           MOV   A,@R0
           MOVC  A,@A+DPTR
           MOV   DPTR,#0FFC0H
           MOVX  @DPTR,A
           INC   R0
           DJNZ  R3,LP
           RET
;显示代码表
TAB:       DB 0F3H,60H,0B5H,0F4H,66H,0D6H,0D7H,70H,0F7H,0F6H        ;0--9
;              0    1   2    3   4    5    6    7   8     9
           DB 77H,0C7H,93H,0E5H,97H,17H                             ;10--15
;              A    B   C   D   E   F
           DB 0FBH,68H,0BDH,0FCH,6EH,0DEH,0DFH,078H,0FFH,0FEH,00H   ;16--26
;               0.  1.  2.   3.   4.  5.   6.   7.   8.   9.  空

KEY_B:    MOV   DPTR,#0FFC1H
          MOVX  A,@DPTR
          ANL   A,#0FH
          JNZ   KEY_B1
          MOV   A,#0FFH
          RET
KEY_B1:   MOV   A,#40H
          MOVX  @DPTR,A
          MOV   DPTR,#0FFC0H
          MOVX  A,@DPTR
          MOV   R0,A
          MOV   DPTR,#KEY_TAB
          MOV   R7,#10H
          MOV   R2,#00H
KEY_B2:   CLR   A
          MOVC  A,@A+DPTR
          CLR   C
          SUBB  A,R0
          JZ    KEY_B3
          INC   DPTR
          INC   R2
          DJNZ  R7,KEY_B2
KEY_B3:   MOV   A,R2
          RET
;  键值表
KEY_TAB:  DB 03H,02H,01H,00H,0BH,0AH,09H,08H
;             0  1    2   3   4   5   6  7
          DB 13H,12H,11H,10H,1BH,1AH,19H,18H
;             8   9   A   B   C   D   E   F
 INTT0:
      PUSH ACC
      PUSH PSW
      SETB RS0
      CLR  RS1
      INC DISP_FLASH
      MOV A,DISP_FLASH
      CJNE A,#04H,JUMP1
JUMP1:JC JUMP_FLASH
      CPL FLASH
      MOV DISP_FLASH,#00H
JUMP_FLASH:MOV TH0,#00H
      MOV TL0,#00H
      POP PSW
      POP ACC
      RETI
END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -