📄 main.lst
字号:
C51 COMPILER V6.20c MAIN 07/15/2004 09:46:22 PAGE 1
C51 COMPILER V6.20c, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c DEBUG OBJECTEXTEND
stmt level source
1 #include <reg52.h>
2 #include <absacc.h>
3 #define uchar unsigned char
4 #define null 44//NULL
5 #define cheng 46 //成
6 #define du1 47//都
7 #define si 48//世
8 #define ji1 49//纪
9 #define zhong1 50//中
10 #define ke 51//科
11 #define ping 52//平
12 #define jun 53//均
13 #define su 54//速
14 #define du2 55//度
15 #define jia 56//加
16 #define guang 57//光
17 #define dian 58//电
18 #define men 59//门
19 #define zi 60//自
20 #define jian 61//检
21 #define dan 62//单
22 #define shuang 63//双
23 #define bai 64//摆
24 #define zhou 65//周
25 #define qi1 66//期
26 #define zhong2 67//钟
27 #define pen 68//碰
28 #define zhuang 69//撞
29 #define jiao 70//角
30 #define zhuan 71//转
31 #define xian 72//线
32 #define miao 73//秒
33 #define fen 74//分
34 #define shou 75//手
35 #define dong 76//动
36 #define ce 77//测
37 #define liang 78//量
38 #define zhi 79//智
39 #define neng 80//能
40 #define ji2 81//计
41 #define shu 82//数
42 #define shi 83//时
43 #define qi2 84//器
44 #define tong 85//通
45 #define dao 86//道
46 #define gao 87//高
47 #define di 88 //低
48 #define duo 89 //多
49 #define mai 90 //脉
50 #define chong 91//冲
51 #define ci 92//次
52 #define xuan 93//选
53 #define ram_xdata 0x0000
54 unsigned long time_hh=0;
55 unsigned long time1_hh=0;
C51 COMPILER V6.20c MAIN 07/15/2004 09:46:22 PAGE 2
56 unsigned int temp=0;
57 unsigned char select_id=0;
58 unsigned char time_tl0=0;
59 unsigned char time_tl1=0;
60 unsigned int n=0;
61 unsigned int n1=0;
62 sbit music=P1^2;
63 sbit lcd_e1=P2^7;
64 sbit key1=P1^3;//Select Measurement key
65 sbit key2=P1^4;//Select Mode key
66 sbit key3=P1^2;//Start/Stop key
67 sbit intp_1=P3^3;
68 sbit intp_0=P3^2;
69 bit acce_id=0;
70 bit acce_chose=0;
71 bit time1_new=0;
72 bit time2_new=0;
73 bit over=0;
74 bit star1_flat=0;
75 bit star0_flat=0;
76 bit over0_flat=0;
77 extern void line_lcd(unsigned char lin,unsigned char linehead[]);//显示一行
78 extern void char_byte(unsigned char lin,unsigned char byte,unsigned char linehead );//显示一个字节8*16
79 void black_show(unsigned char lin,unsigned char byte,unsigned char linehead );
80 extern void clear_up(void);//清除上行
81 extern void clear_down(void);//清除下行
82 extern void menu(char id);//显示菜单
83 extern void INT(void);//LCD初始化
84 extern void DELAY();//延时0。5秒
85 extern void celiang();
86 extern void START_00(void);
87 extern void START_11(void);
88 extern void delay01(void);
89 float long_float(unsigned long time_dat1)
90 {
91 1 unsigned char i;
92 1 unsigned long time_dat;
93 1 float time_float;
94 1 time_dat=time_dat1;
95 1 time_dat=time_dat%10000000;
96 1 i=time_dat/1000000;
97 1 time_dat=time_dat%1000000;
98 1 time_float=i*10.0;
99 1 i=time_dat/100000;
100 1 time_dat=time_dat%100000;
101 1 time_float=i*1.0+time_float;
102 1 i=time_dat/10000;
103 1 time_dat=time_dat%10000;
104 1 time_float=i*0.1+time_float;
105 1 i=time_dat/1000;
106 1 time_dat=time_dat%1000;
107 1 time_float=i*0.01+time_float;
108 1 i=time_dat/100;
109 1 time_dat=time_dat%100;
110 1 time_float=i*0.001+time_float;
111 1 i=time_dat/10;
112 1 time_float=i*0.0001+time_float;
113 1 return(time_float);
114 1 }
115 void save_ram(int ramadd,long tempp)
116 { long time_tt;
117 1 time_tt=tempp;
C51 COMPILER V6.20c MAIN 07/15/2004 09:46:22 PAGE 3
118 1 XBYTE[ramadd]=29;
119 1 XBYTE[ramadd+1]=37;
120 1 time_tt=time_tt%10000000;
121 1 XBYTE[ramadd+2]=time_tt/1000000;
122 1 time_tt=time_tt%1000000;
123 1 XBYTE[ramadd+3]=time_tt/100000;
124 1 time_tt=time_tt%100000;
125 1 XBYTE[ramadd+4]=38;
126 1 XBYTE[ramadd+5]=time_tt/10000;
127 1 time_tt=time_tt%10000;
128 1 XBYTE[ramadd+6]=time_tt/1000;
129 1 time_tt=time_tt%1000;
130 1 XBYTE[ramadd+7]=time_tt/100;
131 1 time_tt=time_tt%100;
132 1 XBYTE[ramadd+8]=time_tt/10;
133 1 }
134 void save_ram2(unsigned char ijk,long tempp)
135 { long time_tt;
136 1 unsigned char tti;
137 1 tti=ijk;
138 1 time_tt=tempp;
139 1 XBYTE[0x200+(tti-1)*0x10]=29;
140 1 XBYTE[0x200+(tti-1)*0x10+1]=ijk+10;
141 1 XBYTE[0x200+(tti-1)*0x10+2]=37;
142 1 time_tt=time_tt%10000000;
143 1 XBYTE[0x200+(tti-1)*0x10+3]=time_tt/1000000;
144 1 time_tt=time_tt%1000000;
145 1 XBYTE[0x200+(tti-1)*0x10+4]=time_tt/100000;
146 1 time_tt=time_tt%100000;
147 1 XBYTE[0x200+(tti-1)*0x10+5]=38;
148 1 XBYTE[0x200+(tti-1)*0x10+6]=time_tt/10000;
149 1 time_tt=time_tt%10000;
150 1 XBYTE[0x200+(tti-1)*0x10+7]=time_tt/1000;
151 1 time_tt=time_tt%1000;
152 1 XBYTE[0x200+(tti-1)*0x10+8]=time_tt/100;
153 1 time_tt=time_tt%100;
154 1 XBYTE[0x200+(tti-1)*0x10+9]=time_tt/10;
155 1 }
156 void show_time1(int add_show){
157 1 unsigned char i;
158 1 unsigned char idata show[16];
159 1 for(i=0;i<16;i++)
160 1 {show[i]=null;}
161 1 for(i=0;i<9;i++)
162 1 {show[i]=XBYTE[add_show+i];}
163 1 show[0]=29;
164 1 show[1]=37;
165 1 show[4]=38;
166 1 show[9]=26;
167 1 show[10]=null;
168 1 show[11]=null;
169 1 show[12]=null;
170 1 show[13]=null;
171 1 show[14]=0xff;
172 1 line_lcd(0,show);
173 1 }
174 void show_time2(uchar ij )
175 { unsigned char j;
176 1 unsigned char yy;
177 1
178 1 unsigned char show[16];
179 1 yy=ij;
C51 COMPILER V6.20c MAIN 07/15/2004 09:46:22 PAGE 4
180 1 for(j=0;j<10;j++)
181 1 {show[j]=XBYTE[0x200+(yy-1)*0x10+j];}
182 1 show[0]=29;
183 1 show[1]=yy+10;
184 1 show[2]=37;
185 1 show[5]=38;
186 1 show[10]=26;
187 1 show[11]=null;
188 1 show[12]=null;
189 1 show[13]=null;
190 1 show[14]=0xff;
191 1 line_lcd(0,show);}
192 void time2_int() interrupt 5 using 1
193 {
194 1 TF2=0;
195 1 time2_new=1;
196 1 temp+=1;
197 1 switch(select_id)
198 1 {
199 2 case 0x30:
200 2 if(temp>=6000)
201 2 {TR2=0;over=1;EA=0;}
202 2 else ;
203 2 break;
204 2 case 0x31:
205 2 if(temp>=12000)
206 2 {TR2=0;over=1;EA=0;}
207 2 else ;
208 2 break;
209 2 case 0x32:
210 2 if(temp>=36000)
211 2 {TR2=0;over=1;EA=0;}
212 2 else ;
213 2 break;
214 2 default:
215 2 break;
216 2 }
217 1
218 1 }
219 void show_3(void)
220 {
221 1 unsigned char show[16];
222 1 unsigned int test_tem;
223 1 unsigned long time_tem;
224 1 time2_new=0;
225 1 temp=0;
226 1 test_tem=0;
227 1 n=0;
228 1 over=0;
229 1 ET2=1;
230 1 IE0=0;
231 1 IE1=0;
232 1 TF2=0;
233 1 IT1=1;
234 1 IT0=1;
235 1 if(acce_id)
236 1 {EX1=1;
237 2 EX0=0;}
238 1 else
239 1 {
240 2 EX1=0;
241 2 EX0=1;
C51 COMPILER V6.20c MAIN 07/15/2004 09:46:22 PAGE 5
242 2 }
243 1 EA=1;
244 1 PT2=1;
245 1 T2CON=0x00;
246 1 show[0]=0;
247 1 show[1]=0;
248 1 show[2]=0;
249 1 show[3]=ci;
250 1 show[4]=0;
251 1 show[5]=0;
252 1 show[6]=0;
253 1 show[7]=38;
254 1 show[8]=0;
255 1 show[9]=0;
256 1 show[10]=0;
257 1 show[11]=0;
258 1 show[12]=26;
259 1 show[13]=0xff;
260 1 line_lcd(2,show);
261 1 RCAP2L=0x78; //5000US
262 1 RCAP2H=0xEC;
263 1 TH2=0xEC;
264 1 TL2=0x78;
265 1 while(key1&&(!over))
266 1 {
267 2 if(time2_new)
268 2 {
269 3 time2_new=0;
270 3 n=n%1000;
271 3 show[0]=n/100;
272 3 show[1]=n%100/10;
273 3 show[2]=n%10;
274 3 show[3]=ci;
275 3 time_tem=temp;
276 3 time_tem=time_tem*50;
277 3 time_tem=time_tem%10000000;
278 3 show[4]=time_tem/ 1000000;
279 3 time_tem=time_tem%1000000;
280 3 show[5]=time_tem/ 100000;
281 3 time_tem=time_tem%100000;
282 3 show[6]=time_tem/ 10000;
283 3 time_tem=time_tem%10000;
284 3 show[8]=time_tem/ 1000;
285 3 time_tem=time_tem%1000;
286 3 show[9]=time_tem/ 100;
287 3 time_tem=time_tem%100;
288 3 show[10]=time_tem/ 10;
289 3 show[11]=time_tem%10;
290 3 show[12]=0xff;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -