📄 main.lst
字号:
C51 COMPILER V7.01 MAIN 01/02/2004 19:29:46 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 DEBUG OBJECTEXTEND
stmt level source
1
2 #include <reg52.h>
3
4
5 #define lis_f 0x02//累计时分1
6 #define lis_s 0x04//累计时时2
7
8 #define wendu_bj 0x06//温度报警1@
9 #define zasu_bj 0x08//转速报警2
10
11
12
13 extern void some();//自检
14 extern void init();//初始设置
15 extern void somc();//启动设备
16 extern unsigned int i2c_read(unsigned char address);
17 extern bit i2c_write(unsigned char address,unsigned int fb);
18 extern int Read_Temperature(void);
19 extern void time_qd();
20 extern unsigned char leiji_minf;//累计时间 -分
21 extern unsigned int leiji_mins;//累计时间- 小时
22
23 unsigned int zangsuzia;
24 unsigned int zangsuzi1[7];
25
26
27 unsigned int zangsuzi;//每分钟转速值
28 extern bit buza;//不转标志
29 void read_i2c();
30 void qdcesu();//启动测速
31 extern void k_gnkey();//功能
32 extern void k_sezi();//设置
33 extern void k_jajn();//设置加减
34 extern void jswd();//计时温度切换显示
35 extern void stratcbf();//显示数据刷新
36 extern void datey(unsigned int i);
37 extern void bojinsu_zj();
38 extern bit xiaosen();
39 unsigned int zsedr();
40
41 char wdcj();
42 char wd_bj;//温度报警值
43 unsigned int zs_bj;//转速报警值
44 char wdcjsu;//温度采集值
45
46 unsigned char cecsu;//测速次数
47
48 unsigned char wdce;//温度测量次数
49 int wdra[5];
50 void bojin();
51 bit qdcesubuza;
52 extern bit jswdstr;//计时温度状态显示 0-温度 1-记时
53 bit wd_bojin_se;//温度报警位
54 bit zs_bojin_se;//转速报警位
55
C51 COMPILER V7.01 MAIN 01/02/2004 19:29:46 PAGE 2
56 sbit delet_bj=P0^4;//消声
57
58
59 main()
60 {
61 1 delet_bj=1;
62 1 zangsuzi=0;
63 1 some();//自检
64 1 read_i2c();
65 1 init();//初始设置
66 1 somc();//启动设备
67 1 bojinsu_zj();
68 1 jswdstr=1;
69 1 while(1)
70 1 {
71 2 k_gnkey();//功能
72 2 k_sezi();//设置
73 2 k_jajn();//设置加减
74 2 jswd();//计时温度切换显示
75 2 stratcbf();//显示数据刷新
76 2 qdcesu();//启动测速
77 2 time_qd();
78 2 wdce++;
79 2 if(wdce>30)
80 2 {
81 3 wdce=0;
82 3 wdcjsu=wdcj();
83 3 }
84 2 if(xiaosen())
85 2 delet_bj=!delet_bj;
86 2 bojin();
87 2 }
88 1 }
89
90 void bojin()
91 {
92 1 if(wdcjsu>=wd_bj)
93 1 wd_bojin_se=1;
94 1 else wd_bojin_se=0;
95 1 if(zangsuzi>=zs_bj)
96 1 zs_bojin_se=1;
97 1 else zs_bojin_se=0;
98 1 }
99
100 char wdcj()
101 {
102 1 int k;
103 1 unsigned char w,b,j;
104 1 int ds[5];
105 1 wdra[4]= wdra[3];wdra[3]= wdra[2];
106 1 wdra[2]= wdra[1];wdra[1]= wdra[0];
107 1 wdra[0]=Read_Temperature();
108 1
109 1 ds[0]= wdra[4];ds[1]= wdra[3];
110 1 ds[2]= wdra[2];ds[3]= wdra[1];
111 1 ds[4]= wdra[0];
112 1
113 1 for(b=0;b<4;b++)
114 1 {
115 2 w=b;
116 2 for(j=b+1;j<5;j++)
117 2
C51 COMPILER V7.01 MAIN 01/02/2004 19:29:46 PAGE 3
118 2 if(ds[j]<ds[w])w=j;
119 2 k=ds[w];ds[w]=ds[b];ds[b]=k;
120 2 }
121 1 return (((ds[1]+ds[2]+ds[3])/3)>>4);
122 1 }
123 void read_i2c()
124 {
125 1 leiji_minf=i2c_read(lis_f);
126 1 leiji_mins=i2c_read(lis_s);
127 1 wd_bj=i2c_read(wendu_bj);
128 1 zs_bj=i2c_read(zasu_bj);
129 1 }
130
131 void qdcesu()//启动测速
132 {
133 1 cecsu++;
134 1 if((cecsu>20)|buza)
135 1 {
136 2 cecsu=0;
137 2 zangsuzia=0;
138 2 zangsuzi=zsedr();
139 2 EX0=1;
140 2 buza=0;
141 2 qdcesubuza=0;
142 2 }
143 1 else if(qdcesubuza)
144 1 {
145 2 cecsu=0;
146 2 EX0=1;
147 2 zangsuzi=zsedr();
148 2 buza=0;
149 2 qdcesubuza=0;
150 2 }
151 1 }
152
153 unsigned int zsedr()
154 {
155 1 unsigned int k;
156 1 unsigned char w,b,j;
157 1 unsigned int ds[7];
158 1 zangsuzi1[6]= zangsuzi1[5];zangsuzi1[5]= zangsuzi1[4];
159 1 zangsuzi1[4]= zangsuzi1[3];zangsuzi1[3]= zangsuzi1[2];
160 1 zangsuzi1[2]=zangsuzi1[1];zangsuzi1[1]= zangsuzi1[0];
161 1 zangsuzi1[0]=zangsuzia;
162 1
163 1 ds[0]= zangsuzi1[6];ds[1]= zangsuzi1[5];
164 1 ds[2]= zangsuzi1[4];ds[3]= zangsuzi1[3];
165 1 ds[4]=zangsuzi1[2];ds[5]=zangsuzi1[1];
166 1 ds[6]=zangsuzi1[0];
167 1
168 1 for(b=0;b<6;b++)
169 1 {
170 2 w=b;
171 2 for(j=b+1;j<7;j++)
172 2
173 2 if(ds[j]<ds[w])w=j;
174 2 k=ds[w];ds[w]=ds[b];ds[b]=k;
175 2 }
176 1 return ((ds[2]+ds[3]+ds[4])/3);
177 1 }
178
C51 COMPILER V7.01 MAIN 01/02/2004 19:29:46 PAGE 4
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 610 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 34 26
IDATA SIZE = ---- ----
BIT SIZE = 3 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -