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

📄 uart.ls1

📁 mifarea卡程序mifarea卡程序mifarea卡程序
💻 LS1
📖 第 1 页 / 共 5 页
字号:

0026 22              454             RET     
                     455     ; END OF PutInputData
                     456     
                     457     ; 
                     458     ; int GetInputData( void )
                     459     
----                 460             RSEG  ?PR?GetInputData?UART
0000                 461     GetInputData:
                     462             USING   0
                     463                             ; SOURCE LINE # 97
                     464     ; {
                     465                             ; SOURCE LINE # 98
                     466     ;       unsigned char tmp; 
                     467     ;       
                     468     ;     EnterCrtcl();
                     469                             ; SOURCE LINE # 101
0000 C2AC            470             CLR     ES
                     471     ;       if( IBufGetIdx == IBufPutIdx )
                     472                             ; SOURCE LINE # 102
0002 E500     F      473             MOV     A,IBufGetIdx
0004 6500     F      474             XRL     A,IBufPutIdx
0006 7007            475             JNZ     ?C0009
                     476     ;       {
                     477                             ; SOURCE LINE # 103
                     478     ;           LeaveCrtcl();
                     479                             ; SOURCE LINE # 104
0008 D2AC            480             SETB    ES
                     481     ;               return -1;
                     482                             ; SOURCE LINE # 105
000A 7EFF            483             MOV     R6,#0FFH
000C 7FFF            484             MOV     R7,#0FFH
000E 22              485             RET     
                     486     ;       }
                     487                             ; SOURCE LINE # 106
000F                 488     ?C0009:
                     489     ; 
                     490     ;       tmp = InputBuf[IBufGetIdx++];
                     491                             ; SOURCE LINE # 108
000F AF00     F      492             MOV     R7,IBufGetIdx
0011 0500     F      493             INC     IBufGetIdx
0013 7400     F      494             MOV     A,#LOW (InputBuf)
0015 2F              495             ADD     A,R7
0016 F8              496             MOV     R0,A
0017 E6              497             MOV     A,@R0
0018 FF              498             MOV     R7,A
                     499     ;---- Variable 'tmp?240' assigned to Register 'R7' ----
                     500     ; 
                     501     ;       #if (BUF_SIZE != 256)
                     502     ;               if(IBufGetIdx==BUF_SIZE)
                     503                             ; SOURCE LINE # 111
0019 E500     F      504             MOV     A,IBufGetIdx
001B B42003          505             CJNE    A,#020H,?C0011
                     506     ;                       IBufGetIdx=0;
                     507                             ; SOURCE LINE # 112
001E E4              508             CLR     A
001F F500     F      509             MOV     IBufGetIdx,A
0021                 510     ?C0011:
                     511     ;       #endif
                     512     ;       
                     513     ;       LeaveCrtcl();
                     514                             ; SOURCE LINE # 115
0021 D2AC            515             SETB    ES
                     516     ;       return tmp;
                     517                             ; SOURCE LINE # 116
0023 7E00            518             MOV     R6,#00H
                     519     ; }
A51 MACRO ASSEMBLER  UART                                                                 03/13/2009 15:44:52 PAGE     9

                     520                             ; SOURCE LINE # 117
0025                 521     ?C0010:
0025 22              522             RET     
                     523     ; END OF GetInputData
                     524     
                     525     ; 
                     526     ; bit GetOutputData( void )
                     527     
----                 528             RSEG  ?PR?GetOutputData?UART
0000                 529     GetOutputData:
                     530                             ; SOURCE LINE # 119
                     531     ; {
                     532                             ; SOURCE LINE # 120
                     533     ;       if( OBufPutIdx == OBufGetIdx )
                     534                             ; SOURCE LINE # 121
0000 E500     F      535             MOV     A,OBufPutIdx
0002 6500     F      536             XRL     A,OBufGetIdx
0004 7004            537             JNZ     ?C0012
                     538     ;       {
                     539                             ; SOURCE LINE # 122
                     540     ;               SbufWorking=0;
                     541                             ; SOURCE LINE # 123
0006 C200     F      542             CLR     SbufWorking
                     543     ;               return 0;
                     544                             ; SOURCE LINE # 124
0008 C3              545             CLR     C
0009 22              546             RET     
                     547     ;       }
                     548                             ; SOURCE LINE # 125
000A                 549     ?C0012:
                     550     ; 
                     551     ;       SBUF = OutputBuf[OBufGetIdx];
                     552                             ; SOURCE LINE # 127
000A 7400     F      553             MOV     A,#LOW (OutputBuf)
000C 2500     F      554             ADD     A,OBufGetIdx
000E F582            555             MOV     DPL,A
0010 E4              556             CLR     A
0011 3400     F      557             ADDC    A,#HIGH (OutputBuf)
0013 F583            558             MOV     DPH,A
0015 E0              559             MOVX    A,@DPTR
0016 F599            560             MOV     SBUF,A
                     561     ;       OBufGetIdx++;
                     562                             ; SOURCE LINE # 128
0018 0500     F      563             INC     OBufGetIdx
                     564     ;       #if (OBUF_SIZE != 256)
                     565     ;               if(OBufGetIdx==OBUF_SIZE)
                     566                             ; SOURCE LINE # 130
001A E500     F      567             MOV     A,OBufGetIdx
001C B41003          568             CJNE    A,#010H,?C0014
                     569     ;                   OBufGetIdx=0;
                     570                             ; SOURCE LINE # 131
001F E4              571             CLR     A
0020 F500     F      572             MOV     OBufGetIdx,A
0022                 573     ?C0014:
                     574     ;       #endif
                     575     ;     return 1;
                     576                             ; SOURCE LINE # 133
0022 D3              577             SETB    C
                     578     ; }
                     579                             ; SOURCE LINE # 134
0023                 580     ?C0013:
0023 22              581             RET     
                     582     ; END OF GetOutputData
                     583     
                     584     ; 
                     585     ; bit PutOutputData( unsigned char abyte )
A51 MACRO ASSEMBLER  UART                                                                 03/13/2009 15:44:52 PAGE    10

                     586     
----                 587             RSEG  ?PR?_PutOutputData?UART
0000                 588     _PutOutputData:
                     589             USING   0
                     590                             ; SOURCE LINE # 136
                     591     ;---- Variable 'abyte?441' assigned to Register 'R7' ----
                     592     ; {
                     593                             ; SOURCE LINE # 137
                     594     ;       EnterCrtcl();
                     595                             ; SOURCE LINE # 138
0000 C2AC            596             CLR     ES
                     597     ;       #if (OBUF_SIZE!=256)
                     598     ;               if( OBufGetIdx ==0 )
                     599                             ; SOURCE LINE # 140
0002 E500     F      600             MOV     A,OBufGetIdx
0004 7007            601             JNZ     ?C0015
                     602     ;                       if( OBufPutIdx == OBUF_SIZE-1 )
                     603                             ; SOURCE LINE # 141
0006 E500     F      604             MOV     A,OBufPutIdx
0008 B40F02          605             CJNE    A,#0FH,?C0015
                     606     ;                       {
                     607                             ; SOURCE LINE # 142
                     608     ;                           LeaveCrtcl();
                     609                             ; SOURCE LINE # 143
                     610     ;                           return 0;
                     611                             ; SOURCE LINE # 144
000B 8007            612             SJMP    ?C0051
                     613     ;                       }
                     614                             ; SOURCE LINE # 145
000D                 615     ?C0015:
                     616     ;       #endif
                     617     ;       
                     618     ;       if( OBufPutIdx == OBufGetIdx-1 )
                     619                             ; SOURCE LINE # 148
000D E500     F      620             MOV     A,OBufGetIdx
000F 14              621             DEC     A
0010 6500     F      622             XRL     A,OBufPutIdx
0012 7004            623             JNZ     ?C0018
                     624     ;       {
                     625                             ; SOURCE LINE # 149
                     626     ;           LeaveCrtcl();
                     627                             ; SOURCE LINE # 150
0014                 628     ?C0051:
0014 D2AC            629             SETB    ES
                     630     ;           return 0;
                     631                             ; SOURCE LINE # 151
0016 C3              632             CLR     C
0017 22              633             RET     
                     634     ;       }
                     635                             ; SOURCE LINE # 152
0018                 636     ?C0018:
                     637     ;       
                     638     ;       OutputBuf[OBufPutIdx++] = abyte;
                     639                             ; SOURCE LINE # 154
0018 AE00     F      640             MOV     R6,OBufPutIdx
001A 0500     F      641             INC     OBufPutIdx
001C 7400     F      642             MOV     A,#LOW (OutputBuf)
001E 2E              643             ADD     A,R6
001F F582            644             MOV     DPL,A
0021 E4              645             CLR     A
0022 3400     F      646             ADDC    A,#HIGH (OutputBuf)
0024 F583            647             MOV     DPH,A
0026 EF              648             MOV     A,R7
0027 F0              649             MOVX    @DPTR,A
                     650     ;       
                     651     ;       #if (OBUF_SIZE != 256)
A51 MACRO ASSEMBLER  UART                                                                 03/13/2009 15:44:52 PAGE    11

                     652     ;               if(OBufPutIdx==OBUF_SIZE)
                     653                             ; SOURCE LINE # 157
0028 E500     F      654             MOV     A,OBufPutIdx
002A B41003          655             CJNE    A,#010H,?C0019
                     656     ;                   OBufPutIdx=0;
                     657                             ; SOURCE LINE # 158
002D E4              658             CLR     A
002E F500     F      659             MOV     OBufPutIdx,A
0030                 660     ?C0019:
                     661     ;       #endif
                     662     ; 
                     663     ;       if(!SbufWorking)
                     664                             ; SOURCE LINE # 161
0030 200004   F      665             JB      SbufWorking,?C0020
                     666     ;       {
                     667                             ; SOURCE LINE # 162
                     668     ;               SbufWorking = 1;
                     669                             ; SOURCE LINE # 163
0033 D200     F      670             SETB    SbufWorking
                     671     ;               StartSend();
                     672                             ; SOURCE LINE # 164
0035 D299            673             SETB    TI
                     674     ;       }
                     675                             ; SOURCE LINE # 165
0037                 676     ?C0020:
                     677     ;       LeaveCrtcl();
                     678                             ; SOURCE LINE # 166
0037 D2AC            679             SETB    ES
                     680     ;       
                     681     ;       return 1;
                     682                             ; SOURCE LINE # 168
0039 D3              683             SETB    C
                     684     ; }

⌨️ 快捷键说明

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