⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 3208_v4.01.00.lst

📁 《爱上单片机》配书光盘
💻 LST
📖 第 1 页 / 共 3 页
字号:
 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 + -