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

📄 busio.lst

📁 采用台湾MRT晶捷公司的MRT4方案的液晶电视的程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 917   1         miscDelay(15);
 918   1      
 919   1      //      WPPin = 1;
 920   1      
 921   1      #if DISABLEINT0
 922   1              /* restove interrupt 0 flag */
C51 COMPILER V6.23a  BUSIO                                                                 09/10/2004 16:09:03 PAGE 16  

 923   1              EX0 =   IntFlag;
 924   1      #endif
 925   1      
 926   1      }
 927          
 928          
 929          
 930          /*********************************************
 931          * Send data table to Philips TDA8752         *
 932          **********************************************/
 933          void TDADataTableOut(unsigned char *tbl)
 934          {
 935   1              RegDataOut(0x18, tbl, 4);
 936   1      }
 937          
 938          /*********************************************
 939          *        Set Att. Data                       *
 940          **********************************************/
 941          void SetOSDData(unsigned int index, unsigned char OSDfunction, unsigned char Data, unsigned int cnt)
 942          {
 943   1              int data byteCnt;
 944   1      
 945   1              RegByteOut(0xC0, 0xBC); // Select OSD Registers
 946   1              RegByteOut(0x78, OSDfunction);  // OR78 - Select Update Att
 947   1      
 948   1              if (index > 255)
 949   1              {
 950   2                      RegByteOut(0xC0, 0x01); 
 951   2                      index -= 256;
 952   2              }
 953   1              else
 954   1              {       
 955   2                      RegByteOut(0xC0, 0x00); 
 956   2              }
 957   1              RegByteOut(0xC1, index);
 958   1              
 959   1              // ---- I2C Start and send slave address for C2 ---- */
 960   1              GoI2CMaster(SLAVEADDR_REGW);
 961   1              if(NoAck | BusFault) goto buserror;
 962   1      
 963   1              /* Send command */
 964   1              SendI2CByte(WRITE_AUTOINC);
 965   1              if(NoAck) goto buserror;
 966   1      
 967   1              /* Send C2 */
 968   1              SendI2CByte(0xC2);
 969   1              if(NoAck) goto buserror;
 970   1              
 971   1              
 972   1              /* data transmit */
 973   1              for(byteCnt = cnt; byteCnt > 0; byteCnt--) 
 974   1              {
 975   2                      SendI2CByte(Data);
 976   2                      if(NoAck) goto buserror;
 977   2              }
 978   1              /* ------------- Finish C2 -------------- */
 979   1      buserror:
 980   1      
 981   1              SendI2CStop();
 982   1      
 983   1              RegByteOut(0xC0, 0x3C); // Select Normal Registers
 984   1      }
C51 COMPILER V6.23a  BUSIO                                                                 09/10/2004 16:09:03 PAGE 17  

 985          
 986          
C51 COMPILER V6.23a  BUSIO                                                                 09/10/2004 16:09:03 PAGE 18  

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION _RegDataTableOut (BEGIN)
                                           ; SOURCE LINE # 14
0000 8B00        R     MOV     s,R3
0002 8A00        R     MOV     s+01H,R2
0004 8900        R     MOV     s+02H,R1
                                           ; SOURCE LINE # 15
0006         ?C0001:
                                           ; SOURCE LINE # 18
0006 7800        R     MOV     R0,#LOW s
0008 E4                CLR     A
0009 75F001            MOV     B,#01H
000C 120000      E     LCALL   ?C?PLDIIDATA
000F 120000      E     LCALL   ?C?CLDPTR
0012 F500        R     MOV     cnd,A
0014 F4                CPL     A
0015 602B              JZ      ?C0003
                                           ; SOURCE LINE # 19
0017 7800        R     MOV     R0,#LOW s
0019 E4                CLR     A
001A 75F001            MOV     B,#01H
001D 120000      E     LCALL   ?C?PLDIIDATA
0020 120000      E     LCALL   ?C?CLDPTR
0023 F500        R     MOV     index,A
                                           ; SOURCE LINE # 20
0025 AB00        R     MOV     R3,s
0027 AA00        R     MOV     R2,s+01H
0029 A900        R     MOV     R1,s+02H
002B 750000      R     MOV     ?_RegDataOut?BYTE+04H,#00H
002E 850000      R     MOV     ?_RegDataOut?BYTE+05H,cnd
0031 FF                MOV     R7,A
0032 120000      R     LCALL   _RegDataOut
                                           ; SOURCE LINE # 21
0035 E500        R     MOV     A,cnd
0037 2500        R     ADD     A,s+02H
0039 F500        R     MOV     s+02H,A
003B E4                CLR     A
003C 3500        R     ADDC    A,s+01H
003E F500        R     MOV     s+01H,A
                                           ; SOURCE LINE # 22
0040 80C4              SJMP    ?C0001
                                           ; SOURCE LINE # 23
0042         ?C0003:
0042 22                RET     
             ; FUNCTION _RegDataTableOut (END)

             ; FUNCTION _RegByteIn (BEGIN)
                                           ; SOURCE LINE # 29
0000 8F00        R     MOV     index,R7
                                           ; SOURCE LINE # 30
                                           ; SOURCE LINE # 37
0002 A2A8              MOV     C,EX0
0004 9200        R     MOV     IntFlag,C
                                           ; SOURCE LINE # 38
0006 C2A8              CLR     EX0
                                           ; SOURCE LINE # 43
0008 7F30              MOV     R7,#030H
000A 120000      E     LCALL   _GoI2CMaster
                                           ; SOURCE LINE # 44
000D A200        E     MOV     C,BusFault
C51 COMPILER V6.23a  BUSIO                                                                 09/10/2004 16:09:03 PAGE 19  

000F 7200        E     ORL     C,NoAck
0011 4025              JC      endi2c
0013         ?C0004:
                                           ; SOURCE LINE # 47
0013 7F80              MOV     R7,#080H
0015 120000      E     LCALL   _SendI2CByte
                                           ; SOURCE LINE # 48
0018 20001D      E     JB      NoAck,endi2c
001B         ?C0006:
                                           ; SOURCE LINE # 51
001B AF00        R     MOV     R7,index
001D 120000      E     LCALL   _SendI2CByte
                                           ; SOURCE LINE # 52
0020 200015      E     JB      NoAck,endi2c
0023         ?C0007:
                                           ; SOURCE LINE # 54
0023 120000      E     LCALL   SendI2CStop
                                           ; SOURCE LINE # 57
0026 7F31              MOV     R7,#031H
0028 120000      E     LCALL   _GoI2CMaster
                                           ; SOURCE LINE # 58
002B A200        E     MOV     C,BusFault
002D 7200        E     ORL     C,NoAck
002F 4007              JC      endi2c
0031         ?C0008:
                                           ; SOURCE LINE # 61
0031 7F01              MOV     R7,#01H
0033 120000      E     LCALL   _RcvI2CByte
0036 8F00        R     MOV     val,R7
                                           ; SOURCE LINE # 63
0038         endi2c:
                                           ; SOURCE LINE # 65
0038 120000      E     LCALL   SendI2CStop
                                           ; SOURCE LINE # 72
003B A200        R     MOV     C,IntFlag
003D 92A8              MOV     EX0,C
                                           ; SOURCE LINE # 75
003F AF00        R     MOV     R7,val
0041 22                RET     
                                           ; SOURCE LINE # 77
0042         buserror:
                                           ; SOURCE LINE # 81
0042 80F4              SJMP    endi2c
                                           ; SOURCE LINE # 82
0044         ?C0010:
0044 22                RET     
             ; FUNCTION _RegByteIn (END)

             ; FUNCTION _RegDataIn (BEGIN)
                                           ; SOURCE LINE # 87
0000 8F00        R     MOV     index,R7
0002 8B00        R     MOV     s,R3
0004 8A00        R     MOV     s+01H,R2
0006 8900        R     MOV     s+02H,R1
                                           ; SOURCE LINE # 88
                                           ; SOURCE LINE # 95
0008 A2A8              MOV     C,EX0
000A 9200        R     MOV     IntFlag,C
                                           ; SOURCE LINE # 96
000C C2A8              CLR     EX0
                                           ; SOURCE LINE # 101
000E 7F30              MOV     R7,#030H
C51 COMPILER V6.23a  BUSIO                                                                 09/10/2004 16:09:03 PAGE 20  

0010 120000      E     LCALL   _GoI2CMaster
                                           ; SOURCE LINE # 102
0013 A200        E     MOV     C,BusFault
0015 7200        E     ORL     C,NoAck
0017 404D              JC      endi2c
0019         ?C0011:
                                           ; SOURCE LINE # 105
0019 7FC0              MOV     R7,#0C0H
001B 120000      E     LCALL   _SendI2CByte
                                           ; SOURCE LINE # 106
001E 200045      E     JB      NoAck,endi2c
0021         ?C0013:
                                           ; SOURCE LINE # 109
0021 AF00        R     MOV     R7,index
0023 120000      E     LCALL   _SendI2CByte
                                           ; SOURCE LINE # 110
0026 20003D      E     JB      NoAck,endi2c
0029         ?C0014:
                                           ; SOURCE LINE # 112
0029 120000      E     LCALL   SendI2CStop
                                           ; SOURCE LINE # 115
002C 7F31              MOV     R7,#031H
002E 120000      E     LCALL   _GoI2CMaster
                                           ; SOURCE LINE # 116
0031 A200        E     MOV     C,BusFault
0033 7200        E     ORL     C,NoAck
0035 402F              JC      endi2c
0037         ?C0015:
                                           ; SOURCE LINE # 119
0037 850000      R     MOV     byteCnt,cnt
003A 850000      R     MOV     byteCnt+01H,cnt+01H
003D         ?C0016:
003D D3                SETB    C
003E E500        R     MOV     A,byteCnt+01H
0040 9400              SUBB    A,#00H
0042 E500        R     MOV     A,byteCnt
0044 6480              XRL     A,#080H
0046 9480              SUBB    A,#080H
0048 401C              JC      endi2c
                                           ; SOURCE LINE # 120
004A AF00        R     MOV     R7,byteCnt+01H
004C 120000      E     LCALL   _RcvI2CByte
004F 7800        R     MOV     R0,#LOW s
0051 E4                CLR     A
0052 75F001            MOV     B,#01H
0055 120000      E     LCALL   ?C?PLDIIDATA
0058 EF                MOV     A,R7
0059 120000      E     LCALL   ?C?CSTPTR
                                           ; SOURCE LINE # 121
005C E500        R     MOV     A,byteCnt+01H
005E 1500        R     DEC     byteCnt+01H
0060 7002              JNZ     ?C0182
0062 1500        R     DEC     byteCnt
0064         ?C0182:
0064 80D7              SJMP    ?C0016
                                           ; SOURCE LINE # 123
0066         endi2c:
                                           ; SOURCE LINE # 125
0066 120000      E     LCALL   SendI2CStop
                                           ; SOURCE LINE # 131
0069 A200        R     MOV     C,IntFlag
006B 92A8              MOV     EX0,C
C51 COMPILER V6.23a  BUSIO                                                                 09/10/2004 16:09:03 PAGE 21  

006D 22                RET     
                                           ; SOURCE LINE # 135
006E         buserror:
                                           ; SOURCE LINE # 139
006E 80F6              SJMP    endi2c
                                           ; SOURCE LINE # 140
0070         ?C0020:
0070 22                RET     
             ; FUNCTION _RegDataIn (END)

             ; FUNCTION _RegByteOut (BEGIN)
                                           ; SOURCE LINE # 145
0000 8F00        R     MOV     index,R7
0002 8D00        R     MOV     val,R5
                                           ; SOURCE LINE # 146
                                           ; SOURCE LINE # 151
0004 A2A8              MOV     C,EX0
0006 9200        R     MOV     IntFlag,C
                                           ; SOURCE LINE # 152
0008 C2A8              CLR     EX0
                                           ; SOURCE LINE # 157
000A 7F30              MOV     R7,#030H
000C 120000      E     LCALL   _GoI2CMaster
                                           ; SOURCE LINE # 158
000F A200        E     MOV     C,BusFault
0011 7200        E     ORL     C,NoAck
0013 4015              JC      endi2c
0015         ?C0021:
                                           ; SOURCE LINE # 161
0015 E4                CLR     A
0016 FF                MOV     R7,A
0017 120000      E     LCALL   _SendI2CByte
                                           ; SOURCE LINE # 162
001A 20000D      E     JB      NoAck,endi2c
001D         ?C0023:
                                           ; SOURCE LINE # 165
001D AF00        R     MOV     R7,index
001F 120000      E     LCALL   _SendI2CByte
                                           ; SOURCE LINE # 166
0022 200005      E     JB      NoAck,endi2c
0025         ?C0024:
                                           ; SOURCE LINE # 169
0025 AF00        R     MOV     R7,val
0027 120000      E     LCALL   _SendI2CByte
                                           ; SOURCE LINE # 171
002A         endi2c:
                                           ; SOURCE LINE # 173
002A 120000      E     LCALL   SendI2CStop
                                           ; SOURCE LINE # 180
002D A200        R     MOV     C,IntFlag

⌨️ 快捷键说明

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