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

📄 bus.ls1

📁 采用台湾MRT晶捷公司的MRT4方案的液晶电视的程序
💻 LS1
📖 第 1 页 / 共 2 页
字号:
A51 MACRO ASSEMBLER  BUS                                                                  09/10/2004 16:09:02 PAGE     1


MACRO ASSEMBLER A51 V6.23
OBJECT MODULE PLACED IN BUS.OBJ
ASSEMBLER INVOKED BY: d:\Keil\C51\BIN\A51.EXE BUS.src PR(.\BUS.ls1) EP DEBUG

LOC  OBJ            LINE     SOURCE

                       1     ; .\BUS.SRC generated from: BUS.C
                       2     
                       3     $nomod51 
                       4     
                       5     NAME    BUS
                       6     
  0080                 7     P0      DATA    080H
  0090                 8     P1      DATA    090H
  00A0                 9     P2      DATA    0A0H
  00B0                10     P3      DATA    0B0H
  00D0                11     PSW     DATA    0D0H
  00E0                12     ACC     DATA    0E0H
  00F0                13     B       DATA    0F0H
  0081                14     SP      DATA    081H
  0082                15     DPL     DATA    082H
  0083                16     DPH     DATA    083H
  0087                17     PCON    DATA    087H
  0088                18     TCON    DATA    088H
  0089                19     TMOD    DATA    089H
  008A                20     TL0     DATA    08AH
  008B                21     TL1     DATA    08BH
  008C                22     TH0     DATA    08CH
  008D                23     TH1     DATA    08DH
  00A8                24     IE      DATA    0A8H
  00B8                25     IP      DATA    0B8H
  0098                26     SCON    DATA    098H
  0099                27     SBUF    DATA    099H
  00D7                28     CY      BIT     0D0H.7
  00D6                29     AC      BIT     0D0H.6
  00D5                30     F0      BIT     0D0H.5
  00D4                31     RS1     BIT     0D0H.4
  00D3                32     RS0     BIT     0D0H.3
  00D2                33     OV      BIT     0D0H.2
  00D0                34     P       BIT     0D0H.0
  008F                35     TF1     BIT     088H.7
  008E                36     TR1     BIT     088H.6
  008D                37     TF0     BIT     088H.5
  008C                38     TR0     BIT     088H.4
  008B                39     IE1     BIT     088H.3
  008A                40     IT1     BIT     088H.2
  0089                41     IE0     BIT     088H.1
  0088                42     IT0     BIT     088H.0
  00AF                43     EA      BIT     0A8H.7
  00AC                44     ES      BIT     0A8H.4
  00AB                45     ET1     BIT     0A8H.3
  00AA                46     EX1     BIT     0A8H.2
  00A9                47     ET0     BIT     0A8H.1
  00A8                48     EX0     BIT     0A8H.0
  00BC                49     PS      BIT     0B8H.4
  00BB                50     PT1     BIT     0B8H.3
  00BA                51     PX1     BIT     0B8H.2
  00B9                52     PT0     BIT     0B8H.1
  00B8                53     PX0     BIT     0B8H.0
  00B7                54     RD      BIT     0B0H.7
  00B6                55     WR      BIT     0B0H.6
  00B5                56     T1      BIT     0B0H.5
  00B4                57     T0      BIT     0B0H.4
  00B3                58     INT1    BIT     0B0H.3
A51 MACRO ASSEMBLER  BUS                                                                  09/10/2004 16:09:02 PAGE     2

  00B2                59     INT0    BIT     0B0H.2
  00B1                60     TXD     BIT     0B0H.1
  00B0                61     RXD     BIT     0B0H.0
  009F                62     SM0     BIT     098H.7
  009E                63     SM1     BIT     098H.6
  009D                64     SM2     BIT     098H.5
  009C                65     REN     BIT     098H.4
  009B                66     TB8     BIT     098H.3
  009A                67     RB8     BIT     098H.2
  0099                68     TI      BIT     098H.1
  0098                69     RI      BIT     098H.0
  00A7                70     SDAPin  BIT     0A0H.7
  00A6                71     SCLPin  BIT     0A0H.6
  00A4                72     WPPin   BIT     0A0H.4
  00A0                73     ResetPin        BIT     0A0H.0
  00B5                74     BrightnessPin   BIT     0B0H.5
  00A5                75     VGA_CON_PIN     BIT     0A0H.5
  0080                76     LED_O_Pin       BIT     080H.0
  0081                77     LED_G_Pin       BIT     080H.1
  00A2                78     PANEL_VCC_PIN   BIT     0A0H.2
  00A3                79     PANEL_BKL_PIN   BIT     0A0H.3
  0084                80     AUDIO_MUTE_PIN  BIT     080H.4
  0086                81     AUDIO_STBY_PIN  BIT     080H.6
  0093                82     POWER_BUT_PIN   BIT     090H.3
  0091                83     LEFT_BUT_PIN    BIT     090H.1
  0092                84     RIGHT_BUT_PIN   BIT     090H.2
  0094                85     MENU_BUT_PIN    BIT     090H.4
  0090                86     AUTO_BUT_PIN    BIT     090H.0
  00B5                87     SHUTTLE_Pin     BIT     0B0H.5
                      88     ?PR?_GoI2CMaster?BUS SEGMENT CODE 
                      89     ?PR?_SendI2CByte?BUS SEGMENT CODE 
                      90     ?PR?_RcvI2CByte?BUS  SEGMENT CODE 
                      91     ?PR?SendI2CStop?BUS  SEGMENT CODE 
                      92             EXTRN   BIT (NoAck)
                      93             EXTRN   BIT (BusFault)
                      94             EXTRN   BIT (BusBusy)
                      95             PUBLIC  SendI2CStop
                      96             PUBLIC  _RcvI2CByte
                      97             PUBLIC  _SendI2CByte
                      98             PUBLIC  _GoI2CMaster
                      99     ; /************************************************
                     100     ; *                                               *
                     101     ; * BUS.C:  BUS control routines.                 *
                     102     ; *                                               *
                     103     ; *************************************************/
                     104     ; #include <reg51.h>
                     105     ; #include <intrins.h>
                     106     ; #include "mascot.h"
                     107     ; #include "OSD.h"
                     108     ; #include "global.h"
                     109     ; 
                     110     ; 
                     111     ; 
                     112     ; #define USE_ASM               1
                     113     ; 
                     114     ; /*******************************************************************
                     115     ; * Send SCL pin high and wait for any clock stretching peripherals  *
                     116     ; ********************************************************************/
                     117     ; #define SCLHigh()     { SCLPin  = 1; while(!SCLPin);  }
                     118     ; #define SCLHigh2()    { SCLPin2 = 1; while(!SCLPin2); }
                     119     ; 
                     120     ; 
                     121     ; 
                     122     ; /********************************************************
                     123     ; * Grasp the I2C bus, send slave address and command     *
                     124     ; *********************************************************/
A51 MACRO ASSEMBLER  BUS                                                                  09/10/2004 16:09:02 PAGE     3

                     125     ; void GoI2CMaster(unsigned char adr)
                     126     
----                 127             RSEG  ?PR?_GoI2CMaster?BUS
0000                 128     _GoI2CMaster:
                     129             USING   0
                     130                             ; SOURCE LINE # 27
                     131     ;---- Variable 'adr?040' assigned to Register 'R7' ----
                     132     ; {
                     133                             ; SOURCE LINE # 28
                     134     ; 
                     135     ;       BusBusy = 1;
                     136                             ; SOURCE LINE # 30
0000 D200     F      137             SETB    BusBusy
                     138     ; 
                     139     ;       if (!SCLPin) SCLHigh();
                     140                             ; SOURCE LINE # 32
0002 20A605          141             JB      SCLPin,?C0001
0005 D2A6            142             SETB    SCLPin
0007                 143     ?C0002:
0007 30A6FD          144             JNB     SCLPin,?C0002
000A                 145     ?C0001:
                     146     ; 
                     147     ;     NoAck = 0; 
                     148                             ; SOURCE LINE # 34
000A C200     F      149             CLR     NoAck
                     150     ;     BusFault = 0;
                     151                             ; SOURCE LINE # 35
000C C200     F      152             CLR     BusFault
                     153     ; 
                     154     ;     if (SCLPin & SDAPin) {
                     155                             ; SOURCE LINE # 37
000E A2A7            156             MOV     C,SDAPin
0010 82A6            157             ANL     C,SCLPin
0012 500A            158             JNC     ?C0004
                     159     ;         SDAPin = 0; 
                     160                             ; SOURCE LINE # 38
0014 C2A7            161             CLR     SDAPin
                     162     ;         _nop_();
                     163                             ; SOURCE LINE # 39
0016 00              164             NOP     
                     165     ;         SCLPin = 0; 
                     166                             ; SOURCE LINE # 40
0017 C2A6            167             CLR     SCLPin
                     168     ;         _nop_(); 
                     169                             ; SOURCE LINE # 41
0019 00              170             NOP     
                     171     ;         SendI2CByte(adr);
                     172                             ; SOURCE LINE # 42
001A 120000   F      173             LCALL   _SendI2CByte
                     174     ;     } else
                     175                             ; SOURCE LINE # 43
001D 22              176             RET     
001E                 177     ?C0004:
                     178     ;         BusFault = 1;
                     179                             ; SOURCE LINE # 44
001E D200     F      180             SETB    BusFault
                     181     ; }
                     182                             ; SOURCE LINE # 45
0020                 183     ?C0006:
0020 22              184             RET     
                     185     ; END OF _GoI2CMaster
                     186     
                     187     ; 
                     188     ; 
                     189     ; 
                     190     ; 
A51 MACRO ASSEMBLER  BUS                                                                  09/10/2004 16:09:02 PAGE     4

                     191     ; /*********************************************
                     192     ; * Send one byte of data to an I2C device     *
                     193     ; **********************************************/
                     194     ; void SendI2CByte(unsigned char val)
                     195     
----                 196             RSEG  ?PR?_SendI2CByte?BUS
0000                 197     _SendI2CByte:
                     198                             ; SOURCE LINE # 53
                     199     ;---- Variable 'val?141' assigned to Register 'R7' ----
                     200     ; {
                     201                             ; SOURCE LINE # 54
                     202     ; 
                     203     ; #if USE_ASM
                     204     ; 
                     205     ;       ACC = val;
                     206                             ; SOURCE LINE # 58
0000 EF              207             MOV     A,R7
                     208     ; #pragma asm   
                     209     ; 
                     210               
                     211     ;       MOV     R7,#8
0001 7F08            212               MOV     R7,#8
                     213     ;       
                     214               
                     215     ; SendByte1:    
0003                 216               SendByte1:    
                     217     ;       RLC             A
0003 33              218               RLC           A
                     219     ;       MOV             SDAPin,C
0004 92A7            220               MOV           SDAPin,C
                     221     ;       NOP
0006 00              222               NOP
                     223     ;       SETB    SCLPin
0007 D2A6            224               SETB  SCLPin
                     225     ;       JNB             SCLPin,$
0009 30A6FD          226               JNB           SCLPin,$
                     227     ;       NOP
000C 00              228               NOP
                     229     ;       CLR             SCLPin
000D C2A6            230               CLR           SCLPin
                     231     ;       DJNZ    R7,SendByte1    
000F DFF2            232               DJNZ  R7,SendByte1    
                     233     ; 
                     234               
                     235     ;       SETB    SDAPin
0011 D2A7            236               SETB  SDAPin
                     237     ;       NOP
0013 00              238               NOP
                     239     ;       SETB    SCLPin
0014 D2A6            240               SETB  SCLPin
                     241     ;       JNB             SCLPin,$
0016 30A6FD          242               JNB           SCLPin,$
                     243     ;       JNB             SDAPin,SendByte2
0019 30A702          244               JNB           SDAPin,SendByte2
                     245     ;       SETB    NoAck
001C D200     F      246               SETB  NoAck
                     247     ;       
                     248               
                     249     ; SendByte2:    
001E                 250               SendByte2:    
                     251     ;       CLR             SCLPin
001E C2A6            252               CLR           SCLPin
                     253     ;       
                     254               
                     255     ; #pragma endasm        
                     256     ; 
A51 MACRO ASSEMBLER  BUS                                                                  09/10/2004 16:09:02 PAGE     5

                     257     ; #else
                     258     ;       unsigned char bmsk = 0x80;
                     259     ; 
                     260     ;     while (bmsk) {
                     261     ;         SDAPin = (val & bmsk) ? 0x01 : 0x00;
                     262     ;         SCLHigh(); 
                     263     ;         bmsk >>= 1;
                     264     ;         SCLPin = 0; 
                     265     ;     }
                     266     ; 
                     267     ; 
                     268     ;     SDAPin = 1;
                     269     ;     SCLHigh();
                     270     ;     

⌨️ 快捷键说明

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