📄 main_m.lst
字号:
38 =1 //------------------------------------------------------
39 =1
40 =1 #define SEND_START_ACK 0xE6 //return ack &send restart
41 =1 #define RELEASE_BUS_ACK 0xC6 //return ack &clear si
42 =1 #define RELEASE_BUS_NONACK 0xC2 //return nonack & clear si
43 =1 #define SEND_STOP_ACK 0xD6 //return ack & clear si
44 =1 #define SEND_STOP_NONACK 0xD2 //
45 =1 #define ENABLE_I2C 0xC6 //
46 =1
47 =1
48 =1 #endif
4
5 extern ERS_BLOCK1();
6 extern _program_data();
7 extern READ_DATA();
8
9 extern unsigned char idata Slave_Adr;
10 extern unsigned char idata FReceive_Done;
11 extern unsigned char idata FTransmitted_Done;
12
13 extern unsigned short CustomCode;
14 extern unsigned char DataCode;
15 extern unsigned char Ir0Index;
16 extern unsigned char Ir1Index;
17 extern unsigned char IrIndex;
18
19 extern bit read;
20 extern unsigned char idata SDATA[10];
21 extern unsigned char DATA[6];
22 extern unsigned char doubleE[7];
23
24 extern unsigned char wait2sFlag;
25 extern unsigned char wait20ms;
26
C51 COMPILER V7.20 MAIN_M 12/23/2005 17:56:49 PAGE 5
27 bit PowerOnFlag = 1;
28
29 void delay(unsigned int delay_time);
30 void Wait_ms(char cTime);
31
32 int main()
33 {
34 1 char *addrHigh;
35 1 char *addrLow;
36 1 char *romData;
37 1
38 1 Initial();
39 1
40 1 //I2C mode Master transmit
41 1 #if 0
read = 0;
delay(10000);
FTransmitted_Done = 0;
transs("---Master transmit mode!!---\n\r");
delay(1000);
S1CON = SEND_START_ACK;
Slave_Adr = SLA_W;
while(!FTransmitted_Done){};
transs("---Master transmit end !!---\n\r");
delay(1000);
#endif
53 1
54 1 //I2C mode Master receive
55 1 #if 0
read = 1;
FReceive_Done = 0;
transs("---Master receive mode!!---\n\r");
delay(10000);
Slave_Adr = SLA_W;
S1CON = SEND_START_ACK;
while(!FReceive_Done){};
transs("---Master receive end !!---\n\r");
delay(10000);
#endif
66 1
67 1 //erase flash and program an address and read
68 1 //iap test
69 1 #if 1
70 1 {
71 2 DataCode = 0xff;
72 2 CustomCode = 0xffff;
73 2 ERS_BLOCK1();
74 2 Wait_ms(3);
75 2
76 2 addrHigh = (char *)0x20;
77 2 addrLow = (char *)0x21;
78 2 romData = (char *)0x22;
79 2 *addrHigh = 0x55;
80 2 *addrLow = 0x66;
81 2 *romData = 0x55;
82 2 _program_data();
83 2 Wait_ms(3);
84 2
85 2 READ_DATA();
86 2 Wait_ms(3);
87 2 *romData = *(char *)0x22;
88 2 transreg(*romData);
C51 COMPILER V7.20 MAIN_M 12/23/2005 17:56:49 PAGE 6
89 2 }
90 1 #endif
91 1
92 1 while(1)
93 1 {
94 2
95 2 }
96 1 }
97
98
99 void Initial()
100 {
101 1 // SP =0x30;
102 1 INT1 = 1;
103 1 IE = 0xA6;
104 1 IP = 0x20;
105 1 IT1 = 1;
106 1 SCON = 0x50;
107 1 TMOD = 0x22;
108 1 TL0 = 0x38;
109 1 TH0 = 0x38;
110 1 TR0 = 1;
111 1 TL1 = 0x00;
112 1 TH1 = 0xF3; //0xFD 11M 9600 //0xF3; //12M 2400
113 1 TR1 = 1;
114 1
115 1 PowerSwitch= 0;
116 1 relay_on = 1;
117 1 }
118
119 //* transmit a char*/
120 void transc (char c)
121 {
122 1 SBUF = c;
123 1 while(!TI);
124 1 TI = 0;
125 1 }
126 //---------------------------------------
127 //---------------------------------------
128 void transreg(char c)
129 {
130 1 int tmp;
131 1 int tmpc;
132 1 tmp=c;
133 1 tmp=(tmp>>4)&0x0F;
134 1 ACC=tmp;
135 1 tmpc=hextoascii(tmp);
136 1 transc(tmpc);
137 1 tmp=c&0x0F;
138 1 tmpc=hextoascii(tmp);
139 1 transc(tmpc);
140 1 transs("\n\r");
141 1
142 1 }
143
144 //-----------------------------------------
145 int hextoascii(int hex2)
146 {
147 1 int tmp1;
148 1 tmp1=hex2;
149 1 if (tmp1 >= 0x0A )
150 1 {
C51 COMPILER V7.20 MAIN_M 12/23/2005 17:56:49 PAGE 7
151 2 tmp1 += 0x37;
152 2 }
153 1 else
154 1 {
155 2 tmp1+=0x30;
156 2 }
157 1 return tmp1;
158 1 }
159 //-------------------------------------------
160 /* transmit a string */
161
162 void transs(char *s)
163 {
164 1
165 1 while (*s!='\0')
166 1 {
167 2 SBUF=*s;
168 2 while(!TI);
169 2 TI = 0 ;
170 2 s++;
171 2 }
172 1
173 1 }
174 //--------------------------------------------
175 void delay(unsigned int delay_time)
176 {
177 1 while(delay_time)
178 1 {
179 2 delay_time--;
180 2 }
181 1 }
182
183 void Wait_ms(char cTime)
184 {
185 1 unsigned char i,j;
186 1 for(i=0;i<cTime;i++)
187 1 {
188 2 for(j=0;j<250;j++)_nop_();
189 2 for(j=0;j<250;j++)_nop_();
190 2 for(j=0;j<250;j++)_nop_();
191 2 for(j=0;j<250;j++)_nop_();
192 2 }
193 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 334 ----
CONSTANT SIZE = 3 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 10
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -