注册 登录
长汀无线电厂交流论坛 返回首页

hawk的个人空间 http://www.ctwxd.com/?130 [收藏] [复制] [分享] [RSS]

留言板

facelist

您需要登录后才可以留言 登录 | 注册


昭平 2014-4-6 07:36
好好!
祥云电子WRW 2013-11-28 16:45
谢谢
hellodoraemon 2013-5-22 23:57
  
hellodoraemon 2013-4-5 10:05
  
donghuilin 2013-3-19 20:32
CLK  BIT   p3.5
IO    BIT  p3.6
RST   BIT  p3.7
linclkstr   bit  p1.4
OUTENAB   BIT P1.5     ;显示屏输出控制位
ROTE      BIT P3.2    ;遥控接收器端口
dsline     bit p1.6
sCLK595    bit p1.7
SER595A    bit p3.0
CLK595     bit p3.1
;kleftm  bit p2.7
kmenu  bit p0.0
kupm   bit p0.1
;krightm   bit p2.4
kdwn     bit p0.2
DQ      BIT   p0.5
TVIN    BIT P0.7
TVOUT   BIT P0.6
ROTEDLY1  bit 4fh
TVOUT1   BIT 57H

POWERSTOP     BIT  42H
LONGSORT      BIT  43H
SWWD         BIT  4AH
SNWD         BIT  4BH
;FLA182       BIT  4CH
;F1820FZ     BIT  4DH
TVPLAY         BIT 1DH  ;红色标志20H
;YELLOW       BIT 1H  ;黄色标志
AMOV         BIT 2H;流动标志
;STILL        BIT 3H;固定显示标志
FRAME        BIT 4H;结束帧标??
LEDUP        BIT 5H;上半屏
NOBITEND     BIT 6H;本帧无空白标志
;BEHIND       BIT 7H  ;背景标志

;RED1         BIT 08H  ;红色标志21H
;YELLOW1      BIT 9H  ;黄色标志
AMOV1        BIT 0AH;流动标志
;STILL1       BIT 0BH;固定显示标志
;FRAME1       BIT 0CH;结束帧标志
;LEDUP1       BIT 0DH;上半屏
;NOBITEND1    BIT 0EH;本帧无空白标志
;BEHIND1      BIT 0FH  ;背景标志

;NEWDAY       BIT  10H
BRITBIT      BIT   14H
;BELLONR      BIT   15H
ysfs         BIT   11H
KSET          BIT 18H               ;调整POWER      23H
KLEFT         BIT 19H                ;左移
KRIGHT        BIT 1AH             ;右移
KUP           BIT 1BH             ;+
KDOWN         BIT 1CH             ;-
;BELLbit       BIT 1DH  ;闹铃开关察看
;BLSWITH       BIT 1EH ;闹铃开关切换
;BELLONBIT     BIT 1FH  ;显示的闹铃开标志

KROTE         BIT 20H    ; 遥控标志   24H
HR24          BIT 21H ; 24小时制标志
YMONTH        BIT 22H ; 闰月标志
newhour       BIT 23H
banyin       BIT 2fH  ;;遥控伴音标志
DONZEON      BIT 24H;   显示负温度标志
DONZEONW     BIT 4EH;   显示负温度标志
HALFSEC      BIT 25H;   半秒闪标志
ADNOW        BIT 26H            ;23H 需调整标志
ADDSIG       BIT 27H           ;24H 加标志,1为调整加;0为调整-;初始化时定义
HRADJS       BIT 28H          ;25H 本小时需调整标志   25H
FLAG1820     BIT 29H
MOVBEGIN     BIT 2AH
KPOWER      BIT  2BH ;遥控电源开关
TAMPTUNE     BIT   2CH

BELLSETbit   BIT  30H;闹铃调整标志   26H
AMOV0        BIT  31H;自动显示辅助
;AOYTO        BIT  34H
SETCON       BIT   32H  ;设置、调整标志位
ADJCON       BIT   33H
zoersec      BIT   34H  ;0s标志
;CXUNJG       BIT   35H
MAXFZ        BIT   38H             ;27H
WT1302       BIT   39H
CENTY        BIT   3AH  ;20世纪标志
;NOREAD       BIT   3BH
FLASHB       BIT   3CH
NOON12       BIT   3DH
ROTEDLY      BIT   3EH
;nx4          BIT   3FH  ;遥控信号延时
ROTEDLY2     BIT   40H               ;28H
FLASFZ       BIT   41H    ;



JIERIFG      BIT  44H
SHUTDOWN     BIT  45H   ;关闭显示
flashhr      bit  46h ;时间调整闪烁辅助标志
;MOVING       BIT  47H ;正在流动标志   ,29h
beginv       bit  48h   ;死循环初始化避开标志
rotcotyf     bit   49h  ;遥控延时辅助


;MINCNG       BIT 53H
SECBUF       BIT 54H
TIMOUT       BIT  55H  ;,时间用完
Knum      bit  56h



r0tetest  bit    p2.2
minsec    bit   58h




; UPLIN      BIT P1.0           ;上半屏行
;DWLIN       BIT P1.7           ;下半屏行
;ledupst   BIT P1.6    ;上半屏数据控制
;LEDDW     BIT P1.2    ;下半屏数据控制



START_YEAR   EQU 01; 定义查询表起始年份,01--199 表示1901-2099 年
ENDREG       EQU 0FFH ; 结束标志


SECTIM   EQU 08H                 ;SEC            闹铃开/关
MINTIM   EQU 09H                 ;MIN            进入/退出设置状态
HRTIM    EQU 0AH                 ;HOUR
DATTIM   EQU 0BH                 ;DATA
MTHTIM   EQU 0CH                 ;MONTH
DAYTIM   EQU 0DH                 ;WEEK
YERTIM   EQU 0EH                 ;YEAR


ADLEFT       EQU 18h;63H           ;63H 调整1秒余数  012
numberf       data 19h
FRAMSUM       EQU 1AH ; 上半屏帧计数   1
SECTIMV   EQU 1BH                 ;DATA
nwhr      EQU 1CH                 ;MONTH
ldsdat       equ 1dh
secst        equ 1eH
daystok   EQU 1fH                 ;WEEK
;YERTIM   EQU 0EH                 ;YEAR

TIME_WEEK    DATA 30H ;星期出口
CONVERT_MONTH DATA 31H
CONVERT_DATE DATA 32H
TIME_YEAR1   DATA 33H;年入口地址世纪
TIME_YEAR    DATA 34H;年入口地址
TIME_MONTH   DATA 35H ;
TIME_DATE    DATA 36H
TEMPZS       EQU 37H;
TEMPXS       EQU 38H;
;MINEUT       EQU 3AH
;SECONDS      EQU  3BH          ;秒
CONVERT_YEAR DATA 3CH  ;以下三单元存转换后农历日期
TEMP_BYTE1   DATA 3DH
TEMP_BYTE2   DATA 3EH
TEMP_BYTE3   DATA 3FH
TEMP_BYTE4   DATA 40H
TEMP_BYTE5   DATA 41H;3E、3F、40
TAMDAT_1     EQU 42H;
TAMDAT1      EQU 43H;
TAMDAT2      EQU 44H;
mincume0      EQU 45H         ;移动间隔置数   0
sudu          equ  46h                ;移动速度1
movsume0      equ  47h        ;47:移动次数2
ADSUMHOURS    EQU  48H           ;多少小时 255    03
ADJSTSECS     EQU  49H        ;多少小时内调整秒数,最高位为+-标志  4
SECNEW        EQU  4bh;65H           ;65H 调整1秒后及时余数 06
HRNOW         EQU  4Ah;64H            ;64H 及时小时数  05
BRIGHT        equ  4CH  ;亮度控制寄存器  7
bighthr1      EQU 4DH     ;亮度小时一8
bighthR2      EQU 4EH     ;亮度小时二9
BRIGHTS1      EQU 4FH     ; 4F:控制亮度10
BRIGHTS2      EQU 50H     ;50:控制亮度11
KZFS          EQU 51H     ;控制方式 12
tvhrst        EQU 52H   ;设置tv小时   13
TVMINST       EQU  53H  ; 设置tv分钟  14
HRTV          EQU   54H     ;tv小时 15
MINTV         data  55h     ;tv分钟  16
SECTV         EQU 56H                 ;SEC
daysto        equ 57h
HRSTORM       equ 58h
TEMPXSW       EQU 5aH;
TEMPZSW       EQU 59H;



GXCISU       EQU 5bH

ROTDATA0     EQU 5cH       ;设定ROTDATA0为起始RAM区
ROTDATA1     EQU 5dH
setdath      equ 5eh;up临时数据
TAMDAT_2     EQU 5fH;S52与农历临时数据3D、


SECLONG        EQU  62H          ;距离近计秒
HALFSECSUM   EQU 63h;51H
LEFTNUM      EQU 64h;54H
ADJSTDT      EQU 65h;53H
SETCUM       EQU 66H
GXCISUd      equ 67h
SHOWLIN      EQU 68H ; 行数,上半屏低8位,下半屏高8位
LEDBEGIN     EQU 69H  ;开始地址;R0
DISPOIN      EQU 6AH    ;入口地址
mincume      EQU 6BH         ;移动间隔计数
ENDBIT       EQU 6CH  ;上半屏结束字符数
secCUN      EQU 6DH ;     秒计数R6       ??????????
CENTR        EQU 6EH;中间字节数
;LEFTNUMB     EQU 6FH
LED1BEGIN    EQU 70H  ;上半屏帧开始地址;
SHWLIN1      EQU 71H  ;行指针
DISPOIN1     EQU 72H    ;入口地址 N
MOVBUFF      EQU 73H   ;流动位数
ENDBIT1      EQU 74H  ;上半屏结束字符数
FRAMCUN1     EQU 75H ; 上半屏帧计数
CENTR1       EQU 76H;中间字节数
S18B20       EQU 77H;18B20存在数据
TEMPER_H     DATA 78H
TEMPER_L     DATA  79H
COUN1302     EQU  7AH
sectim1  EQU  7BH
LEFTBELL      EQU 7CH     ;13
movsume     equ  7Dh
MINCUM         equ 7eh
HRSPERSEC    EQU 7fh;62H       ;62H 调整1秒HOUR数

ORG 0000H
AJMP START
ORG   0003H
LJMP  ROTOINT            ;IRF
ORG 000BH
LJMP GXINT
ORG 0013H
LJMP LONGI

START: setb  EA
STARTv:
SETB  IT0
       SETB PX0
       SETB EX0
       SETB ET0
       MOV  SETCUM,#0
       MOV TMOD,#12H
       MOV TH0,#75H
       MOV TL0,#75H
       SETB EA
       clr ET0
       clr TR0
       SETB IT0
       SETB  IT1
       SETB ex1
       SETB EX0
       MOV SP,#0f0h
       ;mov r

      ;LCALL SET1302
jb kdwn,FUWEI
jb kupm,FUWEI
gess:    LCALL       GESREST
        ; LCALL SET1302

FUWEI: MOV R0,#030H
MOV R1,#2H    ;05h

BBB: MOV A,#0H
  MOV @R1,A
  INC R1
  DJNZ R0,BBB
MOV   SETCUM,#0
  MOV TIME_YEAR1,#20H
       MOV  GXCISU,#2H
       MOV   HALFSECSUM,#1H

       MOV    R0,#45H    ;;;45~4f
       MOV    R7,#18H
      MOV    R1,#0C1H
       MOV SECTIM,#3
       SETB beginv
       LCALL RD1302A
       lcall RD1302

       mov a,movsume0    ;移动次数处理
       JNZ MOVSME2
       MOV A,#1
MOVSME2:anl a,#07h
       mov movsume,a
       mov movsume0,a
       anl FRAMSUM,#1h
       mov a,59h
    cjne a,#82h, gess
ADJSTSTART:setb  POWERSTOP
           mov a,ADJSTSECS
           MOV C,ACC.7
           MOV ADDSIG, C
           CLR ACC.7
           MOV ADJSTSECS,A
           ;MOV ADSUMHOURS,HOURS
           MOV A,ADSUMHOURS
           JNZ ADJSTST
           AJMP NOADJST
GSTTAB:   DB 4H,0ffH,1H,0H,0H,1H,0H,0H,7H,20H,10H,0fcH
;7H,20H,10H,0FcH
;DB 1H,01H,1H,0H,0H,0H,0H,0H,0H,00H,00H,00H
          DB 00H,0H,0H,0H,0H,00H,0H,0h,82H,0H

          ;DB 1H,2H,0H,18H,22H,30H,45H,13h,6H
ADJSTST:   SETB ADNOW
           ;MOV SECNEW,#0
           ;SETB  ADDSIG        ;置加标志,1为调整加
ADDSECEND: ;mov 48h,#255
          ; mov 49h,#107
          MOV  SECLONG,#0



           MOV A,ADSUMHOURS
           MOV B,ADJSTSECS
           JZ  NOADJST
           ;SETB ADNOW
           DIV AB
           MOV HRSPERSEC,A     ;计算调整一秒的小时整数
           ;MOV HRNOW,A
           MOV ADLEFT,B        ;计算调整一秒后小时小数
           INC  HRSPERSEC
           MOV A,ADJSTSECS     ;
          ; MOV   HRNOW,HRSPERSEC
           CLR C
           SUBB  A,ADLEFT
           MOV ADLEFT,A
           AJMP  ADJSQUIT
NOADJST:   CLR  ADNOW
           ;SETB  minsec
ADJSQUIT:  ;mov 45h,#1h
          ; mov 46h,#252
          ; mov 47h,#1
MOV A,SECTIM
JNB ACC.7 , DDS
MOV R0,#0
MOV R1,#80H
LCALL SETONE
DDS:





SETB  TAMPTUNE
;LCALL SIG1820
LCALL  TEMPRETU
clr  TAMPTUNE
st132nx:LCALL RD1302
MOV A, HRTIM
MOV C,ACC.7
MOV NOON12,C
mov secst,  SECTIM

MOV 3BH,SECTIM
MOV 3AH,MINTIM
MOV 39H,HRTIM
JNB NOON12,NON12NX
ANL 39H, #1FH
NON12NX:MOV 36H,DATTIM
MOV 35H,MTHTIM
MOV 34H,YERTIM
                            ;lcall TEMPRETU
; LCALL  AUTOCTR0
LCALL  AUTOCTRW
mov r1, #0ebh
  LCALL RD1BIT
           ;MOV A,0eah
           MOV C,ACC.7
           MOV MINSEC,C
           ;clr minsec
; MOV a,AUTODAT
  ;CJNE A,#1H,AUTO4
  SETB AMOV0
AUTO4: LCALL CONVERT


LCALL  BUFF
mov a,KZFS
           clr  ysfs
           jz   bvc7
           clr TVOUT
         clr TVOUT1
setb ysfs
bvc7:   mov a,daysto
     cjne a,DATTIM, loadtv
     ajmp  bvc
loadtv:lcall  tvload
; MOV hrTV,#1
;************显示主程序初始化***********
mov   mincume0,#2
bvc:mov  mincume,mincume0
DISPLAYING:MOV R4,#0H

;MOV 21H,#3dh;3DH;79H;75H
STIL:;MOV 22H,#10H;5CH;58H
MOV LEDBEGIN  ,#80H  ;上半屏帧开始地址;
MOV SHoWLIN ,#0H  ;行指针
MOV DISPOIN  ,#80H    ;入口地址
MOV MOVBUFF,#0H   ;流动位数
; MOV FRAMCUN2 ,#01H; 上半屏帧计数
;MOV P0,#0H
;MOV P0,#0H
;SETB   AUTO
;CLR  JIERIFZ
;MOV SHOWLIN,#0H
;mov CHANGDAT,#15h
;MOV LED2BEGIN  ,#0C1H  ;上半屏帧开始地址;
;MOV SHWLIN2 ,#0H  ;行指针
;MOV DISPOIN2  ,#0C1H    ;入口地址
;MOV MOVBUFF2,#0H   ;流动位数
MOV CENTR,#8H
;MOV CENTR2,#8H
;;MOV ENDBIT1,#0H
MOV ENDBIT,#0H
;MOV FRAMCUN2 ,#05H; 下半屏帧计数
;MOV FRAMSUM2  ,FRAMCUN2;帧停留时间

;MOV FRAMCUN1 ,#08H; 上半屏帧计数
MOV FRAMCUN1,#1  ;帧停留时间

DEC FRAMCUN1
;DEC FRAMCUN2
setb  LEDUP
;clr auto
setb amov
setb amov0
lcall AUTOCTRW
stadis0:mov sp,#0f0h

lcall tmset
LCALL  BUFF
;;************************************
STADIS:lcall  ANLIUCRT
;clr amov
;clr amov0
JNB KROTE ,NEXTS
        LCALL     ROTCOTR
NEXTS:
;JB LEDUP,UPDRES1
         DEC  COUN1302
         MOV A,COUN1302
         JNZ  UPDRES1
MOV   COUN1302,#0f5H
;setb OUTENAB
;CLR  ROTEDLY1
LCALL RD1302
clr  IT1
lcall  changg
  LCALL STOPOWER
LCALL  ADJUSTIN

;LCALL  TVTIMOUT
;jb KPOWER,gfh
; MOV A,SECTIM
;ANL A,#20H
;CLR  TVPLAY
; JZ TVNM
;gfh: SETB TVPLAY
; SETB SECBUF
;LCALL TVDISPY
; AJMP  RRD1302
;TVNM:JNB SECBUF, RRD1302
;CLR  SECBUF
;LCALL BUFF
RRD1302:jb amov ,UPDRES1;JB ROTEDLY, DWNSSSF
JB TVPLAY, UPDRES1;
LCALL TIMCNTRL
UPDRES1: ;jnb p1.4,gfhj
;sds:
LCALL LONGCTR
JB TAMPTUNE,ASSS1
MOV A,SECTIM
CJNE A,#58H, UPDRESS
setb ea
clr beginv
;LJMP   STARTv
ROTDNX1:LCALL  TEMPRETU
AJMP   UPDRESS
ASSS1:MOV A,SECTIM
   JZ  zoosec

   clr zoersec
   ajmp UPDRESS
;gfhj:lcall  LONGI
; ljmp  sds

zoosec: LCALL  TEMPRETU
JB TVOUT1,ZO1
JNB TVIN ,ZO1
jb ysfs, ZO1
SETB TVOUT1
SETB TVOUT
ZO1:CLR   banyin
CLR  KPOWER
SETB r0tetest
clr  TAMPTUNE
LCALL  AUTOCTR


JNB ROTEDLY,ROTDNX
CLR  ROTEDLY
SETB  ROTEDLY2
setb  rotcotyf
ajmp  UPDRESS
ROTDNX: JnB ROTEDLY2, UPDRESSJ
clr rotcotyf
;jb  rotcotyf,UPDRESSJ
CLR ROTEDLY2
LJMP START
UPDRESSj: ;clr auto
;JNB AUTO ,ATUO


;LCALL  BUFF
;CLR   TAMPTUNE
;JB JIERIFG,UPDRESS
lcall tmset
LCALL  BUFF

LCALL CONVERT

UPDRESS:
        mov FRAMSUM,#01h
        MOV R1,#70H
       ; MOV 20H,21H
DTMOV:MOV   A, @R1
MOV R0,A
MOV LEDBEGIN,A
INC   R1
MOV   A,@R1;R3行数
MOV R3,A
INC   R1
MOV   DISPOIN,@R1
INC   R1
MOV   A,@R1;R7流动位数
MOV R7,A
INC   R1
MOV   ENDBIT,@R1   ;结束字符数
INC   R1
MOV   A,@R1  ;R4帧计数
MOV R6,A
INC   R1
MOV   CENTR,@R1;中间显示字节数
INC   R1
;MOV   FRAMSUM,@R1;帧停留时间
; setb AMOV



;;**************BEGINGS*****************************
STILL8:   JB AMOV ,AMOVLN
STILLS:   LCALL  LINCNTL;下一行处理
          JNB FRAME ,STILLE0
          LCALL FRAMCHAGE
          JNB FRAME ,STILLE0
          MOV A,R0      ;R5临时用
          MOV R5,A
          LCALL  STARTWRD
          MOV A,R5      ;R5临时用
          MOV R0,A
STILLE0:
;JB NOBITEND,STILLE1
          ;MOV R4,ENDBIT
          ;MOV A,#0FFH
          LCALL  clrscreen;清屏
          MOV a,ENDBIT
          inc a
          mov b,#2
          div ab
          ;mov endbit2,a
          add a,#0d0h
          lcall  setdat
STILLE1:  MOV a,ENDBIT
          jnb acc.0,STILLE11
          LCALL  BITjst;位数校正
STILLE11: lcall bitexchang
LCALL  outPLAY;行输出
          LCALL  LINOUT
          ;lcall  GXKZI
          AJMP  STATA

;;*******************************************
AMOVLN:   LCALL  LINCNTL;下一行处理
          JNB FRAME ,AMNEXE
          LCALL FRAMCHAGE
          JNB FRAME ,AMNEXE
          MOV A,R0      ;R5临时用
          MOV R5,A
          LCALL  STARTWRD
          MOV A,R5      ;R5临时用
          MOV R0,A

AMNEXE:   LCALL  clrscreen;清屏
          JNB MOVBEGIN,MOVBEGIN11
          MOV  A ,endbit
          add a,#0d0h
          mov R1,a
          AJMP MOVBEGIN12
MOVBEGIN11:MOV R1,#0d0h
MOVBEGIN12:MOV R2,CENTR
           lcall BITNEX
           lcall BITld
           lcall bitexchang
          LCALL  outPLAY;行输出
          LCALL  LINOUT
        mov r5,sudu
loopa:  nop
        nop
        nop
        nop


        DjNz R5,loopa

          AJMP  STATA
;outPLAYret
;;*****************输出***************************
;;************显示程序***************

;;****************************
MOV A,SHOWLIN
outPLAY:;jb amov ,outplay1
nop
       ; mov r5,#8h
      ;  MOV r0,#0D0h
;cds:    mov @r0,#0fbh
       ; mov @r0,a
      ;  inc r0
       mov r4,#8
outPLAY1:MOV R5,#6
        MOV r0,#0D0h
BIT8OUT:MOV A,@R0
        LCALL BIT8
        INC R0
        DJNZ R5,BIT8OUT
        RET
BIT8:   setb c
BITPLUP0:RLC A
       MOV SER595A,C
       nop
       CLR  CLK595
       nop
       SETB CLK595
       DJNZ   R4,BITPLUP0
       CLR  CLK595
       MOV R4,#8H

REDDW:       RET
;;*************************************
;;**************************************
STATA: JB LEDUP,UPDRESS2
;MOV R1,#78H
;MOV 22H,20H
;AJMP DTMOV2
UPDRESS2:MOV R1,#70H
        ;MOV 21H,20H
DTMOV2: MOV @R1,LEDBEGIN
INC  R1
MOV A,R3
MOV  @R1, A;R3行数
INC   R1
MOV  @R1, DISPOIN
INC   R1
MOV A,R7
MOV   @R1,A;R7流动位数
INC   R1
MOV  @R1, ENDBIT   ;结束字符数
INC   R1
MOV A,R6
MOV  @R1, A   ;R6帧计数
INC   R1
MOV  @R1, CENTR;中间显示字节数
;INC   R1
;MOV   @R1,FRAMSUM;帧停留时间
AJMP STADIS


;;*********************自动显示*********************
AUTOCTR: jb zoersec,minqit
         setb  zoersec
         ;MOV  A,MINCUM
        ; JZ   AUTOBELL
        ; DEC  MINCUM
AUTOBELL: djnz   mincume,minqit
         mov mincume, mincume0
         mov 23h,#0
        mov SETCUM,#0;nop
;AUTOctrm:nop
;cpl  AOYTO
         ; clr JIERIFG
;JB AOYTO,AUTO2


        ;
AUTOCTRW:clr JIERIFG
AUTO21: MOV 21H,#3dh
MOV MOVBUFF ,#0
MOV ENDBIT1 ,#8H
MOV  FRAMCUN1 ,#01H
MOV  CENTR1 ,#1H
;MOV FRAMSUM,#5H
        MOV LED1BEGIN  ,#80H  ;上半屏帧开始地址;
        MOV SHWLIN1 ,#0H  ;行指针
        MOV DISPOIN1  ,#80H    ;
        SETB AMOV0
        SETB AMOV1
        SETB AMOV
        CLR LONGSORT
        ;setb  blue
        SETB MOVBEGIN
        lcall tmset
        lcall  BUFF


      mov  mincume,mincume0
MOV R4,#0H
;MOV 22H,#10H;5CH;58H
MOV LEDBEGIN  ,#80H  ;上半屏帧开始地址;
MOV SHoWLIN ,#0H  ;行指针
MOV DISPOIN  ,#80H    ;入口地址
MOV MOVBUFF,#0H   ;流动位数
MOV CENTR,#8H
MOV ENDBIT,#0H
MOV FRAMCUN1,#01h ;帧停留时间

DEC FRAMCUN1
setb  LEDUP
setb amov
setb amov0



minqit:      RET





AUTO2:  MOV  21H,#39H
        MOV LED1BEGIN  ,#0c3H  ;上半屏帧开始地址;
        MOV SHWLIN1 ,#0H  ;行指针
        MOV DISPOIN1  ,#0c3H    ;
        CLR  AMOV0
        CLR  AMOV
        ;clr  blue
        ;lcall tmset
        ;lcall buff
        mov 23h,#0
        mov SETCUM,#0;nop
        RET



clrscreen:mov r5,#9
          mov r1,#0d0h
clrscr0:  mov @r1,#0h   ;0、ff待定
          inc r1
          djnz r5,clrscr0
          ret
;;**********a*******置数*******************
setdat:mov r1,a
       MOV R2,CENTR
       lcall BITNEX
       RET
;;****************左移动4位**************************
BITjst:mov r1,#0d0h
       mov r2,#9
BITjst1: mov a,@r1
        SWAP   A
       mov  r5,a
       anl  a,#0f0h
       mov @r1,a
       dec r1
       mov   a,r5
       anl a,#0fh
       orl a,@r1
       mov @r1,a
       inc r1
       inc r1
       djnz r2,BITjst1
BITQ: ret
;;********************
BITld: JNB AMOV ,BITQ
       mov a,r7
       mov ldsdat,a
       mov r5,a
       subb a,#4
       jc  BITld1
       mov r5,a
       mov ldsdat,a
       mov r1,#0d0h
       mov r2,#0ah
      acall  BITjst1

BITld1: mov a,ldsdat     ;ldsdat移动位数
        jz  BITMOVEQT             ;;退出
       mov r2,#9
        mov r1,#0d0h
BITld3: mov r5,ldsdat
        mov a,@r1
BITld2: Rl     A
        djnz r5,BITld2
        mov @R1,a
        INC R1
        djnz r2,BITld3
;;*************置换部分位*******************
        mov R1,ldsdat
        mov a,#0
BITMOVE0:  SETB C
        RlC    A
        djnz r1,BITMOVE0
        mov TEMP_BYTE1,a
        CPL  A
        mov TEMP_BYTE2,a

BITMOVE: mov r1,#0d0h
seclt:         mov r2,#9
BITMOVE1:      MOV A,@R1
        ANL A,TEMP_BYTE1
        MOV TEMP_BYTE3,A
        DEC R1
        MOV A,@R1
        ANL A,TEMP_BYTE2
        ORL A,TEMP_BYTE3
        MOV @R1,A
        INC  R1
        INC  R1
        djnz r2,BITMOVE1
BITMOVEQT:RET

bitexchang:
mov r5,#08h
mov r1,#0d0h
bexchg1:
mov a,@r1
        mov c,acc.2
        mov 67h,c
        mov c,acc.7
        mov 66h,c
        mov c,acc.5
        mov 65h,c
        mov c,acc.1
        mov 64h,c
        mov c,acc.0
        mov 63h,c
        mov c,acc.6
        mov 62h,c
        mov c,acc.3
        mov 61h,c
        mov c,acc.4
        mov 60h,c
        mov @r1,2ch
        inc r1
        djnz r5,bexchg1
ret
;;;;************************************

;;***************************************
ACENTER :MOV R2,CENTR
        CJNE R2,#0H,ACENTER2
        AJMP  ACENTER1
ACENTER2:MOV R4,#8H
         LCALL  BITNEX
ACENTER1:  RET
ACENTER11: JB MOVBEGIN,AMOVBIT11
RET
;;**************AMOVBIT*************************
AMOVBIT: MOV A,CENTR
JZ   ACENTER1
CLR C
SUBB A,#8H
JC  ACENTER11

AMOVBIT11:MOV  A,R7
JZ ACENTER1
MOV R4,A
MOV R2,#1H
INC R0
MOV A,@R0
CJNE A,#ENDREG, AMOVBIT13
AJMP   AMOVBIT12
AMOVBIT13:LCALL CONTINUE
RET
AMOVBIT12:CLR C
MOV A,CENTR
SUBB A,#8H
JNC  AMOVENDD
RET
;;************AMOVEND流动结束字符*********************
AMOVEND:MOV R5,ENDBIT
        CJNE R5,#0H,  AMOVEND0
        JNB MOVBEGIN,  MOVENDQ
        AJMP  AMOVENDD
        RET
AMOVEND0:MOV R4,#8H
MOV A,#0FFH
;ACALL  BITPLAY
DJNZ R5,AMOVEND0
AMOVENDD:MOV  A,R7
JZ MOVENDQ
MOV R4,A
MOV A,#0FFH
;LCALL  BITPLAY;结束位
MOVENDQ:RET

litersec: inc r0
          inc r1
          MOV DPTR,#TAB0
          MOV A,@R0
          cjne a,#49h,noblank
          mov a,#0
          mov @r1,a
          ljmp noblk
noblank:  ANL A,#0FH
          SWAP A
          CLR C
          ADD A,DPL
          mov dpl,a
          mov a,#0
          addc a,dph
          MOV DPH,A
          MOV A,R3;  本行数
          MOVC A,@A+DPTR
         ;CPL A
          mov @r1,a
noblk:    DJNZ R2,litersec
         rl a
         rl a
         rl a
          mov @r1,a
         anl a,#7
         mov r2,a
         mov a,@r1
         anl  a,#0f8h
         mov @r1,a
         dec r1
         mov a,@r1
         orl a,r2
         dec r1
         mov @r1,a
         inc r1
         inc r1
         mov a,@r1
         dec r1
         mov @r1,a
         ;mov ,#2
         dec r1
         dec r1
         dec r1
         mov r2,#4
litset:   mov a,@r1
         rl a
         rl a
         rl a
         mov ldsdat,a
         anl a,#0f8h
         mov @r1,a
         mov  a,ldsdat
         anl a,#7
         mov ldsdat,a
         dec r1
         mov a,@r1
         orl a,ldsdat
         mov @r1,a
         inc r1
         inc r1
         djnz r2,litset

         mov @r1,#0ffh

         dec r1
         mov @r1,#0h
         jb FLASHB, bvb
         clr  KROTE

            clr   ROTEDLY
            clr   ROTEDLY1
            CLR  ROTEDLY2
bvb:       RET

;;;************8字节输入程序********OK
BITNEX1 : mov a,@r0
          cjne a,#5Eh, CNTNUP
          JB HALFSEC,CONTINUExx
         MOV @R1,#0

CNTNUP:    cjne a,#42h, CONTINUExx
         cjne r0,#0c6h,CONTIxx
CONTIxx:jc CONTINUExx
         ;JB MINSEC,
         mov r2,#2
         ljmp  litersec
CONTINUExx: INC R0
          inc r1
BITNEX:        MOV A,@R0   ;取字体代码地址
CONTINUE:MOV DPTR,#TAB1
         MOV A,@R0
CONTENUE:ANL A,#0FH
         SWAP A
         CLR C

         ADD A,DPL
         MOV DPL,A
         MOV A,@R0
         ANL A,#0F0H
         SWAP A
         ADDC A,DPH
         MOV DPH,A
         MOV A,R3;  本行数
         MOVC A,@A+DPTR
         ;CPL A
CONTENUFF:mov @r1,a
         DJNZ R2,BITNEX1
BELLSETQit:        RET  ;


;;***************************************OK
TIMCNTRL:
         JNB FLASHB,TIMCNTRL1
         DJNZ  HALFSECSUM,TIMCNTRL1
         CPL   HALFSEC
        SETB  FLASFZ
         MOV   HALFSECSUM,#1H
         LJMP TMCRY
TIMCNTRL1: DJNZ  HALFSECSUM,TMCRY
         CPL   HALFSEC
        ; SETB  FLASFZ
         MOV   HALFSECSUM,#3H
TMCRY:;JB TVPLAY, BELLSETQit
JB ROTEDLY ,sknex
           jb  LONGSORT, NEXTSOW
           mov  r1,#0C6h
           mov a,@r1
           clr c
           cjne a,#0bh,skong
skong:      jc  sknex
           cjne a,#4ch, restrt
           ajmp sknex
restrt:     NOP
            ljmp  start
;MOV R1,#0C9H
         ;ajmp   NEXT10HR
sknex:
         MOV R1,#0CBH
         MOV a,39H
         ANL A,#0F0H
         JNZ NEXT10HR
         JB SETCON, NEXT10HR
         DEC R1
NEXT10HR:MOV @R1,#0FFH
         DEC R1
         MOV A, SECTIM
         ANL A,#0FH
         MOV @R1,A
         DEC R1
         MOV A, SECTIM
         ANL A,#0F0H
         SWAP A
         MOV @R1,A
         JNB flashhr,NXQUIT
         ajmp  hrflsh
NXQUIT:  JNB FLASFZ,NEXTSOW
hrflsh: LCALL  FLASH
NEXTSOW:RET
;;************************************************OK


;;*************FRAMCHAGE**************************
FRAMCHAGE:INC R6
          JNB AMOV,FRAMCHG3
          MOV A,R6
          CJNE A,FRAMSUM,FRCH
          INC R7
          MOV R6,#0H
          CJNE R7,#8H,FRCH
          ;AJMP FRCH0
          MOV R7,#0H
          JB MOVBEGIN,FRAMCHG2
          INC R0
          MOV LEDBEGIN,R0
FRCH0:          RET
FRCH:     CLR  FRAME
          RET

FRAMCHG2: MOV A,ENDBIT
          JZ   FRAMCHG3N
         DEC ENDBIT
         INC CENTR
         MOV A,CENTR
         CJNE A,#1,FRAMCHG2A
FRAMCHG3N: MOV A,CENTR
          INC R0
          MOV LEDBEGIN,R0
FRAMCHG2A:CJNE A,#9H, FRAMCHG3
          CLR MOVBEGIN
         MOV ENDBIT,#0H
FRAMCHG3:RET
LINSHUT: CLR OUTENAB
         RET
;*********行驱动程序********OK
lin0h:    setb dsline
mov r5,#10h
bgt:setb linclkstr
nop
nop
clr linclkstr
djnz r5 ,bgt
lin0:clr dsline
         setb linclkstr
nop
nop
clr linclkstr

         ajmp hgj
LINOUT:  setb  EA
         JB SHUTDOWN,LINSHUT
         MOV A,SHOWLIN
         anl a,#0fh
         jz lin0
         setb dsline
setb linclkstr
nop
nop
clr linclkstr


hgj:         CLR sCLK595
         nop
         nop
         SETB  sCLK595
         JB SHUTDOWN,LINSHUT
         SETB OUTENAB

        lcall  GXKZI
        mov r5,sudu
loopa1:
        DjNz R5,loopa1

        CJNE R0,#7eH,RESTNX           ;防止显示失控
RESTNX: JNC   RESTNXO
ST:     LJMP  START
RESTNXO:CLR C
        CJNE R0,#0CCH,RESTNX2
RESTNX2:JC  RESTNX3
        ;AJMP  ST
;;;************光线控制*****************

RESTNX3:ret
;************光线控制*****************
GXKZI: clr ea;ret
anl BRIGHT,#03h
       MOV A,BRIGHT
     JZ  LINPOW0
LINPOW1:  CJNE A,#1,LINPOW2  ;最暗
          mov GXCISUd,#2
          MOV R5,#0FEH
          AJMP LINPOW
LINPOW2:  CJNE A,#2,LINPOW3 ;
          MOV R5,#0D5H   ;中等
          mov GXCISUd,#2
          AJMP LINPOW
LINPOW3:  SETB OUTENAB ;最亮
          CLR TR0
          CLR ET0
          setb ea
          RET

LINPOW0:   JB BRITBIT,BRITTIM1;;时间控制
           mov GXCISUd,#2
           MOV  R5,BRIGHTS2
           ajmp LINPOW
BRITTIM1:  MOV  R5,BRIGHTS1
           mov GXCISUd,#2
LINPOW:    MOV TH0, R5
           MOV TL0,R5
           SETB ET0
           SETB TR0
           SETB OUTENAB
           setb ea
LINQIT:    RET
;;**************结束(开始)空白字符计算******OK
STARTWRD: SETB  NOBITEND
          CLR FRAME
          JB AMOV,STARTQUIT
          MOV R0,DISPOIN
STRTW3:   MOV R1,#8H
          JNB MINSEC,STRTW1
          MOV R1,#6H
STRTW1:   MOV A,@R0
          CJNE   A ,#ENDREG ,STRTW2
          AJMP  COUNTDAT
STRTW2:  INC R0
          DJNZ R1,STRTW1
          MOV  CENTR,#8H
          mov  endbit,#0
          JNB MINSEC,LINQIT
          MOV  CENTR,#6H
          RET
COUNTDAT:MOV A,R1
         ; MOV B,#4H
         ; MUL AB
          CLR  NOBITEND
          MOV ENDBIT,A
          MOV A,#8H
          JNB MINSEC,GFH
          MOV A,#6H
GFH:         CLR C
          SUBB A,R1
          MOV  CENTR,A
          RET
STARTQUIT:JB MOVBEGIN,STARTQUIT2
          MOV R1,#9H
STRTW11:  MOV A,@R0
          CJNE   A ,#ENDREG ,STRTW21
          AJMP  COUNTDAT1
STRTW21:  INC R0
          ;INC R5
          DJNZ R1,STRTW11
          CLR  NOBITEND
          MOV ENDBIT,#0H
          MOV  CENTR,#9H
          RET
COUNTDAT1:CJNE   R1 ,#9H ,STRT21
          ajmp COUNTDAT2
          ;MOV AUTODAT,#0H

AUTOCTRN: clr jierifg
          dec movsume
          mov a,movsume
          jz   AUTOCTRagn
          lcall  AUTOCTRW
          LCALL  BUFF
          ajmp  stadis0
AUTOCTRagn:mov movsume,movsume0
          Lcall  AUTO2;
         ajmp stadis0
COUNTDAT2:MOV R0,DISPOIN
          JB  JIERIFG,  AUTOCTRN
         ; LCALL  SPRINY
          JNB  JIERIFG,AUTOCTRN     ;;;;??????????????????????????????????????????????
          ;LCALL  BUFFSPR
         ; JnB NEWDAY,NEWDAY1
         MOV R0,#080H
          ;mov r0,DISPOIN
          ;CLR AUTO
          ;SETB AMOV
          MOV  DISPOIN1,#80H
STRT24:   MOV LEDBEGIN,R0
          SETB MOVBEGIN
          RET
STRT21:   MOV ENDBIT,R1
          MOV A,#9H
          CLR C
          SUBB A,R1
          MOV  CENTR,A
STARTQUIT2:          RET

NEWDAY1:  MOV R0,#084H
          ajmp STRT24





;;*********************************************
;;********LINCNTL;行处理程序************************
LINCNTL: MOV A,R3      ;上半屏低8位,下半屏高8位
          CLR  FRAME
          INC A
          JBC ACC.4,FLM
          AJMP  LINCNTNEX
FLM:      SETB FRAME
LINCNTNEX: MOV R3,A
          JB LEDUP,LINCN1
          SWAP   A
LINDW:    ANL SHOWLIN,#0FH
          ORL    SHOWLIN, A
          RET
LINCN1:  ANL SHOWLIN,#0F0H
          ORL    SHOWLIN, A
          RET



;*************光线控制程序**********************
GXINT:  ;reti
CLR  OUTENAB
       PUSH ACC
       CLR  ET0
       CLR  TR0
       DEC  GXCISU
CONTRNX:MOV A,GXCISU
       JNZ  GXIQUIT1
       MOV  GXCISU,GXCISUd;gxqd
       ;LCALL SHUTSER
       CLR  OUTENAB
       CLR  ET0
       CLR  TR0
GXIQUIT:  POP ACC
           RETI
GXIQUIT1:
           SETB  ET0
           SETB  TR0
           mov tl0,th0
           POP ACC
           SETB OUTENAB
           RETI





;;*********取字符表********************
BUFF: MOV R3,#4CH
MOV R0,#80H
MOV R1,#0H
MOV DPTR,#TABBUFF
;;*************
BUFF1:MOV A,R1   ;查字符代码表地址程序
MOVC A,@A+DPTR
MOV @R0,A
INC R1
INC R0
DJNZ R3,BUFF1
;;;*********取实时变量程序**************
JB YMONTH,TMPZO
MOV R0,#09AH
MOV A,#0DDH
MOV @R0,A
INC R0
MOV @R0,A   ;清除AOH的闰字代码
TMPZO:JB DONZEON,TMPZOW
MOV R0,#0acH
MOV @r0,#0DDH
;MOV @R0,A ;清除B2H的  -  代码
TMPZOW:JB DONZEONW,WEEK
MOV R0,#0BAH
MOV @r0,#0DDH
;MOV @R0,A ;清除B2H的  -  代?

WEEK:MOV R0,#93H
MOV A,30H         ;星期处理
MOV DPTR,#WEEKTAB
MOVC A,@A+DPTR
MOV @R0,A
INC A
INC R0
MOV @R0,A
;;******************
MOV R0,#09CH
MOV A,31H         ;月处理,空白可能变成DEH
MOV DPTR,#LMONTAB
MOV R3,A
ADD A,R3
MOV R3,A
MOV R4,#2H
ACALL  BUFFDT
MOV R0,#0A2H
MOV A,32H         ;日处理
MOV DPTR,#LDAYTAB
MOV R4,#2H
MOV R3,A
ADD A,R3
MOV R3,A
ACALL  BUFFDT
;;***********************************************
ACALL BUFFCONT
AJMP   NOMOW
;;********公历、温度处理*******************
BUFFCONT:MOV R1,#33H
MOV R0,#80H;20
ACALL TAKE
INC R1
MOV R0,#82H;05
ACALL TAKE
INC R1
MOV R0,#86H;12月
ACALL TAKE
INC R1
MOV R0,#8aH ;31日
ACALL TAKE
INC R1
MOV R0,#0AdH  ;33.54℃
ACALL TAKE
INC R1
MOV R0,#0B0H  ;
ACALL TAKE
TIMCTR:MOV R1,#39H
hellodoraemon 2013-1-1 10:56
新年快乐
donghuilin 2012-6-24 22:00
老师您好,我把你的“点阵屏”程序增加了:端午节和两个生日,编译的时候通不过,显示138 595屏 .asm(2571): error A51: TARGET OUT OF RANGE,将2571行去掉可以通过编译,但是在节日时,查询结果显示错乱,请您帮看看怎样解决。谢谢。改的程序附后:

;;*************节日判断**************************
SPRINY:  clr JIERIFG
       //  JB  CXUNJG, SPRIN10    (2571行)
         MOV A,DATTIM
         CJNE A,#1,SPRIN3
         MOV A,MTHTIM
         CJNE A,#1,SPRIN1;元旦
         MOV JIERI,#1
         AJMP SPRIN0
SPRIN1:  CJNE A,#5,SPRIN2;五一
         MOV JIERI,#2
         AJMP SPRIN0
SPRIN2:  CJNE A,#10H,SPRIN3;国庆
         MOV JIERI,#3
         AJMP SPRIN0
SPRIN3:MOV A,CONVERT_DATE
         CJNE A,#5,SPRIN4;端午节
         MOV A,CONVERT_MONTH
         CJNE A,#5H,SPRIN4
         MOV  JIERI,#4
         AJMP  SPRIN0
SPRIN4:  MOV A,CONVERT_DATE
         CJNE A,#0FH,SPRIN5;中秋节
         MOV A,CONVERT_MONTH
         CJNE A,#8H,SPRIN5
         MOV  JIERI,#5
         AJMP  SPRIN0
SPRIN5:  MOV A,CONVERT_DATE;春节
         CJNE A,#1H,SPRIN6
         MOV A,CONVERT_MONTH
         CJNE A,#1H,SPRIN6
         MOV  JIERI,#6
         AJMP  SPRIN0
SPRIN6:  MOV A,DATTIM
         CJNE A,#06H,SPRIN7
         MOV A,MTHTIM
         CJNE A,#03H,SPRIN7;        生日1
         MOV  JIERI,#7
         AJMP  SPRIN0
SPRIN7:  MOV A,DATTIM
         CJNE A,#30H,SPRIN8
         MOV A,MTHTIM
         CJNE A,#10H,SPRIN8;        生日2
         MOV  JIERI,#8
         AJMP  SPRIN0
SPRIN8:  MOV A,DATTIM
         CJNE A,#19H,SPRIN9
         MOV A,MTHTIM
         CJNE A,#11H,SPRIN9;        生日3
         MOV  JIERI,#9
         AJMP  SPRIN0
SPRIN9:  JNB SPRING,SPRIN10;除夕
         MOV  JIERI,#10
SPRIN0:  SETB JIERIFG
SPRIN10:  RET
;*************节日置数********************
BUFFSPR: ;CPL  JIERIFZ
         ;JB  JIERIFZ, SPRIN9
         ;LJMP  BUFF
;SPRIN9:
         MOV  R2,JIERI
         DJNZ R2,SPRSET1;           元旦
         MOV DPTR,#SPR1TAB
         AJMP  SPRSET0
SPRSET1: DJNZ R2,SPRSET2;    五一
         MOV DPTR,#SPR2TAB
         AJMP  SPRSET0
SPRSET2: DJNZ R2,SPRSET3;    十一
         MOV DPTR,#SPR3TAB
         AJMP  SPRSET0
SPRSET3: DJNZ R2,SPRSET4;    端午
         MOV DPTR,#SPR10TAB
         AJMP  SPRSET0
SPRSET4: DJNZ R2,SPRSET5;    中秋
         MOV DPTR,#SPR4TAB
         AJMP  SPRSET0
SPRSET5: DJNZ R2,SPRSET6;   春节
         MOV DPTR,#SPR5TAB
         AJMP  SPRSET0


SPRSET6: DJNZ R2,SPRSET7 ; 生日1
         MOV DPTR,#SPR6TAB
         MOV R2,#30H
         MOV R0,#0H
         MOV R1,#80H
         AJMP  SPRSET10
SPRSET7: DJNZ R2,SPRSET8;   生日2
         MOV DPTR,#SPR8TAB
         MOV R2,#30H
         MOV R0,#0H
         MOV R1,#80H
         AJMP  SPRSET10
SPRSET8: DJNZ R2,SPRSET9;  生日3
         MOV DPTR,#SPR9TAB
         MOV R2,#30H
         MOV R0,#0H
         MOV R1,#80H
         AJMP  SPRSET10



SPRSET9: MOV DPTR,#SPR7TAB;  春节
SPRSET0: MOV R2,#30H
         MOV R0,#0H
         MOV R1,#86H
SPRSET10: MOV A,R0
         MOVC A,@A+DPTR
         MOV @R1,A
         INC R1
         INC R0
         DJNZ R2,SPRSET10
         RET

QQ|手机版|小黑屋|Archiver|长汀无线电厂交流论坛  

GMT+8, 2024-5-17 17:05 , Processed in 0.655618 second(s), 13 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

返回顶部