📄 main.lst
字号:
C51 COMPILER V7.01 MAIN 08/01/2003 09:48:13 PAGE 1
C51 COMPILER V7.01, 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 CMDID 0x42//00h-10h
4 #define STAID 0x92
5
6 #define thh 0xEA
7
8 #define MODE0 0
9 #define MODE1 1
10 #define MODE2 2
11 #define MODE3 3
12
13 #define uint8 unsigned char
14
15 extern void AutoBaudrateAdj();
16 extern void ISP_INI();
17
18 sbit TX=P1^0;
19 sbit RX=P1^1;
20 //sbit SLNP=P0^3;
21 sbit LED1=P0^1;
22 sbit LED2=P0^2;
23 sbit LED3=P0^3;
24 sbit LED4=P0^4;
25 sbit LED5=P0^5;
26
27 sbit ISP_BIT=P2^1;
28
29 bit l_flg_recgood=0;
30 bit l_flg_timeok=0;
31 bit led_all_light=1;
32
33 uint8 l_sys_mode;
34 uint8 l_rec_data[10];
35 uint8 l_ledsta=2;
36 uint8 l_ledsep=0x8;
37 uint8 time=1;
38 uint8 flash=0;
39 unsigned int sleep_cout=0;
40 void delay();
41 void delayNS(unsigned int k);
42 uint8 checksum8(uint8 *chk8,uint8 num);
43 bit l_rce_data(void);
44 void l_send_back(uint8 * data_ptr,uint8 num);
45 void l_cmd_handle();
46 void l_sta_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.01 MAIN 08/01/2003 09:48:13 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]==CMDID)||(l_rec_data[0]==STAID)||(l_rec_data[0]==0x80))//增加可睡眠和命令
88 3 {
89 4 l_sys_mode=MODE3;
90 4 }
91 3 else
92 3 l_sys_mode=MODE0;
93 3
94 3 }
95 2 else
96 2 {
97 3 TF0=0;
98 3 l_sys_mode=MODE0;
99 3 }
100 2
101 2 break;
102 2
103 2 case MODE3:
104 2 break;
105 2 default : break;
106 2
107 2 }
108 1 if(l_sys_mode!=MODE3)
109 1 {
110 2 IE1=0;
111 2 EX1=1;
112 2 }
113 1 ISP_BIT=1;
114 1 }
115 main()
116 {
117 1 unsigned int cout=0;
C51 COMPILER V7.01 MAIN 08/01/2003 09:48:13 PAGE 3
118 1 delay();
119 1 P2M1 = 0x00; // 初始化端口
120 1 P2M2 = 0x00;
121 1 P1M1=0;
122 1 P1M2=1;
123 1 P0M1 = 0x00; // 初始化端口
124 1 P0M2 = 0x00;
125 1 if(ISP_BIT==0)
126 1 {
127 2 ISP_INI();
128 2 delay();
129 2 LED3=0;
130 2 while(1);
131 2 }
132 1 P0=0XAA;
133 1 delayNS(100);
134 1 P0=0X55;
135 1 delayNS(100);
136 1 P0=0XFF;
137 1 l_sys_mode=0;
138 1 TMOD=0X21;
139 1 TH1=0XFD;
140 1 PX1=1;
141 1 IP0H=0X02;
142 1 IT1=1;
143 1 EX1=1;
144 1 EA=1;
145 1 l_rtc_init();
146 1 while(1)
147 1 {
148 2 if(l_sys_mode==MODE3)
149 2 {
150 3 EX1=0;
151 3 l_flg_recgood=l_rce_data();
152 3 if(l_flg_recgood)
153 3 {
154 4 IE1=0;
155 4 EX1=0;
156 4 }
157 3 else
158 3 {
159 4 l_sys_mode=MODE0;
160 4 TR1=0;
161 4 IE1=0;
162 4 EX1=1;
163 4 }
164 3
165 3 }
166 2 if(l_flg_recgood)
167 2 {
168 3 if(l_rec_data[0]==CMDID)
169 3 {
170 4 l_cmd_handle();
171 4 }
172 3 else if(l_rec_data[0]==STAID)
173 3 {
174 4 l_sta_handle();
175 4 }
176 3 else if(l_rec_data[0]==0x80)
177 3 {
178 4 sleep_cout=1999;
179 4 }
C51 COMPILER V7.01 MAIN 08/01/2003 09:48:13 PAGE 4
180 3 TR1=0;
181 3 IE1=0;
182 3 EX1=1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -