📄 3208_v4.01.00.lst
字号:
232 0x7F,0x41,0x41,0x3E,0x00,//D
233 0x41,0x7F,0x01,//J
234 0x99
235 };
236 /**********************************************************************************************/
237 uchar code VAL_INC[]=//显示"VAL+"
238 {
239 0x7E,0x80,0x80,0x7E,0x00,//V
240 0xFC,0x22,0x22,0xFC,0x00,//A
241 0xFE,0x80,0x80,//L
C51 COMPILER V6.12 3208_V4_01_00 11/03/2008 14:44:34 PAGE 5
242 0x10,0x10,0x7C,0x10,0x10,0,//+
243 0x99
244 };
245 uchar code VAL_DEC[]=//显示"VAL-"
246 {
247 0x7E,0x80,0x80,0x7E,0x00,//V
248 0xFC,0x22,0x22,0xFC,0x00,//A
249 0xFE,0x80,0x80,//L
250 0x10,0x10,0x10,0x10,0x10,0,//-
251 0x99
252 };
253 /**********************************************************************************************/
254 uchar code DISMODE[]=//显示"DISMODE"即显示方式设置
255 {
256 0x7F,0x41,0x41,0x3E,0x00,//D
257 0x7F,0x00,//I
258 0x26,0x49,0x49,0x32,0x00,//S
259 0x7F,0x02,0x04,0x02,0x7F,0x00,//M
260 0x3E,0x41,0x41,0x3E,0x00,//O
261 0x7F,0x41,0x41,0x3E,0x00,//D
262 0x7F,0x49,0x49,0x41,//E
263 0x99
264 };
265 /**********************************************************************************************/
266 uchar code DIS[]=//显示"DIS."
267 {
268 0xFE,0x82,0x82,0x82,0x7C,0x00,
269 0x82,0xFE,0x82,0x00,
270 0x4C,0x92,0x92,0x92,0x64,0x00,
271 0xC0,0xC0,0x00,
272 0x99
273 };
274 /**********************************************************************************************/
275 uchar code DoYoung[]={//-开机画面,显示“DoYoung”
276 0xfe,0x82,0x82,0x7c,0,//D
277 0x78,0x84,0x78,0,//o
278 0x02,0x0c,0xF0,0x0c,0x02,//Y
279 0x78,0x84,0x78,0,//o
280 0x7c,0x80,0x80,0x7c,0,//u
281 0xf8,0x04,0x04,0xf8,0,//n
282 0x98,0xa4,0xa4,0x78,//g
283 0x99
284 };
285 /**********************************************************************************************/
286 void key_off (void){//-等待所有键放开(通用)
287 1 while(OK_Key == 0 || int_Key == 0 || Add_Key == 0 || Add2_Key == 0);//等待键放开
288 1 }
289 /**********************************************************************************************/
290 void Delay(int num){//--延时函数 2uS/次
291 1 for (;num>0;num--);
292 1 }
293 /**********************************************************************************************/
294 void DelayM(unsigned int a){//-延时函数 1MS/次
295 1 unsigned char i;
296 1 while( --a != 0){
297 2 for(i = 0; i < 125; i++); //一个 ; 表示空语句,CPU空转。
298 2 } //i 从0加到125,CPU大概就耗时1毫秒
299 1 }
300 /******************************************************************************/
301 void Init_DS18B20(void)//初始化ds1820温度传感器
302 {
303 1 unsigned char x=0;
C51 COMPILER V6.12 3208_V4_01_00 11/03/2008 14:44:34 PAGE 6
304 1 DQ = 1; //DQ复位
305 1 Delay(8); //稍做延时
306 1 DQ = 0; //单片机将DQ拉低
307 1 Delay(80); //精确延时 大于 480us
308 1 DQ = 1; //拉高总线
309 1 Delay(14);
310 1 x=DQ; //稍做延时后 如果x=0则初始化成功 x=1则初始化失败
311 1 Delay(20);
312 1 }
313 /******************************************************************************/
314 unsigned char ReadOneChar(void)//读一个字节(DS18B20驱动)
315 {
316 1 unsigned char i=0;
317 1 unsigned char dat = 0;
318 1 for (i=8;i>0;i--)
319 1 {
320 2 DQ = 0; // 给脉冲信号
321 2 dat>>=1;
322 2 DQ = 1; // 给脉冲信号
323 2 if(DQ)
324 2 dat|=0x80;
325 2 Delay(4);
326 2 }
327 1 return(dat);
328 1 }
329 /******************************************************************************/
330 void WriteOneChar(unsigned char dat)//写一个字节(DS18B20驱动)
331 {
332 1 unsigned char i=0;
333 1 for (i=8; i>0; i--)
334 1 {
335 2 DQ = 0;
336 2 DQ = dat&0x01;
337 2 Delay(5);
338 2 DQ = 1;
339 2 dat>>=1;
340 2 }
341 1 }
342 /******************************************************************************/
343 unsigned int ReadTemperature(void)//读取温度(DS18B20驱动)
344 {
345 1 unsigned char a=0;
346 1 unsigned char b=0;
347 1 unsigned int t=0;
348 1 float tt=0;
349 1 Init_DS18B20();
350 1 WriteOneChar(0xCC); // 跳过读序号列号的操作
351 1 WriteOneChar(0x44); // 启动温度转换
352 1 Init_DS18B20();
353 1 WriteOneChar(0xCC); //跳过读序号列号的操作
354 1 WriteOneChar(0xBE); //读取温度寄存器
355 1 a=ReadOneChar(); //读低8位
356 1 b=ReadOneChar(); //读高8位
357 1 t=b;
358 1 t<<=8;
359 1 t=t|a;
360 1 tt=t*0.0625;
361 1 t= tt*10+0.5; //放大10倍输出并四舍五入
362 1 return(t);
363 1 }
364 /******************************************************************************/
365 uchar printTemperature(void){//写一个字节(DS18B20驱动)
C51 COMPILER V6.12 3208_V4_01_00 11/03/2008 14:44:34 PAGE 7
366 1 unsigned int i=0;
367 1 unsigned char a=0,b=0,c=0;
368 1 i=ReadTemperature();//读温度并送显
369 1 a=i/100;
370 1 b=i/10-a*10;
371 1 i = a*10 + b;
372 1 return i;
373 1 }
374 /**********************************************************************************************/
375 void Beeplll(void){//BELL 闹钟声音(蜂鸣器驱动)
376 1 uint a;//定义变量用于发声的长度设置
377 1 Led_EA = 1;//关列显示驱动,防止屏幕出现乱码
378 1 for(a=2500;a>0;a--){//第一个声音的长度
379 2 Bell_Out = ~Bell_Out;//取反扬声器驱动口,以产生音频
380 2 Delay(10);//音调设置延时
381 2 }
382 1 for(a=100;a>0;a--){//同上
383 2 Bell_Out = ~Bell_Out; //
384 2 Delay(6);//音调设置延时
385 2 }
386 1 Bell_Out = 1;
387 1 }
388 /**********************************************************************************************/
389 void Beep(void){//BELL-扬声器--整点报时(蜂鸣器驱动)
390 1 uchar a;//定义变量用于发声的长度设置
391 1 Led_EA = 1;//关列显示驱动,防止屏幕出现乱码
392 1 for(a=60;a>0;a--){//第一个声音的长度
393 2 Bell_Out = ~Bell_Out;//取反扬声器驱动口,以产生音频
394 2 Delay(100);//音调设置延时
395 2 }
396 1 for(a=100;a>0;a--){//同上
397 2 Bell_Out = ~Bell_Out;
398 2 Delay(80);//
399 2 }
400 1 for(a=100;a>0;a--){//同上
401 2 Bell_Out = ~Bell_Out;
402 2 Delay(30);//
403 2 }
404 1 }
405 /**********************************************************************************************/
406 void Beep_set(void){//BELL -扬声器--确定设置(蜂鸣器驱动)
407 1 uchar a;//定义变量用于发声的长度设置
408 1 Led_EA = 1;//关列显示驱动,防止屏幕出现乱码
409 1 for(a=250;a>0;a--){//第一个声音的长度
410 2 Bell_Out = ~Bell_Out;//取反扬声器驱动口,以产生音频
411 2 Delay(20);//音调设置延时
412 2 }
413 1 for(a=100;a>0;a--){//同上
414 2 Bell_Out = ~Bell_Out;
415 2 Delay(80);//
416 2 }
417 1 }
418 /**********************************************************************************************/
419 void Beep_key(void){//-扬声器--按键音(蜂鸣器驱动)
420 1 uchar a;//定义变量用于发声的长度设置
421 1 Led_EA = 1;//关列显示驱动,防止屏幕出现乱码
422 1 for(a=100;a>0;a--){//声音的长度
423 2 Bell_Out = ~Bell_Out;
424 2 Delay(50);//音调设置延时
425 2 }
426 1 }
427 /**********************************************************************************************/
C51 COMPILER V6.12 3208_V4_01_00 11/03/2008 14:44:34 PAGE 8
428 void clock_out(unsigned char dd){ //-1302驱动程序(DS1302驱动)
429 1 ACC=dd;
430 1 clock_dat=a0; clock_clk=1; clock_clk=0;
431 1 clock_dat=a1; clock_clk=1; clock_clk=0;
432 1 clock_dat=a2; clock_clk=1; clock_clk=0;
433 1 clock_dat=a3; clock_clk=1; clock_clk=0;
434 1 clock_dat=a4; clock_clk=1; clock_clk=0;
435 1 clock_dat=a5; clock_clk=1; clock_clk=0;
436 1 clock_dat=a6; clock_clk=1; clock_clk=0;
437 1 clock_dat=a7; clock_clk=1; clock_clk=0;
438 1 }
439 /**********************************************************************************************/
440 unsigned char clock_in(void){ //-DS1302写入字节(DS1302驱动)
441 1 clock_dat=1;
442 1 a0=clock_dat;
443 1 clock_clk=1; clock_clk=0; a1=clock_dat;
444 1 clock_clk=1; clock_clk=0; a2=clock_dat;
445 1 clock_clk=1; clock_clk=0; a3=clock_dat;
446 1 clock_clk=1; clock_clk=0; a4=clock_dat;
447 1 clock_clk=1; clock_clk=0; a5=clock_dat;
448 1 clock_clk=1; clock_clk=0; a6=clock_dat;
449 1 clock_clk=1; clock_clk=0; a7=clock_dat;
450 1 return(ACC);
451 1 }
452 /**********************************************************************************************/
453 uchar read_clock(uchar ord){ //-DS1302读数据(DS1302驱动)
454 1 uchar dd=0;
455 1 clock_clk=0;
456 1 clock_Rst=0;
457 1 clock_Rst=1;
458 1 clock_out(ord);
459 1 dd=clock_in();
460 1 clock_Rst=0;
461 1 clock_clk=1;
462 1 return(dd);
463 1 }
464 /**********************************************************************************************/
465 void write_clock(uchar ord, uchar dd){ //-DS1302写数据(DS1302驱动)
466 1 clock_clk=0;
467 1 clock_Rst=0;
468 1 clock_Rst=1;
469 1 clock_out(ord);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -