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

📄 serial.ls1

📁 本人于2005年初开始准备将&micro C/OS-II嵌入式实时操作系统移植到8051单片机上
💻 LS1
📖 第 1 页 / 共 5 页
字号:
00C1 EA              885             MOV     A,R2
00C2 6583            886             XRL     A,DPH
00C4                 887     ?C0182:
00C4 7004            888             JNZ     ?C0014
                     889     ; //出临界区
                     890     ; #pragma ASM
                     891     ;     POP IE;
00C6 D0A8            892               POP IE;
00C8 8038            893             SJMP    ?C0015
                     894     ; #pragma ENDASM
                     895     ;         return;}                  //TxBuf Full
                     896                             ; SOURCE LINE # 151
00CA                 897     ?C0014:
                     898     ;         *inTxBuf=ch;
                     899                             ; SOURCE LINE # 152
00CA 900003          900             MOV     DPTR,#03H
00CD 120000   F      901             LCALL   ?C?XBPOFF
00D0 E0              902             MOVX    A,@DPTR
00D1 FF              903             MOV     R7,A
00D2 900000   F      904             MOV     DPTR,#inTxBuf
00D5 E0              905             MOVX    A,@DPTR
00D6 FB              906             MOV     R3,A
00D7 A3              907             INC     DPTR
A51 MACRO ASSEMBLER  SERIAL                                                               09/04/2007 10:27:37 PAGE    15

00D8 E0              908             MOVX    A,@DPTR
00D9 FA              909             MOV     R2,A
00DA A3              910             INC     DPTR
00DB E0              911             MOVX    A,@DPTR
00DC F9              912             MOV     R1,A
00DD EF              913             MOV     A,R7
00DE 120000   F      914             LCALL   ?C?CSTPTR
                     915     ;         inTxBuf=t;
                     916                             ; SOURCE LINE # 153
00E1 850083   F      917             MOV     DPH,?C_XBP
00E4 850082   F      918             MOV     DPL,?C_XBP+01H
00E7 E0              919             MOVX    A,@DPTR
00E8 F9              920             MOV     R1,A
00E9 A3              921             INC     DPTR
00EA E0              922             MOVX    A,@DPTR
00EB FA              923             MOV     R2,A
00EC A3              924             INC     DPTR
00ED E0              925             MOVX    A,@DPTR
00EE 900000   F      926             MOV     DPTR,#inTxBuf
00F1 C9              927             XCH     A,R1
00F2 F0              928             MOVX    @DPTR,A
00F3 A3              929             INC     DPTR
00F4 EA              930             MOV     A,R2
00F5 F0              931             MOVX    @DPTR,A
00F6 A3              932             INC     DPTR
00F7 E9              933             MOV     A,R1
00F8 F0              934             MOVX    @DPTR,A
                     935     ;         //ES=1;
                     936     ; //出临界区
                     937     ; #pragma ASM
                     938     ;     POP IE;
00F9 D0A8            939               POP IE;
                     940     ; #pragma ENDASM
                     941     ;         if(TIflag){           
                     942                             ; SOURCE LINE # 159
00FB 300004   F      943             JNB     TIflag,?C0015
                     944     ;                 TIflag=0;
                     945                             ; SOURCE LINE # 160
00FE C200     F      946             CLR     TIflag
                     947     ;                 TI=1;
                     948                             ; SOURCE LINE # 161
0100 D299            949             SETB    TI
                     950     ;         }
                     951                             ; SOURCE LINE # 162
                     952     ; }
                     953                             ; SOURCE LINE # 163
0102                 954     ?C0015:
0102 900004          955             MOV     DPTR,#04H
0105 020000   F      956             LJMP    ?C?ADDXBP
                     957     ; END OF _?PrintChar
                     958     
                     959     ; 
                     960     ; void PrintCh(unsigned char ch) reentrant//内部使用,不建议用户看到。
                     961     
----                 962             RSEG  ?PR?_?PrintCh?SERIAL
0000                 963     _?PrintCh:
                     964             USING   0
                     965                             ; SOURCE LINE # 165
0000 90FFFF          966             MOV     DPTR,#0FFFFH
0003 120000   F      967             LCALL   ?C?ADDXBP
0006 EF              968             MOV     A,R7
0007 F0              969             MOVX    @DPTR,A
                     970     ; {
                     971     ;         if(ch>=0&&ch<=9) ch=ch+'0';
                     972                             ; SOURCE LINE # 167
0008 850083   F      973             MOV     DPH,?C_XBP
A51 MACRO ASSEMBLER  SERIAL                                                               09/04/2007 10:27:37 PAGE    16

000B 850082   F      974             MOV     DPL,?C_XBP+01H
000E E0              975             MOVX    A,@DPTR
000F FF              976             MOV     R7,A
0010 C3              977             CLR     C
0011 9400            978             SUBB    A,#00H
0013 400C            979             JC      ?C0017
0015 EF              980             MOV     A,R7
0016 D3              981             SETB    C
0017 9409            982             SUBB    A,#09H
0019 5006            983             JNC     ?C0017
001B E0              984             MOVX    A,@DPTR
001C 2430            985             ADD     A,#030H
001E F0              986             MOVX    @DPTR,A
001F 800A            987             SJMP    ?C0018
0021                 988     ?C0017:
                     989     ;         else ch=ch+'A'-10;
                     990                             ; SOURCE LINE # 168
0021 EF              991             MOV     A,R7
0022 2437            992             ADD     A,#037H
0024 850083   F      993             MOV     DPH,?C_XBP
0027 850082   F      994             MOV     DPL,?C_XBP+01H
002A F0              995             MOVX    @DPTR,A
002B                 996     ?C0018:
                     997     ;         PrintChar(ch);
                     998                             ; SOURCE LINE # 169
002B 850083   F      999             MOV     DPH,?C_XBP
002E 850082   F     1000             MOV     DPL,?C_XBP+01H
0031 E0             1001             MOVX    A,@DPTR
0032 FF             1002             MOV     R7,A
0033 120000   F     1003             LCALL   _?PrintChar
                    1004     ; }
                    1005                             ; SOURCE LINE # 170
0036 900001         1006             MOV     DPTR,#01H
0039 020000   F     1007             LJMP    ?C?ADDXBP
                    1008     ; END OF _?PrintCh
                    1009     
                    1010     ; 
                    1011     ; void insidePrintByte(unsigned char Byte) reentrant//内部使用,以十六进制格式显示1个字节数
                    1012     
----                1013             RSEG  ?PR?_?insidePrintByte?SERIAL
0000                1014     L?0214:
                    1015             USING   0
0000 850083   F     1016             MOV     DPH,?C_XBP
0003 850082   F     1017             MOV     DPL,?C_XBP+01H
0006 E0             1018             MOVX    A,@DPTR
0007 FF             1019             MOV     R7,A
0008                1020     _?insidePrintByte:
                    1021             USING   0
                    1022                             ; SOURCE LINE # 172
0008 90FFFF         1023             MOV     DPTR,#0FFFFH
000B 120000   F     1024             LCALL   ?C?ADDXBP
000E EF             1025             MOV     A,R7
000F F0             1026             MOVX    @DPTR,A
0010 90FFFF         1027             MOV     DPTR,#0FFFFH
0013 120000   F     1028             LCALL   ?C?ADDXBP
                    1029     ; {
                    1030     ;         unsigned char c;
                    1031     ;         c=Byte;
                    1032                             ; SOURCE LINE # 175
0016 850083   F     1033             MOV     DPH,?C_XBP
0019 850082   F     1034             MOV     DPL,?C_XBP+01H
001C A3             1035             INC     DPTR
001D E0             1036             MOVX    A,@DPTR
001E 850083   F     1037             MOV     DPH,?C_XBP
0021 850082   F     1038             MOV     DPL,?C_XBP+01H
A51 MACRO ASSEMBLER  SERIAL                                                               09/04/2007 10:27:37 PAGE    17

0024 F0             1039             MOVX    @DPTR,A
                    1040     ;         c=c>>4;        
                    1041                             ; SOURCE LINE # 176
0025 E0             1042             MOVX    A,@DPTR
0026 C4             1043             SWAP    A
0027 540F           1044             ANL     A,#0FH
0029 F0             1045             MOVX    @DPTR,A
                    1046     ;         PrintCh(c);
                    1047                             ; SOURCE LINE # 177
002A E0             1048             MOVX    A,@DPTR
002B FF             1049             MOV     R7,A
002C 120000   F     1050             LCALL   _?PrintCh
                    1051     ;         c=Byte;c=c&0x0F;PrintCh(c);        
                    1052                             ; SOURCE LINE # 178
002F 850083   F     1053             MOV     DPH,?C_XBP
0032 850082   F     1054             MOV     DPL,?C_XBP+01H
0035 A3             1055             INC     DPTR
0036 E0             1056             MOVX    A,@DPTR
0037 850083   F     1057             MOV     DPH,?C_XBP
003A 850082   F     1058             MOV     DPL,?C_XBP+01H
003D F0             1059             MOVX    @DPTR,A
003E E0             1060             MOVX    A,@DPTR
003F 540F           1061             ANL     A,#0FH
0041 F0             1062             MOVX    @DPTR,A
0042 E0             1063             MOVX    A,@DPTR
0043 FF             1064             MOV     R7,A
0044 120000   F     1065             LCALL   _?PrintCh
                    1066     ; }
                    1067                             ; SOURCE LINE # 179
0047 900002         1068             MOV     DPTR,#02H
004A 020000   F     1069             LJMP    ?C?ADDXBP
                    1070     ; END OF _?insidePrintByte
                    1071     
                    1072     ; 
                    1073     ; void PrintByte(unsigned char Byte) reentrant//以十六进制格式显示1个字节数据
                    1074     
----                1075             RSEG  ?PR?_?PrintByte?SERIAL
0000                1076     _?PrintByte:
                    1077             USING   0
                    1078                             ; SOURCE LINE # 181
0000 90FFFF         1079             MOV     DPTR,#0FFFFH
0003 120000   F     1080             LCALL   ?C?ADDXBP
0006 EF             1081             MOV     A,R7
0007 F0             1082             MOVX    @DPTR,A
                    1083     ; {
                    1084     ;         //EA=0;
                    1085     ; //入临界区
                    1086     ; #pragma ASM
                    1087     ;     PUSH IE;
0008 C0A8           1088               PUSH IE;
                    1089     ;     CLR EA;
000A C2AF           1090               CLR EA;
                    1091     ; #pragma ENDASM
                    1092     ;         insidePrintByte(Byte);                
                    1093                             ; SOURCE LINE # 189
000C 120000   F     1094             LCALL   L?0214
                    1095     ;         //EA=1;
                    1096     ; //出临界区
                    1097     ; #pragma ASM
                    1098     ;     POP IE;
000F D0A8           1099               POP IE;
                    1100     ; #pragma ENDASM
                    1101     ; }
                    1102                             ; SOURCE LINE # 195
0011 900001         1103             MOV     DPTR,#01H
0014 020000   F     1104             LJMP    ?C?ADDXBP
A51 MACRO ASSEMBLER  SERIAL                                                               09/04/2007 10:27:37 PAGE    18

                    1105     ; END OF _?PrintByte
                    1106     
        

⌨️ 快捷键说明

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