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

📄 main.ls1

📁 C code for using 8051 to control philiphs I2C FM tuner (use keil c compiler)
💻 LS1
📖 第 1 页 / 共 4 页
字号:
                        400             USING   0
                        401                             ; SOURCE LINE # 145
                        402     ; {
                        403                             ; SOURCE LINE # 146
                        404     ;       counter = 0;
                        405                             ; SOURCE LINE # 147
000000 E4               406             CLR     A
000001 F500       F     407             MOV     counter,A
                        408     ; }
                        409                             ; SOURCE LINE # 148
000003 22               410             RET     
                        411     ; END OF I2C_NOP
                        412     
                        413     ; 
                        414     ; /* Tuner Section Programming (Write Mode) */
                        415     ; /* |S|ADB(W)|A|DB1|A|DB2|A|CB|A|BB|A|AB|A|P| */
                        416     ; void tuner_write()
                        417     
------                  418             RSEG  ?PR?tuner_write?MAIN
000000                  419     tuner_write:
                        420             USING   0
                        421                             ; SOURCE LINE # 152
                        422     ; {
                        423                             ; SOURCE LINE # 153
                        424     ;       I2C_Start();
                        425                             ; SOURCE LINE # 154
000000 1100       F     426             ACALL   I2C_Start
                        427     ;       I2C_Send_Addr(TUMER_I2C_ADDRESS, I2C_WRITE);
                        428                             ; SOURCE LINE # 155
000002 E4               429             CLR     A
000003 FD               430             MOV     R5,A
000004 7FC2             431             MOV     R7,#0C2H
000006 1100       F     432             ACALL   _I2C_Send_Addr
                        433     ;       I2C_Send_data(tuner_data[0]);   /* DB1 */
                        434                             ; SOURCE LINE # 156
000008 AF00       F     435             MOV     R7,tuner_data
00000A 1100       F     436             ACALL   _I2C_Send_Byte
                        437     ;       I2C_Send_data(tuner_data[1]);   /* DB2 */
                        438                             ; SOURCE LINE # 157
00000C AF00       F     439             MOV     R7,tuner_data+01H
00000E 1100       F     440             ACALL   _I2C_Send_Byte
                        441     ;       I2C_Send_data(tuner_data[2]);   /* CB  */
                        442                             ; SOURCE LINE # 158
000010 AF00       F     443             MOV     R7,tuner_data+02H
000012 1100       F     444             ACALL   _I2C_Send_Byte
                        445     ;       I2C_Send_data(tuner_data[3]);   /* BB  */
                        446                             ; SOURCE LINE # 159
000014 AF00       F     447             MOV     R7,tuner_data+03H
000016 1100       F     448             ACALL   _I2C_Send_Byte
                        449     ;       I2C_Send_data(tuner_data[4]);   /* AB  */
                        450                             ; SOURCE LINE # 160
000018 AF00       F     451             MOV     R7,tuner_data+04H
00001A 1100       F     452             ACALL   _I2C_Send_Byte
                        453     ;       I2C_Stop();
                        454                             ; SOURCE LINE # 161
AX51 MACRO ASSEMBLER  MAIN                                                                  08/22/07 12:34:21 PAGE     8

00001C 0100       F     455             AJMP    I2C_Stop
                        456     ; END OF tuner_write
                        457     
                        458     ; }
                        459     ; 
                        460     ; void main ()
                        461     
------                  462             RSEG  ?PR?main?MAIN
000000                  463     main:
                        464             USING   0
                        465                             ; SOURCE LINE # 164
                        466     ; {     
                        467                             ; SOURCE LINE # 165
                        468     ;       unsigned char i, j;
                        469     ;       unsigned char channel = 11;     
                        470                             ; SOURCE LINE # 167
000000 75000B     F     471             MOV     channel?646,#0BH
000003                  472     ?C0012:
                        473     ; 
                        474     ;       while(1) {
                        475                             ; SOURCE LINE # 169
                        476     ;               switch (channel) {
                        477                             ; SOURCE LINE # 170
000003 E500       F     478             MOV     A,channel?646
000005 24FB             479             ADD     A,#0FBH
000007 601C             480             JZ      ?C0017
000009 24FC             481             ADD     A,#0FCH
00000B 6026             482             JZ      ?C0018
00000D 24FE             483             ADD     A,#0FEH
00000F 600C             484             JZ      ?C0016
000011 2404             485             ADD     A,#04H
000013 702D             486             JNZ     ?C0014
                        487     ;       
                        488     ;               /*
                        489     ;                       NTSC USA, fVIF = 45.75MHz, fss = 62.5KHz
                        490     ;                       Test Cable Channel 7, fRF = 175.25MHz, TV Mid Band
                        491     ;               */
                        492     ;               case 7:
                        493                             ; SOURCE LINE # 176
000015                  494     ?C0015:
                        495     ;                       tuner_data[0] = 0x0D; // DB1
                        496                             ; SOURCE LINE # 177
000015 75000D     F     497             MOV     tuner_data,#0DH
                        498     ;                       tuner_data[1] = 0xD0; // DB2
                        499                             ; SOURCE LINE # 178
000018 7500D0     F     500             MOV     tuner_data+01H,#0D0H
                        501     ;                       tuner_data[2] = 0xCE; // CB
                        502                             ; SOURCE LINE # 179
                        503     ;                       tuner_data[3] = 0x02; // BB
                        504                             ; SOURCE LINE # 180
                        505     ;                       tuner_data[4] = 0x20; // AB
                        506                             ; SOURCE LINE # 181
                        507     ;               #if M_EN
                        508     ;                       channel = 11;
                        509     ;               #endif
                        510     ;               break;
                        511                             ; SOURCE LINE # 185
00001B 801C             512             SJMP    ?C0030
                        513     ;         
                        514     ;                       /*
                        515     ;                       Test Cable Channel 11, fRF = 199.25MHz, TV Mid Band
                        516     ;               */
                        517     ;               case 11:
                        518                             ; SOURCE LINE # 190
00001D                  519     ?C0016:
                        520     ;                       tuner_data[0] = 0x0F; // DB1
AX51 MACRO ASSEMBLER  MAIN                                                                  08/22/07 12:34:21 PAGE     9

                        521                             ; SOURCE LINE # 191
00001D 75000F     F     522             MOV     tuner_data,#0FH
                        523     ;                       tuner_data[1] = 0x50; // DB2
                        524                             ; SOURCE LINE # 192
000020 750050     F     525             MOV     tuner_data+01H,#050H
                        526     ;                       tuner_data[2] = 0xCE; // CB
                        527                             ; SOURCE LINE # 193
000023                  528     ?C0029:
                        529     ;                       tuner_data[3] = 0x02; // BB
                        530                             ; SOURCE LINE # 194
                        531     ;                       tuner_data[4] = 0x20; // AB
                        532                             ; SOURCE LINE # 195
                        533     ;               #if M_EN
                        534     ;                       channel = 5;
                        535     ;               #endif
                        536     ;               break;
                        537                             ; SOURCE LINE # 199
000023 8014             538             SJMP    ?C0030
                        539     ; 
                        540     ;               /*
                        541     ;                       Test Cable Channel 5 , fRF = 77.25MHz, TV Low Band
                        542     ;                       (77.25 + 45.75) *  1000 / 62.5
                        543     ;               */
                        544     ;               case 5:
                        545                             ; SOURCE LINE # 205
000025                  546     ?C0017:
                        547     ;                       tuner_data[0] = 0x07; // DB1
                        548                             ; SOURCE LINE # 206
000025 750007     F     549             MOV     tuner_data,#07H
                        550     ;                       tuner_data[1] = 0xB0; // DB2
                        551                             ; SOURCE LINE # 207
000028 7500B0     F     552             MOV     tuner_data+01H,#0B0H
                        553     ;                       tuner_data[2] = 0xCE; // CB
                        554                             ; SOURCE LINE # 208
00002B 7500CE     F     555             MOV     tuner_data+02H,#0CEH
                        556     ;                       tuner_data[3] = 0x01; // BB
                        557                             ; SOURCE LINE # 209
00002E 750001     F     558             MOV     tuner_data+03H,#01H
                        559     ;                       tuner_data[4] = 0x20; // AB
                        560                             ; SOURCE LINE # 210
                        561     ;               #if M_EN
                        562     ;                       channel = 9;
                        563     ;               #endif
                        564     ;               break;
                        565                             ; SOURCE LINE # 214
000031 800C             566             SJMP    ?C0031
                        567     ;       
                        568     ;               /*
                        569     ;                       Test Cable Channel 9 , fRF = 187.25MHz, TV Mid Band
                        570     ;                       (187.25 + 45.75) *  1000 / 62.5
                        571     ;               */
                        572     ;               case 9:
                        573                             ; SOURCE LINE # 220
000033                  574     ?C0018:
                        575     ;                       tuner_data[0] = 0x0E; // DB1
                        576                             ; SOURCE LINE # 221
000033 75000E     F     577             MOV     tuner_data,#0EH
                        578     ;                       tuner_data[1] = 0x90; // DB2
                        579                             ; SOURCE LINE # 222
000036 750090     F     580             MOV     tuner_data+01H,#090H
                        581     ;                       tuner_data[2] = 0xCE; // CB
                        582                             ; SOURCE LINE # 223
000039                  583     ?C0030:
000039 7500CE     F     584             MOV     tuner_data+02H,#0CEH
                        585     ;                       tuner_data[3] = 0x02; // BB
                        586                             ; SOURCE LINE # 224
AX51 MACRO ASSEMBLER  MAIN                                                                  08/22/07 12:34:21 PAGE    10

00003C 750002     F     587             MOV     tuner_data+03H,#02H
                        588     ;                       tuner_data[4] = 0x20; // AB
                        589                             ; SOURCE LINE # 225
00003F                  590     ?C0031:
00003F 750020     F     591             MOV     tuner_data+04H,#020H
                        592     ;               #if M_EN
                        593     ;                       channel = 7;
                        594     ;               #endif
                        595     ;               break;
                        596                             ; SOURCE LINE # 229
                        597     ; 
                        598     ;               }
                        599                             ; SOURCE LINE # 231
000042                  600     ?C0014:
                        601     ; 
                        602     ;               tuner_write();
                        603                             ; SOURCE LINE # 233

⌨️ 快捷键说明

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