📄 main.lst
字号:
146 1 for(j=0;j<16;j++)
147 1 {
148 2 dd=array[j];
149 2 if(j<8) lw(x+j,y,dd);
150 2 else lw(x+j-8,y+1,dd);
151 2 }
152 1 }
153
154 /*******************显示函数****************/
155 void display0(void) //显示汉字“房间床号”
156 {
157 1 write_chinese(0,0,fang);
158 1 write_chinese(16,0,jian);
159 1 write_chinese(32,0,chuang);
160 1 write_chinese(48,0,hao);
161 1 write_chinese(64,0,fang);
162 1 write_chinese(80,0,jian);
163 1 write_chinese(96,0,chuang);
164 1 write_chinese(112,0,hao);
165 1 }
166
167 void display1(void) //显示具体的房间号和床号
168 {
169 1 write_english(8,2,shu[room[0]/10]);write_english(16,2,shu[room[0]%10]);write_english(40,2,shu[bed[0]/10]
-);write_english(48,2,shu[bed[0]%10]);
170 1 write_english(72,2,shu[room[1]/10]);write_english(80,2,shu[room[1]%10]);write_english(104,2,shu[bed[1]/1
-0]);write_english(112,2,shu[bed[1]%10]);
171 1 write_english(8,4,shu[room[2]/10]);write_english(16,4,shu[room[2]%10]);write_english(40,4,shu[bed[2]/10]
-);write_english(48,4,shu[bed[2]%10]);
172 1 write_english(72,4,shu[room[3]/10]);write_english(80,4,shu[room[3]%10]);write_english(104,4,shu[bed[3]/1
-0]);write_english(112,4,shu[bed[3]%10]);
173 1 write_english(8,6,shu[room[4]/10]);write_english(16,6,shu[room[4]%10]);write_english(40,6,shu[bed[4]/10]
-);write_english(48,6,shu[bed[4]%10]);
174 1 write_english(72,6,shu[room[5]/10]);write_english(80,6,shu[room[5]%10]);write_english(104,6,shu[bed[5]/1
C51 COMPILER V8.02 MAIN 05/12/2008 12:39:48 PAGE 4
-0]);write_english(112,6,shu[bed[5]%10]);
175 1 }
176
177 /*******************串口设置********************/
178 void UART_init()
179 {
180 1 TMOD=0x21;//设置波特率为9600的定时器1方式和初始
181 1 PCON=0x00;
182 1 SCON=0x50;//设置串行口方式
183 1 IP=0x10;
184 1 TH1=0xfd;//定时器初值
185 1 TL1=0xfd;
186 1 TH0=(65536-8333)/256;
187 1 TL0=(65536-8333)%256;
188 1 TCON=0x40;
189 1 IE=0x92;
190 1 TR0=0;
191 1 }
192
193 /***************发送回执****************/
194 void send(void)
195 {
196 1 SBUF=0x55;
197 1 while(TI==0);
198 1 TI=0;
199 1 }
200 /*****************数据处理保存********************/
201 void datadeal(void)
202 {
203 1 uchar roomdata,beddata;
204 1 roomdata=receivedata&0xf0;
205 1 roomdata=roomdata>>4;
206 1 beddata=receivedata&0x0f;
207 1 if(room[0]==0){room[0]=roomdata;}
208 1 else if(room[1]==0){room[1]=roomdata;}
209 1 else if(room[2]==0){room[2]=roomdata;}
210 1 else if(room[3]==0){room[3]=roomdata;}
211 1 else if(room[4]==0){room[4]=roomdata;}
212 1 else if(room[5]==0){room[5]=roomdata;}
213 1 if(bed[0]==0){bed[0]=beddata;}
214 1 else if(bed[1]==0){bed[1]=beddata;}
215 1 else if(bed[2]==0){bed[2]=beddata;}
216 1 else if(bed[3]==0){bed[3]=beddata;}
217 1 else if(bed[4]==0){bed[4]=beddata;}
218 1 else if(bed[5]==0){bed[5]=beddata;}
219 1 }
220 /***************接受数据********************/
221 void receive() interrupt 4 using 1
222 {
223 1 while(RI==0);
224 1 RI=0;
225 1 receivedata=SBUF;
226 1 datadeal();
227 1 send();
228 1 TR0=1;
229 1 buzzer=0;
230 1 }
231 void time0() interrupt 1 using 2
232 {
233 1 TH0=(65536-8333)/256;
234 1 TL0=(65536-8333)%256;
235 1 Btime1++;
C51 COMPILER V8.02 MAIN 05/12/2008 12:39:48 PAGE 5
236 1 if(Btime1>100)
237 1 {
238 2 buzzer=!buzzer;
239 2 Btime1=0;
240 2 Btime++;
241 2 }
242 1 }
243 void key(void)
244 {
245 1 uchar i;
246 1 P1=0xff;
247 1 if(P1!=0xff)
248 1 {
249 2 delay(10);
250 2 if(P1!=0xff)
251 2 {
252 3 i=P1;
253 3 switch(i)
254 3 {
255 4 case 0xfe:room[0]=0;bed[0]=0;break;
256 4 case 0xfd:room[1]=0;bed[1]=0;break;
257 4 case 0xfb:room[2]=0;bed[2]=0;break;
258 4 case 0xf7:room[3]=0;bed[3]=0;break;
259 4 case 0xef:room[4]=0;bed[4]=0;break;
260 4 case 0xdf:room[5]=0;bed[5]=0;break;
261 4 default: break;
262 4 }
263 3 while(P1!=0xff);
264 3 }
265 2 }
266 1 }
267 void main(void)
268 {
269 1 UART_init();
270 1 lcd_init();
271 1 for(;;)
272 1 {
273 2 key();
274 2 display0();
275 2 display1();
276 2 if(Btime>4){Btime=0;TR0=0;}
277 2 }
278 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1449 ----
CONSTANT SIZE = 288 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 15 13
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -