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

📄 touch_drv.lst

📁 PLL的资料文档,包括资料
💻 LST
📖 第 1 页 / 共 4 页
字号:
 126          *----------------------------------------------------------------------------
 127          * PARAMS:
 128          *
 129          * return:
 130          *----------------------------------------------------------------------------
 131          * PURPOSE: 
 132          *----------------------------------------------------------------------------
 133          * EXAMPLE:
 134          *----------------------------------------------------------------------------
 135          * NOTE:
 136          *----------------------------------------------------------------------------
 137          * REQUIREMENTS:
 138          *****************************************************************************/
 139          Byte Touch_scanByteLSB (Byte bBit)
 140          {
 141   1              Byte bCount = 0x00,i;
 142   1              Byte bByte = 0x00,temp;
 143   1              //Byte i;
 144   1              for (i=0; i<bBit;)      {
 145   2                      while(!TOUCH_SCK && bCount<20) {        /* If the SCK is High, Waiting */
 146   3                              bCount++;
 147   3                              }
 148   2                      while(TOUCH_SCK){       /* If the SCK is Low, Sen the data */
 149   3                              if (TOUCH_SDI) {
 150   4                                      temp = 0x01;
 151   4                                      temp <<= i;
 152   4                              bByte |= temp;
 153   4                                      }
 154   3                              }
 155   2                      bCount =0;i++;
C51 COMPILER V8.01   TOUCH_DRV                                                             08/07/2006 11:04:36 PAGE 10  

 156   2                      }
 157   1              return(bByte);
 158   1      }
 159          
 160          /*F**************************************************************************
 161          * NAME: TouchPad_getLSB
 162          *----------------------------------------------------------------------------
 163          * PARAMS:
 164          *
 165          * return:
 166          *----------------------------------------------------------------------------
 167          * PURPOSE: 
 168          *----------------------------------------------------------------------------
 169          * EXAMPLE:
 170          *----------------------------------------------------------------------------
 171          * NOTE:
 172          *----------------------------------------------------------------------------
 173          * REQUIREMENTS:
 174          *****************************************************************************/
 175          void Touch_getMSB (Byte bByte)
 176          {
 177   1              Byte bCount = 0x00,i;
 178   1      
 179   1              for (i=0; i<8;) {
 180   2                      while(!TOUCH_SCK){      /* If the SCK is Low, Sen the data, To waiting */
 181   3                              if (bByte & 0x80) TOUCH_SDI = High;
 182   3                              else TOUCH_SDI = Low;
 183   3                                      }
 184   2                      while(TOUCH_SCK && bCount<20){  /* If the SCK is High, Waiting */
 185   3                              bCount++;
 186   3                              }
 187   2                      bByte <<= 1; bCount =0; i++;
 188   2                      }
 189   1      }
 190          
 191          /*F**************************************************************************
 192          * NAME: TouchPad_start
 193          *----------------------------------------------------------------------------
 194          * PARAMS:
 195          *
 196          * return:
 197          *----------------------------------------------------------------------------
 198          * PURPOSE: 
 199          *----------------------------------------------------------------------------
 200          * EXAMPLE:
 201          *----------------------------------------------------------------------------
 202          * NOTE:
 203          *----------------------------------------------------------------------------
 204          * REQUIREMENTS:
 205          *****************************************************************************/
 206          void Touch_start (void)
 207          {
 208   1              TOUCH_SDI = High;
 209   1              TOUCH_SDO = High;
 210   1              TOUCH_SCK = High;
 211   1              TOUCH_SS = Low;
 212   1      }
 213          
 214          /*F**************************************************************************
 215          * NAME: TouchPad_stop
 216          *----------------------------------------------------------------------------
 217          * PARAMS:
C51 COMPILER V8.01   TOUCH_DRV                                                             08/07/2006 11:04:36 PAGE 11  

 218          *
 219          * return:
 220          *----------------------------------------------------------------------------
 221          * PURPOSE: 
 222          *----------------------------------------------------------------------------
 223          * EXAMPLE:
 224          *----------------------------------------------------------------------------
 225          * NOTE:
 226          *----------------------------------------------------------------------------
 227          * REQUIREMENTS:
 228          *****************************************************************************/
 229          void Touch_stop (void)
 230          {
 231   1              TOUCH_SS = High;
 232   1              TOUCH_SDI = High;
 233   1              TOUCH_SDO = High;
 234   1              TOUCH_SCK = High;
 235   1      }
 236          
 237          /*F**************************************************************************
 238          * NAME: Touch_Wait
 239          *----------------------------------------------------------------------------
 240          * PARAMS:
 241          *
 242          * return:
 243          *----------------------------------------------------------------------------
 244          * PURPOSE: 
 245          *----------------------------------------------------------------------------
 246          * EXAMPLE:
 247          *----------------------------------------------------------------------------
 248          * NOTE:
 249          *----------------------------------------------------------------------------
 250          * REQUIREMENTS:
 251          *****************************************************************************/
 252          bit Touch_Wait (void)
 253          {
 254   1              Byte bCount;
 255   1      
 256   1              for (bCount=0; TOUCH_SCK && bCount < 6; bCount++) {     /* wait 150uS */
 257   2                      DelayX25us(1);
 258   2                      }
 259   1              if(bCount > 6) return(0); /* waiting time Out */
 260   1                      else  return(1);
 261   1      }
 262          
 263          
 264          
C51 COMPILER V8.01   TOUCH_DRV                                                             08/07/2006 11:04:36 PAGE 12  

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION Touch_PositionXY (BEGIN)
                                           ; SOURCE LINE # 32
                                           ; SOURCE LINE # 33
                                           ; SOURCE LINE # 35
0000 7D20              MOV     R5,#020H
0002 7F52              MOV     R7,#052H
0004 120000      R     LCALL   _Touch_Write
                                           ; SOURCE LINE # 36
0007 120000      R     LCALL   Touch_Wait
000A 4002              JC      ?C0001
000C 8005              SJMP    ?C0038
000E         ?C0001:
                                           ; SOURCE LINE # 37
000E 120000      R     LCALL   Touch_Read
0011 4005              JC      ?C0003
0013         ?C0038:
0013 120000      R     LCALL   Touch_stop
0016 C3                CLR     C
0017 22                RET     
0018         ?C0003:
                                           ; SOURCE LINE # 38
0018 7800        E     MOV     R0,#LOW TouchPad
001A E6                MOV     A,@R0
001B 7800        E     MOV     R0,#LOW TouchPad+02H
001D F6                MOV     @R0,A
                                           ; SOURCE LINE # 39
001E 18                DEC     R0
001F E6                MOV     A,@R0
0020 7800        E     MOV     R0,#LOW TouchPad+03H
0022 F6                MOV     @R0,A
                                           ; SOURCE LINE # 40
0023 D3                SETB    C
                                           ; SOURCE LINE # 42
0024         ?C0002:
0024 22                RET     
             ; FUNCTION Touch_PositionXY (END)

             ; FUNCTION Touch_PositionA (BEGIN)
                                           ; SOURCE LINE # 59
                                           ; SOURCE LINE # 60
                                           ; SOURCE LINE # 61
0000 7D30              MOV     R5,#030H
0002 7F52              MOV     R7,#052H
0004 120000      R     LCALL   _Touch_Write
                                           ; SOURCE LINE # 62
0007 120000      R     LCALL   Touch_Wait
000A 4002              JC      ?C0004
000C 8005              SJMP    ?C0039
000E         ?C0004:
                                           ; SOURCE LINE # 63
000E 120000      R     LCALL   Touch_Read
0011 4006              JC      ?C0006
0013         ?C0039:
0013 120000      R     LCALL   Touch_stop
0016 7F00              MOV     R7,#00H
0018 22                RET     
0019         ?C0006:
                                           ; SOURCE LINE # 64
0019 7800        E     MOV     R0,#LOW TouchPad+01H
C51 COMPILER V8.01   TOUCH_DRV                                                             08/07/2006 11:04:36 PAGE 13  

001B E6                MOV     A,@R0
001C FF                MOV     R7,A
                                           ; SOURCE LINE # 65
001D         ?C0005:
001D 22                RET     
             ; FUNCTION Touch_PositionA (END)

             ; FUNCTION Touch_Read (BEGIN)
                                           ; SOURCE LINE # 82
                                           ; SOURCE LINE # 83
                                           ; SOURCE LINE # 84
;---- Variable 'bTemp' assigned to Register 'R7' ----
0000 E4                CLR     A
0001 FF                MOV     R7,A
                                           ; SOURCE LINE # 86
0002 120000      R     LCALL   Touch_start
                                           ; SOURCE LINE # 87
0005 7F04              MOV     R7,#04H
0007 120000      R     LCALL   _Touch_scanByteLSB
                                           ; SOURCE LINE # 88
000A EF                MOV     A,R7
000B 6405              XRL     A,#05H
000D 6002              JZ      ?C0007
000F C3                CLR     C
0010 22                RET     
0011         ?C0007:
                                           ; SOURCE LINE # 89
0011 7F08              MOV     R7,#08H
0013 120000      R     LCALL   _Touch_scanByteLSB
                                           ; SOURCE LINE # 90
0016 7F08              MOV     R7,#08H
0018 120000      R     LCALL   _Touch_scanByteLSB
001B 7800        E     MOV     R0,#LOW TouchPad
001D A607              MOV     @R0,AR7
                                           ; SOURCE LINE # 91
001F 7F08              MOV     R7,#08H
0021 120000      R     LCALL   _Touch_scanByteLSB
0024 7800        E     MOV     R0,#LOW TouchPad+01H
0026 A607              MOV     @R0,AR7
                                           ; SOURCE LINE # 92
0028 7F04              MOV     R7,#04H
002A 120000      R     LCALL   _Touch_scanByteLSB
                                           ; SOURCE LINE # 93
002D EF                MOV     A,R7
002E 6401              XRL     A,#01H
0030 6002              JZ      ?C0009
0032 C3                CLR     C
0033 22                RET     
0034         ?C0009:
                                           ; SOURCE LINE # 94
0034 120000      R     LCALL   Touch_stop
                                           ; SOURCE LINE # 95
0037 D3                SETB    C
                                           ; SOURCE LINE # 96
0038         ?C0008:
0038 22                RET     
             ; FUNCTION Touch_Read (END)

             ; FUNCTION _Touch_Write (BEGIN)
                                           ; SOURCE LINE # 113
0000 8F00        R     MOV     PID,R7
0002 8D00        R     MOV     bRegister,R5
C51 COMPILER V8.01   TOUCH_DRV                                                             08/07/2006 11:04:36 PAGE 14  

⌨️ 快捷键说明

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