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

📄 12ad.ls1

📁 应用tlc1543及cd4067对35路信号进行采集
💻 LS1
📖 第 1 页 / 共 5 页
字号:
0005                 229              ah?044:   DS   1
                     230     ; #include <reg51rc2.h>
                     231     ; #include <stdio.h>
                     232     ; #include <math.h>
                     233     ; #include <intrins.h>
                     234     ; 
                     235     ; sbit CLOCK=P1^3;     //1543与MCU接口定义
                     236     ; sbit D_IN=P1^4;
                     237     ; sbit D_OUT=P1^5;
                     238     ; sbit _CS=P1^6;
                     239     ; 
                     240     ; #define uint unsigned int
                     241     ; #define uchar unsigned char
                     242     ; 
                     243     ; uint xdata adresult[34][6];
                     244     ; uint idata Result[34];
                     245     ; uchar Times;
                     246     ; 
                     247     ; /*********读tlc1543子程序****************************/
                     248     ; uint Read1543(uchar port)     //形参port是采样的通道号
                     249     
----                 250             RSEG  ?PR?_Read1543?12AD
0000                 251     _Read1543:
                     252             USING   0
                     253                             ; SOURCE LINE # 19
                     254     ;---- Variable 'port?040' assigned to Register 'R7' ----
                     255     ; {
A51 MACRO ASSEMBLER  12AD                                                                 06/12/2005 10:08:42 PAGE     5

                     256                             ; SOURCE LINE # 20
                     257     ;     uint data ad;uint data i;
                     258     ;     uchar data al=0,ah=0;
                     259                             ; SOURCE LINE # 22
0000 E4              260             CLR     A
0001 F500     F      261             MOV     al?043,A
0003 F500     F      262             MOV     ah?044,A
                     263     ; 
                     264     ;     CLOCK=0;_CS=0;
                     265                             ; SOURCE LINE # 24
0005 C293            266             CLR     CLOCK
0007 C296            267             CLR     _CS
                     268     ;     port<<=4;
                     269                             ; SOURCE LINE # 25
0009 EF              270             MOV     A,R7
000A C4              271             SWAP    A
000B 54F0            272             ANL     A,#0F0H
000D FF              273             MOV     R7,A
                     274     ;     for (i=0;i<4;i++) //把通道号打入1543
                     275                             ; SOURCE LINE # 26
000E E4              276             CLR     A
000F F500     F      277             MOV     i?042,A
0011 F500     F      278             MOV     i?042+01H,A
0013                 279     ?C0001:
                     280     ;         {
                     281                             ; SOURCE LINE # 27
                     282     ;           D_IN=(bit)(port&0x80);CLOCK=1;CLOCK=0;
                     283                             ; SOURCE LINE # 28
0013 EF              284             MOV     A,R7
0014 33              285             RLC     A
0015 9294            286             MOV     D_IN,C
0017 D293            287             SETB    CLOCK
0019 C293            288             CLR     CLOCK
                     289     ;           port<<=1;
                     290                             ; SOURCE LINE # 29
001B EF              291             MOV     A,R7
001C 25E0            292             ADD     A,ACC
001E FF              293             MOV     R7,A
                     294     ;         }     
                     295                             ; SOURCE LINE # 30
001F 0500     F      296             INC     i?042+01H
0021 E500     F      297             MOV     A,i?042+01H
0023 7002            298             JNZ     ?C0052
0025 0500     F      299             INC     i?042
0027                 300     ?C0052:
0027 6404            301             XRL     A,#04H
0029 4500     F      302             ORL     A,i?042
002B 70E6            303             JNZ     ?C0001
002D                 304     ?C0002:
                     305     ;         for (i=0;i<6;i++) //填充6个CLOCK
                     306                             ; SOURCE LINE # 31
002D E4              307             CLR     A
002E F500     F      308             MOV     i?042,A
0030 F500     F      309             MOV     i?042+01H,A
0032                 310     ?C0004:
                     311     ;         {
                     312                             ; SOURCE LINE # 32
                     313     ;         CLOCK=1;CLOCK=0;
                     314                             ; SOURCE LINE # 33
0032 D293            315             SETB    CLOCK
0034 C293            316             CLR     CLOCK
                     317     ;         }
                     318                             ; SOURCE LINE # 34
0036 0500     F      319             INC     i?042+01H
0038 E500     F      320             MOV     A,i?042+01H
003A 7002            321             JNZ     ?C0053
A51 MACRO ASSEMBLER  12AD                                                                 06/12/2005 10:08:42 PAGE     6

003C 0500     F      322             INC     i?042
003E                 323     ?C0053:
003E 6406            324             XRL     A,#06H
0040 4500     F      325             ORL     A,i?042
0042 70EE            326             JNZ     ?C0004
0044                 327     ?C0005:
                     328     ; 
                     329     ;     _CS=1;_nop_();_nop_();_CS=0; //等待AD转换
                     330                             ; SOURCE LINE # 36
0044 D296            331             SETB    _CS
0046 00              332             NOP     
0047 00              333             NOP     
0048 C296            334             CLR     _CS
                     335     ; 
                     336     ;     for (i=0;i<2;i++) //取D9,D8
                     337                             ; SOURCE LINE # 38
004A E4              338             CLR     A
004B F500     F      339             MOV     i?042,A
004D F500     F      340             MOV     i?042+01H,A
004F                 341     ?C0007:
                     342     ;         {
                     343                             ; SOURCE LINE # 39
                     344     ;           D_OUT=1;CLOCK=1;
                     345                             ; SOURCE LINE # 40
004F D295            346             SETB    D_OUT
0051 D293            347             SETB    CLOCK
                     348     ;           ah<<=1;
                     349                             ; SOURCE LINE # 41
0053 E500     F      350             MOV     A,ah?044
0055 25E0            351             ADD     A,ACC
0057 F500     F      352             MOV     ah?044,A
                     353     ;           if (D_OUT) ah|=0x01;
                     354                             ; SOURCE LINE # 42
0059 309503          355             JNB     D_OUT,?C0010
005C 430001   F      356             ORL     ah?044,#01H
005F                 357     ?C0010:
                     358     ;           CLOCK=0;
                     359                             ; SOURCE LINE # 43
005F C293            360             CLR     CLOCK
                     361     ;         }     
                     362                             ; SOURCE LINE # 44
0061 0500     F      363             INC     i?042+01H
0063 E500     F      364             MOV     A,i?042+01H
0065 7002            365             JNZ     ?C0054
0067 0500     F      366             INC     i?042
0069                 367     ?C0054:
0069 6402            368             XRL     A,#02H
006B 4500     F      369             ORL     A,i?042
006D 70E0            370             JNZ     ?C0007
006F                 371     ?C0008:
                     372     ; 
                     373     ;     for (i=0;i<8;i++) //取D7--D0
                     374                             ; SOURCE LINE # 46
006F E4              375             CLR     A
0070 F500     F      376             MOV     i?042,A
0072 F500     F      377             MOV     i?042+01H,A
0074                 378     ?C0011:
                     379     ;         {
                     380                             ; SOURCE LINE # 47
                     381     ;           D_OUT=1;CLOCK=1;
                     382                             ; SOURCE LINE # 48
0074 D295            383             SETB    D_OUT
0076 D293            384             SETB    CLOCK
                     385     ;           al<<=1;
                     386                             ; SOURCE LINE # 49
0078 E500     F      387             MOV     A,al?043
A51 MACRO ASSEMBLER  12AD                                                                 06/12/2005 10:08:42 PAGE     7

007A 25E0            388             ADD     A,ACC
007C F500     F      389             MOV     al?043,A
                     390     ;           if (D_OUT) al|=0x01;
                     391                             ; SOURCE LINE # 50
007E 309503          392             JNB     D_OUT,?C0014
0081 430001   F      393             ORL     al?043,#01H
0084                 394     ?C0014:
                     395     ;           CLOCK=0;
                     396                             ; SOURCE LINE # 51
0084 C293            397             CLR     CLOCK
                     398     ;         }     
                     399                             ; SOURCE LINE # 52
0086 0500     F      400             INC     i?042+01H
0088 E500     F      401             MOV     A,i?042+01H
008A 7002            402             JNZ     ?C0055
008C 0500     F      403             INC     i?042
008E                 404     ?C0055:
008E 6408            405             XRL     A,#08H
0090 4500     F      406             ORL     A,i?042
0092 70E0            407             JNZ     ?C0011
0094                 408     ?C0012:
                     409     ;     _CS=1;
                     410                             ; SOURCE LINE # 53
0094 D296            411             SETB    _CS
                     412     ; 
                     413     ;     ad=(uint)ah;ad<<=8;ad|=al; //得到AD值
                     414                             ; SOURCE LINE # 55
0096 750000   F      415             MOV     ad?041,#00H
0099 850000   F      416             MOV     ad?041+01H,ah?044
009C E500     F      417             MOV     A,ad?041+01H
009E 750000   F      418             MOV     ad?041+01H,#00H
00A1 F500     F      419             MOV     ad?041,A
00A3 E500     F      420             MOV     A,al?043
00A5 4200     F      421             ORL     ad?041+01H,A
                     422     ;     return (ad);
                     423                             ; SOURCE LINE # 56
00A7 AE00     F      424             MOV     R6,ad?041
00A9 AF00     F      425             MOV     R7,ad?041+01H
                     426     ; }
                     427                             ; SOURCE LINE # 57
00AB                 428     ?C0015:
00AB 22              429             RET     
                     430     ; END OF _Read1543
                     431     
                     432     ; 
                     433     ; /*********第t轮采样子程序****************************/
                     434     ; 
                     435     ; void Getad(uchar t)    
                     436     
----                 437             RSEG  ?PR?_Getad?12AD
0000                 438     _Getad:
                     439             USING   0
                     440                             ; SOURCE LINE # 61
0000 900000   F      441             MOV     DPTR,#t?145
0003 EF              442             MOV     A,R7
0004 F0              443             MOVX    @DPTR,A
                     444     ; {
                     445                             ; SOURCE LINE # 62
                     446     ;     char xdata *xdp;
                     447     ;     uint i,j,k;
                     448     ;     uchar ch=0;
                     449                             ; SOURCE LINE # 65
0005 E4              450             CLR     A
0006 900000   F      451             MOV     DPTR,#ch?150
0009 F0              452             MOVX    @DPTR,A
                     453     ;     for(i=0;i<4;i++)
A51 MACRO ASSEMBLER  12AD                                                                 06/12/2005 10:08:42 PAGE     8

                     454                             ; SOURCE LINE # 66
000A 900000   F      455             MOV     DPTR,#i?147
000D F0              456             MOVX    @DPTR,A
000E A3              457             INC     DPTR
000F F0              458             MOVX    @DPTR,A
0010                 459     ?C0016:
0010 900000   F      460             MOV     DPTR,#i?147
0013 E0              461             MOVX    A,@DPTR
0014 FE              462             MOV     R6,A
0015 A3              463             INC     DPTR
0016 E0              464             MOVX    A,@DPTR

⌨️ 快捷键说明

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