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

📄 usb_main.lst

📁 USB9602 source code for C 8051
💻 LST
📖 第 1 页 / 共 3 页
字号:
  75   2         }
  76   1      }
  77          
  78          void PrikSerKom(void)								/* Obsluha seriove linky */
  79          {
  80   1        if(!CisloB)
  81   1      	{																/* Cti dolni B */
  82   2      	 PrikLo=getCharR();				CisloB=1;
  83   2      	}
  84   1        else
  85   1      	{																/* Cti horni B */
  86   2      	 PrikHi=getCharR();
  87   2      	 PrikInt=PrikLo;					PrikInt=PrikInt<<8;
  88   2      	 PrikInt=PrikInt+PrikHi;
  89   2      	 CisloB=0;
C51 COMPILER V5.50,  USB_MAIN                                                              02/12/99  16:05:15  PAGE 6   

  90   2      	 switch(PrikInt)											/* Plneni prikazu */
  91   2      	  {
  92   3      /*................................*/
  93   3      		case 0x5645:											/* Prikaz VE(R) */
  94   3      			 pomLo=getCharR();
  95   3      			 switch(pomLo)
  96   3      			  {
  97   4      				case 'R':
  98   4                     putkeyR(VER_konst_1);
  99   4                     putkeyR(VER_konst_2);
 100   4                     putkeyR(VER_konst_3);
 101   4                     putkeyR(VER_konst_4);
 102   4      				  break;
 103   4      			  }
 104   3      		  break;
 105   3      /*................................*/
 106   3      		case 0x5748:	_printfR(JmenoWH);		break;   /* Prikaz WH kdo je ? */
 107   3      /*................................*/
 108   3      		case 0x5744:   _printfR("ND");         break;   /* Prikaz WD co se dela */
 109   3      /*................................*/
 110   3      		case 0x5454:											/* Prikaz TT vypsani statusu */
 111   3                for(pomLo=0;pomLo<=PointCh;pomLo++)
 112   3                 {
 113   4                  putkeyR(PoleCh[pomLo]);
 114   4                 }
 115   3                PointCh=0;
 116   3              break;
 117   3      /*................................*/
 118   3      		case 0x5400:											/* Prikaz T0 Start mereni */
 119   3                XBYTE[0xC001]=0x01;       /* set Adr 01 */
 120   3                XBYTE[0xC000]=0x87;       /* Zapis 0x87 */
 121   3      
 122   3                XBYTE[0xC001]=0x01;       /* set Adr 01 */
 123   3                pomLo=XBYTE[0xC000];      /* Cteni Adr  */
 124   3                pomHi=XBYTE[0xC000];
 125   3                putkeyR(pomLo);
 126   3                putkeyR(pomHi);
 127   3              break;
 128   3      /*................................*/
 129   3      		case 0x5401:											/* Prikaz T1 Start mereni */
 130   3                while(!RxCount)
 131   3                 {
 132   4                  XBYTE[0xc001]=0x01;       /* set Adr 01 */
 133   4                  pomLo=XBYTE[0xc000];      /* Cteni Adr  */
 134   4                 }
 135   3      //          putkeyR(XBYTE[0xc001]);
 136   3              break;
 137   3      /*................................*/
 138   3      		case 0x5402:											/* Prikaz T2 Start mereni */
 139   3                XBYTE[0xc001]=0x01;       /* set Adr 01 */
 140   3                pomLo=XBYTE[0xc000];
 141   3                putkeyR(pomLo);
 142   3              break;
 143   3      /*................................*/
 144   3      //		case 0x5403:											/* Prikaz T3 Start mereni */
 145   3      //        break;
 146   3      /*................................*/
 147   3      
 148   3      		default    :
 149   3      			{
 150   4      			 CisloB=1;                             		/* Nebyl zadny prikaz */
 151   4      			 PrikLo=PrikHi;
 152   4      			}
 153   3      	  }
 154   2      	}
 155   1      }
C51 COMPILER V5.50,  USB_MAIN                                                              02/12/99  16:05:15  PAGE 7   

 156          
 157          
 158          /*************************************************/
 159          
 160          void main(void)
 161          {
 162   1        beep(40,20);                           /* vykopni pouze nedbal */
 163   1        serial_init ();
 164   1        PointCh=255;
 165   1        _printfR("USB_ON");
 166   1        init_usb();
 167   1        while(1)
 168   1         {
 169   2          if(RxCount)	PrikSerKom();								/* Seriova komunikace */
 170   2         }
 171   1      }
C51 COMPILER V5.50,  USB_MAIN                                                              02/12/99  16:05:15  PAGE 8   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION _beep (BEGIN)
;---- Variable 'frek' assigned to Register 'R7' ----
;---- Variable 'delka' assigned to Register 'R5' ----
                                           ; SOURCE LINE # 33
                                           ; SOURCE LINE # 34
                                           ; SOURCE LINE # 37
;---- Variable 'bi' assigned to Register 'R6' ----
0000 E4            CLR     A
0001 FE            MOV     R6,A
0002         ?C0001:
0002 EE            MOV     A,R6
0003 C3            CLR     C
0004 9D            SUBB    A,R5
0005 501B          JNC     ?C0010
                                           ; SOURCE LINE # 38
                                           ; SOURCE LINE # 39
0007 D297          SETB    beepr
;---- Variable 'bq' assigned to Register 'R4' ----
0009 E4            CLR     A
000A FC            MOV     R4,A
000B         ?C0004:
000B EC            MOV     A,R4
000C C3            CLR     C
000D 9F            SUBB    A,R7
000E 5003          JNC     ?C0005
0010 0C            INC     R4
0011 80F8          SJMP    ?C0004
0013         ?C0005:
                                           ; SOURCE LINE # 40
0013 C297          CLR     beepr
0015 E4            CLR     A
0016 FC            MOV     R4,A
0017         ?C0007:
0017 EC            MOV     A,R4
0018 C3            CLR     C
0019 9F            SUBB    A,R7
001A 5003          JNC     ?C0003
001C 0C            INC     R4
001D 80F8          SJMP    ?C0007
                                           ; SOURCE LINE # 41
001F         ?C0003:
001F 0E            INC     R6
0020 80E0          SJMP    ?C0001
                                           ; SOURCE LINE # 42
0022         ?C0010:
0022 22            RET     
             ; FUNCTION _beep (END)

             ; FUNCTION serial (BEGIN)
0000 C0E0          PUSH    ACC
0002 C0F0          PUSH    B
0004 C083          PUSH    DPH
0006 C082          PUSH    DPL
0008 C0D0          PUSH    PSW
000A 75D010        MOV     PSW,#010H
                                           ; SOURCE LINE # 46
                                           ; SOURCE LINE # 48
000D 120000  E     LCALL   serial_int
                                           ; SOURCE LINE # 49
0010 D0D0          POP     PSW
0012 D082          POP     DPL
0014 D083          POP     DPH
0016 D0F0          POP     B
C51 COMPILER V5.50,  USB_MAIN                                                              02/12/99  16:05:15  PAGE 9   

0018 D0E0          POP     ACC
001A 32            RETI    
             ; FUNCTION serial (END)

             ; FUNCTION serial_init (BEGIN)
                                           ; SOURCE LINE # 51
                                           ; SOURCE LINE # 52
0000 E4            CLR     A
0001 F587          MOV     PCON,A
0003 759852        MOV     SCON,#052H
                                           ; SOURCE LINE # 53
0006 758869        MOV     TCON,#069H
0009 758920        MOV     TMOD,#020H
                                           ; SOURCE LINE # 54
000C 758DFC        MOV     TH1,#0FCH
                                           ; SOURCE LINE # 55
000F 120000  E     LCALL   init_Bafr
0012 D2AC          SETB    ES
                                           ; SOURCE LINE # 56
0014 D2AF          SETB    EA
                                           ; SOURCE LINE # 57
0016 D28C          SETB    TR0
                                           ; SOURCE LINE # 58
0018 22            RET     
             ; FUNCTION serial_init (END)

             ; FUNCTION __printfR (BEGIN)
0000 8B00    R     MOV     s,R3
0002 8A00    R     MOV     s+01H,R2
0004 8900    R     MOV     s+02H,R1
                                           ; SOURCE LINE # 60
                                           ; SOURCE LINE # 61
                                           ; SOURCE LINE # 63
0006 E4            CLR     A
0007 F500    R     MOV     i,A
0009         ?C0013:
                                           ; SOURCE LINE # 64
0009 AB00    R     MOV     R3,s
000B AA00    R     MOV     R2,s+01H
000D A900    R     MOV     R1,s+02H
000F AF00    R     MOV     R7,i
0011 EF            MOV     A,R7
0012 33            RLC     A
0013 95E0          SUBB    A,ACC
0015 8F82          MOV     DPL,R7
0017 F583          MOV     DPH,A
0019 120000  E     LCALL   ?C?CLDOPTR
001C 6013          JZ      ?C0015
001E 0500    R     INC     i
0020 EF            MOV     A,R7
0021 33            RLC     A
0022 95E0          SUBB    A,ACC
0024 8F82          MOV     DPL,R7
0026 F583          MOV     DPH,A
0028 120000  E     LCALL   ?C?CLDOPTR
002B FF            MOV     R7,A
002C 120000  E     LCALL   _putkeyR
002F 80D8          SJMP    ?C0013
                                           ; SOURCE LINE # 65
0031         ?C0015:
0031 22            RET     
             ; FUNCTION __printfR (END)

             ; FUNCTION _getLInt (BEGIN)
0000 8B00    R     MOV     Uk,R3
0002 8A00    R     MOV     Uk+01H,R2
C51 COMPILER V5.50,  USB_MAIN                                                              02/12/99  16:05:15  PAGE 10  

0004 8900    R     MOV     Uk+02H,R1
                                           ; SOURCE LINE # 67
                                           ; SOURCE LINE # 68
                                           ; SOURCE LINE # 70
0006 7403          MOV     A,#03H
0008 2500    R     ADD     A,Uk+02H
000A F500    R     MOV     Uk+02H,A
000C E4            CLR     A
000D 3500    R     ADDC    A,Uk+01H
000F F500    R     MOV     Uk+01H,A
                                           ; SOURCE LINE # 71
0011 E4            CLR     A
0012 F500    R     MOV     i,A
0014         ?C0016:
                                           ; SOURCE LINE # 72
                                           ; SOURCE LINE # 73
0014 120000  E     LCALL   getCharR
;---- Variable 'd' assigned to Register 'R7' ----
                                           ; SOURCE LINE # 74
0017 AB00    R     MOV     R3,Uk
0019 AA00    R     MOV     R2,Uk+01H
001B A900    R     MOV     R1,Uk+02H
001D EF            MOV     A,R7
001E 120000  E     LCALL   ?C?CSTPTR
0021 74FF          MOV     A,#0FFH
0023 2500    R     ADD     A,Uk+02H
0025 F500    R     MOV     Uk+02H,A
0027 74FF          MOV     A,#0FFH
0029 3500    R     ADDC    A,Uk+01H
002B F500    R     MOV     Uk+01H,A
                                           ; SOURCE LINE # 75
002D 0500    R     INC     i
002F E500    R     MOV     A,i
0031 C3            CLR     C
0032 9404          SUBB    A,#04H
0034 40DE          JC      ?C0016
                                           ; SOURCE LINE # 76
0036         ?C0019:
0036 22            RET     
             ; FUNCTION _getLInt (END)

             ; FUNCTION PrikSerKom (BEGIN)
                                           ; SOURCE LINE # 78
                                           ; SOURCE LINE # 79
                                           ; SOURCE LINE # 80
0000 200008  R     JB      CisloB,?C0020
                                           ; SOURCE LINE # 81
                                           ; SOURCE LINE # 82
0003 120000  E     LCALL   getCharR
0006 8F00    R     MOV     PrikLo,R7
0008 D200    R     SETB    CisloB
                                           ; SOURCE LINE # 83
000A 22            RET     
000B         ?C0020:
                                           ; SOURCE LINE # 85
                                           ; SOURCE LINE # 86
000B 120000  E     LCALL   getCharR
000E 8F00    R     MOV     PrikHi,R7
                                           ; SOURCE LINE # 87
0010 750000  R     MOV     PrikInt,#00H
0013 850000  R     MOV     PrikInt+01H,PrikLo
0016 E500    R     MOV     A,PrikInt+01H
0018 750000  R     MOV     PrikInt+01H,#00H
001B F500    R     MOV     PrikInt,A
                                           ; SOURCE LINE # 88
001D EF            MOV     A,R7
C51 COMPILER V5.50,  USB_MAIN                                                              02/12/99  16:05:15  PAGE 11  

001E 2500    R     ADD     A,PrikInt+01H
0020 F500    R     MOV     PrikInt+01H,A
0022 E4            CLR     A
0023 3500    R     ADDC    A,PrikInt
0025 F500    R     MOV     PrikInt,A
                                           ; SOURCE LINE # 89
0027 C200    R     CLR     CisloB
                                           ; SOURCE LINE # 90
0029 FE            MOV     R6,A
002A E500    R     MOV     A,PrikInt+01H
002C 8EF0          MOV     B,R6
002E 120000  E     LCALL   ?C?ICASE
0031 0000    R     DW      ?C0032
0033 5400          DW      05400H
0035 0000    R     DW      ?C0034
0037 5401          DW      05401H
0039 0000    R     DW      ?C0036
003B 5402          DW      05402H

⌨️ 快捷键说明

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