📄 main.lst
字号:
C51 COMPILER V7.06 MAIN 08/08/2003 11:35:03 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN Main.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE Main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include "reg932.h"
2
3 #define CONID 0x42//00h-10h
4 #define STAID 0x92
5 #define CMDID 0xe2
6
7 #define MODE0 0
8 #define MODE1 1
9 #define MODE2 2
10 #define MODE3 3
11
12 #define uint8 unsigned char
13
14 extern void AutoBaudrateAdj();
15 extern void ISP_INI();
16
17 sbit TX=P1^0;
18 sbit RX=P1^1;
19 //sbit SLNP=P0^3;
20 sbit LED1=P0^1;
21 sbit LED2=P0^2;
22 sbit LED3=P0^3;
23 sbit LED4=P0^4;
24 sbit LED5=P0^5;
25
26 sbit ISP_BIT=P2^1;
27
28 bit l_flg_recgood=0;
29 bit l_flg_timeok=0;
30 bit led_all_light=1;
31
32 uint8 l_sys_mode;
33 uint8 l_rec_data[10];
34 uint8 l_ledsta=2;
35 uint8 l_ledsep=0x8;
36 uint8 time=1;
37 uint8 flash=0;
38 unsigned int sleep_cout=0;
39 void delay();
40 void delayNS(unsigned int k);
41 uint8 checksum8(uint8 *chk8,uint8 num);
42 bit l_rce_data(void);
43 void l_send_back(uint8 * data_ptr,uint8 num);
44 void l_cmd_handle();
45 void l_sta_handle();
46 void l_con_handle();
47 void l_rtc_init();
48
49 void Int1_Isr() interrupt 2
50 {//uint8 i;
51 1 EX1=0;
52 1 ISP_BIT=0;
53 1 switch (l_sys_mode)
54 1 {
55 2 case MODE0:
C51 COMPILER V7.06 MAIN 08/08/2003 11:35:03 PAGE 2
56 2 TH0=255-((255-TH1)*160)/256;
57 2 TL0=255-((255-TH1)*160)%256;//检测第11位的电平。
58 2 TR0=1;
59 2 sleep_cout=0;
60 2 while(TF0==0);
61 2 TF0=0;
62 2 TR0=0;
63 2 if(RX==0)
64 2 l_sys_mode=MODE1;
65 2 break;
66 2
67 2 case MODE1:
68 2 AutoBaudrateAdj();
69 2 if(TH1<0X80)
70 2 {
71 3 TH1=0XFD;
72 3 l_sys_mode=0;
73 3 }
74 2 else
75 2 l_sys_mode=MODE2;//可以增加一些条件
76 2 break;
77 2 case MODE2:
78 2 TH0=0;
79 2 TL0=0;
80 2 TR0=1;
81 2 while(RI==0&&TF0==0);
82 2 TR0=0;
83 2 if(TF0==0)
84 2 {
85 3 RI=0;
86 3 l_rec_data[0]=SBUF;
87 3 if(l_rec_data[0]==CONID)//增加可睡眠和命令
88 3 {
89 4 l_sys_mode=MODE3;
90 4 }
91 3 else if(l_rec_data[0]==CMDID)
92 3 {
93 4 l_sys_mode=MODE3;
94 4 }
95 3 else if(l_rec_data[0]==STAID)
96 3 {
97 4 l_sys_mode=MODE3;
98 4 }
99 3 else if(l_rec_data[0]==0x80)
100 3 {
101 4 l_sys_mode=MODE3;
102 4 }
103 3 else
104 3 l_sys_mode=MODE0;
105 3
106 3 }
107 2 else
108 2 {
109 3 TF0=0;
110 3 l_sys_mode=MODE0;
111 3 }
112 2
113 2 break;
114 2
115 2 case MODE3:
116 2 break;
117 2 default : break;
C51 COMPILER V7.06 MAIN 08/08/2003 11:35:03 PAGE 3
118 2
119 2 }
120 1 if(l_sys_mode!=MODE3)
121 1 {
122 2 IE1=0;
123 2 EX1=1;
124 2 }
125 1 ISP_BIT=1;
126 1 }
127 main()
128 {
129 1 unsigned int cout=0;
130 1 delay();
131 1 P2M1 = 0x00; // 初始化端口
132 1 P2M2 = 0x00;
133 1 P1M1=0;
134 1 P1M2=1;
135 1 P0M1 = 0x00; // 初始化端口
136 1 P0M2 = 0x00;
137 1 if(ISP_BIT==0)
138 1 {
139 2 ISP_INI();
140 2 delay();
141 2 LED3=0;
142 2 while(1);
143 2 }
144 1 P0=0XAA;
145 1 delayNS(100);
146 1 P0=0X55;
147 1 delayNS(100);
148 1 P0=0XFF;
149 1 l_sys_mode=0;
150 1 TMOD=0X21;
151 1 TH1=0XFD;
152 1 PX1=1;
153 1 IP0H=0X02;
154 1 IT1=1;
155 1 EX1=1;
156 1 EA=1;
157 1 l_rtc_init();
158 1 while(1)
159 1 {
160 2 if(l_sys_mode==MODE3)
161 2 {
162 3 EX1=0;
163 3 if(l_rec_data[0]==CMDID||(l_rec_data[0]==0x80))
164 3 {
165 4 l_flg_recgood=l_rce_data();
166 4 }
167 3 else if(l_rec_data[0]==STAID)
168 3 {
169 4 IE1=0;
170 4 EX1=0;
171 4 l_sta_handle();
172 4 }
173 3 else if(l_rec_data[0]==CONID)
174 3 {
175 4 IE1=0;
176 4 EX1=0;
177 4 l_con_handle();
178 4 }
179 3 if(l_flg_recgood)
C51 COMPILER V7.06 MAIN 08/08/2003 11:35:03 PAGE 4
180 3 {
181 4 IE1=0;
182 4 EX1=0;
183 4 }
184 3 else
185 3 {
186 4 TR1=0;
187 4 IE1=0;
188 4 EX1=1;
189 4 l_sys_mode=MODE0;
190 4 TR1=0;
191 4 }
192 3
193 3 }
194 2 if(l_flg_recgood)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -