📄 main.lst
字号:
C51 COMPILER V7.09 MAIN 12/10/2006 04:29:19 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: F:\软件安装1\软件安装\安装软件\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<head.h>
2 //#include<reg51.h>
3 //#include<intrins.h>
4 #define uint unsigned int
5 #define uchar unsigned char
6 #define ulong unsigned long
7
8
9 //======================================================================================
10 #define keyport P2
11 code uchar fuhu[]="我们还能不能见面 我在佛前求了几千年 让我再吻一吻你的脸";
12 code uchar num[]="如果有一天失去了信心 就好比我们失去了一条腿";
13 code uchar lled[]="我们都是好孩子 善良的好孩子";
14 code uchar number[]="为了你 我变成狼人摸样 为了你 染上了疯狂 为了你穿上厚厚的伪装";
15
16 //====================水位显示==============
17 code uchar zhongwen[]="现在测量得的水位";
18 code uchar shuzi[]="0123456789";
19 code uchar zifu[]="厘米";
20 code uchar kai_fa[]="开阀状态: ";
21 code uchar guan_fa[]="关阀状态: ";
22 code uchar kaiguan[]="关开";
23 extern int keyvalue;
24 ulong Pinlv;
25 uint Hign_shui;
26 uint f_h,yichu_count,count_over;
27 //====================================================================================================
28 //====================频率表=============================================================================
29 code ulong pin_lv[]={855,1034,1244,1421,1594,1706,1824,1931,2010,2092,2166,2222,2285,
30 2335,2385,2416,2458,2499,2511,2533,2557,2561,2584,2596,2607,2618,2630,
31 2643,2653,2664,2670,2680,2687,2692,2695,2705,2707,2712,2717};
32 //=======================================================================================================
33 ///============水位表===========================================================
34 code uint Hign[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
35 //================================================================================
36
37 unsigned long get_f();
38
39 void delay22(unsigned long i)
40 {
41 1 while(--i);
42 1 }
43
44 void display_jianzhi()
45 {
46 1 shift_164(keyvalue%10);
47 1 shift_164(keyvalue/10);
48 1 shift_164(0xff);
49 1 shift_164(0xff);
50 1 shift_164(0xff);
51 1 shift_164(0xff);
52 1 shift_164(0xff);
53 1 shift_164(0xff);
54 1 }
55
C51 COMPILER V7.09 MAIN 12/10/2006 04:29:19 PAGE 2
56 void delay11(uint i)
57 {
58 1 int j,k;
59 1 for(j=0;j<i;j++)
60 1 for(k=0;k<500;k++);
61 1 }
62
63 //=========================频率判断
64 pinlv_panduan()
65 {
66 1 ulong idata x,y,i,k,a,dat;
67 1 x=pin_lv[i];
68 1 y=pin_lv[i+1];
69 1 //y=pin_lv[i+2];
70 1 //x=Hign_shui;
71 1 if((x<Pinlv)&(Pinlv<y))
72 1 {
73 2 k=((Pinlv-x)*3)/5;
74 2 a=((y-Pinlv)*3)/5;
75 2 k=x+k;
76 2 a=y-a;
77 2 if((Pinlv-k)>(a-Pinlv)) dat=x;
78 2 else dat=y;
79 2 }
80 1 return(dat);
81 1 }
82
83
84 //===========================取水位高度=========
85 get_Hign()
86 {
87 1 uint idata i,num,num11,dat;
88 1 num=Hign[i];
89 1 num11=pinlv_panduan();
90 1 if(num==num11) dat=num;
91 1 I2cByteWrite_24C64(0xa0,0x00,dat);
92 1 udelay(100);
93 1 return(dat);
94 1 }
95
96 //=============液晶显示水位=====================
97 void display_shuiwei()//加水显示
98 {
99 1 ulong idata number,n1,n2;
100 1 number=get_Hign();
101 1 n1=number%10;
102 1 n2=number/10;
103 1 display_strword(0,0,zhongwen);
104 1 display_oneword(4,1,shuzi[n2],shuzi[n1]);
105 1 display_oneword(5,1,zifu);
*** WARNING C209 IN LINE 105 OF MAIN.C: '_display_oneword': too few actual parameters
*** WARNING C214 IN LINE 105 OF MAIN.C: 'Argument': conversion: pointer to non-pointer
106 1 display_strword(0,2,kai_fa);
107 1 disponechar(6,2,kaiguan,0);
108 1 display_strword(0,3,guan_fa);
109 1 disponechar(6,3,kaiguan,1);
110 1 }
111
112 void display_shuiwei11()//关水显示
113 {
114 1 ulong idata number,n1,n2;
115 1 number=get_Hign();
C51 COMPILER V7.09 MAIN 12/10/2006 04:29:19 PAGE 3
116 1 n1=number%10;
117 1 n2=number/10;
118 1 display_strword(0,0,zhongwen);
119 1 display_oneword(4,1,shuzi[n2],shuzi[n1]);
120 1 display_oneword(5,1,zifu);
*** WARNING C209 IN LINE 120 OF MAIN.C: '_display_oneword': too few actual parameters
*** WARNING C214 IN LINE 120 OF MAIN.C: 'Argument': conversion: pointer to non-pointer
121 1 display_strword(0,2,kai_fa);
122 1 disponechar(6,2,kaiguan,1);
123 1 display_strword(0,3,guan_fa);
124 1 disponechar(6,3,kaiguan,0);
125 1 }
126
127
128 void display_shuiwei22()//关水显示
129 {
130 1 ulong idata number,n1,n2;
131 1 number=get_Hign();
132 1 n1=number%10;
133 1 n2=number/10;
134 1 display_strword(0,0,zhongwen);
135 1 display_oneword(4,1,shuzi[n2],shuzi[n1]);
136 1 display_oneword(5,1,zifu);
*** WARNING C209 IN LINE 136 OF MAIN.C: '_display_oneword': too few actual parameters
*** WARNING C214 IN LINE 136 OF MAIN.C: 'Argument': conversion: pointer to non-pointer
137 1 display_strword(0,2,kai_fa);
138 1 disponechar(6,2,kaiguan,0);
139 1 display_strword(0,3,guan_fa);
140 1 disponechar(6,3,kaiguan,0);
141 1 }
142
143
144
145
146 //===============加水程序===============
147 void jia_shui()
148 {}
149
150 //===================减水程序==========
151 void jian_shui()
152 {}
153
154 //===============================键盘控制水位
155 void key_change_xianshi()
156 {
157 1 switch(keyvalue)
158 1 {
159 2 case 5: display_jianzhi();
160 2
161 2 clear_disppanel();
162 2 display_shuiwei();
163 2 if(Hign_shui<5)
164 2 {
165 3 jia_shui();
166 3 display_shuiwei();
167 3 while(Hign_shui<5);
168 3 }
169 2 if(Hign_shui>5)
170 2 {
171 3 jian_shui();
172 3 display_shuiwei11();
173 3 while(Hign_shui>5);
C51 COMPILER V7.09 MAIN 12/10/2006 04:29:19 PAGE 4
174 3 }
175 2 if(Hign_shui==5) display_shuiwei22();
176 2 break;
177 2 case 6: display_jianzhi();
178 2 clear_disppanel();
179 2 display_shuiwei();
180 2 if(Hign_shui<6)
181 2 {
182 3 jia_shui();
183 3 display_shuiwei();
184 3 while(Hign_shui<6);
185 3 }
186 2 if(Hign_shui>6)
187 2 {
188 3 jian_shui();
189 3 display_shuiwei11();
190 3 while(Hign_shui>6);
191 3 }
192 2 if(Hign_shui==6) display_shuiwei22();
193 2 break;
194 2
195 2 case 7:
196 2 display_jianzhi();
197 2 clear_disppanel();
198 2 //display_shuiwei();
199 2 if(Hign_shui<7)
200 2 {
201 3 jia_shui();
202 3 display_shuiwei();
203 3 while(Hign_shui<7);
204 3 //display_strword(0,3,zhongwen);
205 3 }
206 2 if(Hign_shui>7)
207 2 {
208 3 jian_shui();
209 3 display_shuiwei11();
210 3 while(Hign_shui>7);
211 3 }
212 2 if(Hign_shui==7) display_shuiwei22();
213 2 break;
214 2
215 2 case 8: display_jianzhi();
216 2 clear_disppanel();
217 2 display_shuiwei();
218 2 if(Hign_shui<8)
219 2 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -