📄 24c02.lst
字号:
96 =1 #define KEY_VOL_DEC KEY_11
97 =1
98 =1 #define KEY_BAND KEY_12
99 =1 #define KEY_FF KEY_13
100 =1
101 =1 #define KEY_FR KEY_14
102 =1
103 =1 #define Kbd_key_pressed() ((P1&0x1f) != 0x1f)
104 =1
105 =1 /*----- Disp clock task states -----*/
106 =1 #define DISP_IDLE 0
107 =1 #define DISP_INIT 1
108 =1 #define DISP_TICK0 2
109 =1 #define DISP_TICK1 3
110 =1 #define DISP_SEC 4
111 =1 #define DISP_MIN 5
112 =1 #define DISP_MS_BUSY 6
113 =1 #define DISP_PRO 7
114 =1
115 =1 #define KBD_DEBOUNCE_TEMPO 20 /* debounce period: 8 ms */
116 =1 #define KBD_DEBOUNCE_INIT 0
117 =1 #define SCHEDULER_TICK 10
118 =1
119 =1 #define TIM_LOW 0xf0
120 =1 #define TIM_HIGH 0xd8
121 =1 //#define T0_set_TMOD() (TMOD = TMOD | 0x01)
122 =1
123 =1 #define I2C_ID0 0xa0
124 =1 #define I2C_ID1 0xa1
125 =1 #define I2C_ADD 0x00
126 =1
127 =1 #define Mem_FerStart 0x10
128 =1
129 =1 /*----- Volume Control Start -----*/
130 =1 #define SC7313_ADD 0x88
131 =1 #define RADIO_IN 0x5c
132 =1 #define CD_IN 0x59 //01011001
133 =1 #define TAPE_IN 0x5e
14 #include "Driver\io_def.h"
1 =1 /*H**************************************************************************
2 =1 * NAME: io_def.h
3 =1 *----------------------------------------------------------------------------
4 =1 * Copyright (c) 2006 Atmel.
5 =1 *----------------------------------------------------------------------------
6 =1 * RELEASE: C51 Sample
7 =1 * REVISION: 1.00
8 =1 *----------------------------------------------------------------------------
C51 COMPILER V8.01 24C02 07/31/2006 01:20:39 PAGE 6
9 =1 * PURPOSE:
10 =1 *****************************************************************************/
11 =1
12 =1 /*_____ I N C L U D E S ____________________________________________________*/
13 =1
14 =1
15 =1 #define DTS_DOUT P3_6
16 =1 #define DTS_DIN P3_4
17 =1 #define DTS_CLK P3_5
18 =1 #define DTS_CE P3_7
19 =1
20 =1 #define MPOWER P3_1
21 =1
22 =1 #define LCD_DA P0_0
23 =1 #define LCD_RW P0_1
24 =1 #define LCD_CS P0_2
25 =1
26 =1 #define ISDA P2_1
27 =1 #define ISCL P2_0
28 =1 #define sda P2_1
29 =1 #define scl P2_0
15 #include "Driver\24c02.h"
1 =1 /*H**************************************************************************
2 =1 * NAME: 24c02.h
3 =1 *----------------------------------------------------------------------------
4 =1 * Copyright (c) 2006 Atmel.
5 =1 *----------------------------------------------------------------------------
6 =1 * RELEASE: C51 Sample
7 =1 * REVISION: 1.00
8 =1 *----------------------------------------------------------------------------
9 =1 * PURPOSE:
10 =1 *****************************************************************************/
11 =1
12 =1 /*_____ I N C L U D E S ____________________________________________________*/
13 =1
14 =1 Uchar x24c02_read(Uchar address); //从24c02的地址address中读取一个字节数据
15 =1 void x24c02_write(Uchar address,Uchar info); //向24c02的address地址中写入一字节数据info
16 =1 void x24c02_init(); //24c02初始化子程序
17 =1 void delay1(Uchar x);
18 =1 void flash();
19 =1 void x24c01_init();
20 =1 void start();
21 =1 void stop();
22 =1 void writex(Uchar j);
23 =1 Uchar readx();
24 =1 void clock();
16
17 void delay1(Uchar x)
18 {
19 1 Uint16 i;
20 1 for(i=0;i<x;i++);
21 1 ;
22 1 }
23 void flash()
24 {
25 1 char i;
26 1 for(i=0; i<2; i++){
27 2 ;
28 2 }
29 1 }
30 void x24c02_init()
31 {
C51 COMPILER V8.01 24C02 07/31/2006 01:20:39 PAGE 7
32 1 scl=1; flash(); sda=1; flash();
33 1 }
34 void start()
35 {
36 1 sda=1; flash(); scl=1; flash(); sda=0; flash(); scl=0; flash();
37 1 }
38 void stop()
39 {
40 1 sda=0; flash(); scl=1; flash(); sda=1; flash();
41 1 }
42 void writex(Uchar j)
43 {
44 1 Uchar i,temp;
45 1 temp=j;
46 1 for (i=0;i<8;i++){
47 2 temp=temp<<1;
48 2 scl=0;
49 2 flash();
50 2 sda=CY;
51 2 flash();
52 2 scl=1;
53 2 flash();
54 2 }
55 1 scl=0;
56 1 flash();
57 1 sda=1;
58 1 flash();
59 1 }
60 Uchar readx()
61 {
62 1 Uchar i,j,k=0;
63 1 scl=0; flash(); sda=1;
64 1 for (i=0;i<8;i++){
65 2 flash(); scl=1; flash();
66 2 if (sda==1) j=1;
67 2 else j=0;
68 2 k=(k<<1)|j; scl=0;
69 2 }
70 1 flash(); return(k);
71 1 }
72 void clock()
73 {
74 1 Uchar i=0;
75 1 scl=1; flash();
76 1 while ((sda==1)&&(i<255))i++;
77 1 scl=0; flash();
78 1 }
79
80 Uchar x24c02_read(Uchar address)
81 {
82 1 Uchar i;
83 1 start(); writex(0xa0);
84 1 clock(); writex(address);
85 1 clock(); start();
86 1 writex(0xa1); clock();
87 1 i=readx(); stop();
88 1 delay1(10);
89 1 return(i);
90 1 }
91 void x24c02_write(Uchar address,Uchar info)
92 {
93 1 EA=0;
C51 COMPILER V8.01 24C02 07/31/2006 01:20:39 PAGE 8
94 1 start(); writex(0xa0);
95 1 clock(); writex(address);
96 1 clock(); writex(info);
97 1 clock(); stop();
98 1 EA=1;
99 1 delay1(50);
100 1 }
101
102 void x7313_write(Uchar info)
103 {
104 1 EA=0;
105 1 start(); writex(0x88);
106 1 //clock(); writex(address);
107 1 clock(); writex(info);
108 1 clock(); stop();
109 1 EA=1;
110 1 delay1(50);
111 1 }
C51 COMPILER V8.01 24C02 07/31/2006 01:20:39 PAGE 9
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION _delay1 (BEGIN)
; SOURCE LINE # 17
;---- Variable 'x' assigned to Register 'R7' ----
; SOURCE LINE # 18
; SOURCE LINE # 20
;---- Variable 'i' assigned to Register 'R4/R5' ----
0000 E4 CLR A
0001 FD MOV R5,A
0002 FC MOV R4,A
0003 ?C0001:
0003 EF MOV A,R7
0004 FB MOV R3,A
0005 C3 CLR C
0006 ED MOV A,R5
0007 9B SUBB A,R3
0008 EC MOV A,R4
0009 9400 SUBB A,#00H
000B 5007 JNC ?C0004
000D 0D INC R5
000E BD0001 CJNE R5,#00H,?C0028
0011 0C INC R4
0012 ?C0028:
0012 80EF SJMP ?C0001
; SOURCE LINE # 22
0014 ?C0004:
0014 22 RET
; FUNCTION _delay1 (END)
; FUNCTION L?0031 (BEGIN)
0000 L?0032:
0000 120000 R LCALL flash
0003 D2A0 SETB P2_0
; FUNCTION flash (BEGIN)
; SOURCE LINE # 23
; SOURCE LINE # 24
; SOURCE LINE # 26
;---- Variable 'i' assigned to Register 'R7' ----
0005 E4 CLR A
0006 FF MOV R7,A
0007 ?C0005:
; SOURCE LINE # 28
0007 0F INC R7
0008 BF02FC CJNE R7,#02H,?C0005
; SOURCE LINE # 29
000B ?C0008:
000B 22 RET
; FUNCTION flash (END)
; FUNCTION x24c02_init (BEGIN)
; SOURCE LINE # 30
; SOURCE LINE # 31
; SOURCE LINE # 32
0000 D2A0 SETB P2_0
0002 120000 R LCALL flash
0005 D2A1 SETB P2_1
0007 020000 R LJMP flash
; FUNCTION x24c02_init (END)
; FUNCTION start (BEGIN)
C51 COMPILER V8.01 24C02 07/31/2006 01:20:39 PAGE 10
; SOURCE LINE # 34
; SOURCE LINE # 35
; SOURCE LINE # 36
0000 D2A1 SETB P2_1
0002 120000 R LCALL L?0031
0005 C2A1 CLR P2_1
0007 120000 R LCALL flash
000A C2A0 CLR P2_0
000C 020000 R LJMP flash
; FUNCTION start (END)
; FUNCTION stop (BEGIN)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -