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

📄 practise1.lst

📁 单片机单片机单单片机单片机单片机单片机单片机单片机单片机单片机单片机单片机单片机单片机单片机单片机单片机单片机单片机单片机片机单片机单片机单片机
💻 LST
字号:
C51 COMPILER V6.12  PRACTISE1                                                              04/29/2009 13:10:31 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE PRACTISE1
OBJECT MODULE PLACED IN .\practise1.OBJ
COMPILER INVOKED BY: E:\Keil\C51\BIN\C51.EXE .\practise1.c DEBUG OBJECTEXTEND

stmt level    source

   1          #include<reg52.h>
   2          
   3          #define uchar unsigned char
   4          #define uint unsigned int
   5          
   6          sbit feng=P2^3;
   7          sbit dq=P2^2;
   8          sbit led=P1^0;
   9          sbit dula=P2^6;
  10          sbit wela=P2^7;
  11          
  12          
  13          float f_temp;
  14          uint C_temp;
  15          
  16          uchar code table[]={
  17          0x3f,0x06,0x5b,0x4f,
  18          0x66,0x6d,0x7d,0x07,
  19          0x7f,0x6f,0x77,0x7c,
  20          0x39,0x5e,0x79,0x71	
  21          };
  22          
  23          uchar code table2[]={
  24          0xfe,0xfd,0xfb,0xf7,0xef,0xdf
  25          };
  26          
  27          /******************延时***************************/
  28          
  29          void delay_ms(uint z)
  30          {
  31   1      	uint ii,jj;
  32   1      	for(ii=z;ii>0;ii--)
  33   1      		for(jj=110;jj>0;jj--){}
  34   1      }
  35          
  36          /****************复位与存在***********************/
  37          
  38          void reset()
  39          {	
  40   1      	uchar tt=00;
  41   1      	
  42   1      	dq=0;
  43   1      	tt=250;
  44   1      	while( tt>0 ) tt--;
  45   1      	dq=1;
  46   1      	tt++;tt++;
  47   1      }
  48          /*
  49          void exist()
  50          {
  51          	uchar tt=20;
  52          	while(dq==0||tt<0) tt--;//延时或者是检测到了存在信号
  53          	if(dq==0)
  54          	//delay_us(500);
  55          	tt=100;
C51 COMPILER V6.12  PRACTISE1                                                              04/29/2009 13:10:31 PAGE 2   

  56          	while( tt>0 ) tt--;
  57          	dq=1;
  58          	//delay_us(2);	
  59          }
  60          */
  61          
  62          
  63          /*************************************************/
  64          
  65          //写入字节
  66          void write_byte(uchar xx)
  67          {
  68   1      	bit bb;
  69   1      	uchar test=0x01;//*********************************这里可能有问题?
  70   1      	uchar date=xx;
  71   1      	uchar ii=0;
  72   1      	uchar tt=0;	
  73   1      
  74   1      	while(ii < 8)
  75   1      	{
  76   2      		bb=test&date;
  77   2      		if(bb)
  78   2      		{
  79   3      			dq=0;
  80   3      			tt=3;
  81   3      			while(tt>0) tt--; //delay_us(8);
  82   3      			dq=1;
  83   3      			tt=30;
  84   3      			while( tt>0 ) tt--; //delay_us(60);
  85   3      		}
  86   2      		else
  87   2      		{
  88   3      			dq=0;
  89   3      			tt=30;
  90   3      			while( tt>0 ) tt--; //delay_us(60);
  91   3      			dq=1;
  92   3      			tt++; tt++; //delay_us(2);
  93   3      		}
  94   2      		++ii;		
  95   2      	}
  96   1      			
  97   1      }
  98          
  99          bit read_bit()
 100          {
 101   1      	bit bb;
 102   1      	uchar tt=0;
 103   1      	
 104   1      	dq=1;
 105   1      	tt++;
 106   1      	dq=0;
 107   1      	tt++; tt++;  //delay_us(2);
 108   1      	dq=1;
 109   1      	tt=3;
 110   1      	while(tt>0) tt--; //delay_us(4);
 111   1      	bb=dq;
 112   1      	tt=20;
 113   1      	while(tt>0) tt--; //delay_us(40);	
 114   1      	return bb;
 115   1      }
 116          
 117          //读字节
C51 COMPILER V6.12  PRACTISE1                                                              04/29/2009 13:10:31 PAGE 3   

 118          uchar read_byte()
 119          {
 120   1      	uchar byte=0x00;
 121   1      	uchar ii=0;
 122   1      	uchar temp;
 123   1      	uchar tt=0;
 124   1      	//uchar tt=0x01;
 125   1      	
 126   1      	while(ii < 8)
 127   1      	{	
 128   2      		tt++;
 129   2      		//delay_us(2);
 130   2      		temp=read_bit();
 131   2      		byte=(byte>>1)|(temp<<7);
 132   2      		++ii;	
 133   2      		/*
 134   2      		delay_us(2);
 135   2      		temp=read_bit();
 136   2      		byte=byte+temp&tt;
 137   2      		tt<<1;
 138   2      		*/		
 139   2      	}
 140   1      	
 141   1      	return(byte);
 142   1      }
 143          
 144          
 145          
 146          /**********************温度************************/
 147          
 148          void convert_temper()
 149          {
 150   1      	uchar tt;
 151   1      	reset();
 152   1      	tt=100;
 153   1      	while(tt>0) tt--;
 154   1      	//exist();
 155   1      	write_byte(0xCC); //跳过读ROM操作
 156   1      	write_byte(0x44);//温度转换命令
 157   1      }
 158          
 159          /*uint read_temper()
 160          {
 161          	uchar tt;
 162          	uchar LSB_temper=0x00;
 163          	uchar MSB_temper=0x00;
 164          
 165          	reset();
 166          	//exist();
 167          	tt=100;
 168          	while(tt>0) tt--;	
 169          	write_byte(0xCC);
 170          	write_byte(0xBE);
 171          		
 172          	LSB_temper=read_byte();
 173          	MSB_temper=read_byte();
 174          	
 175          	C_temper=MSB_temper;
 176          	C_temper=(C_temper<<8)|LSB_temper;
 177          	C_temper=C_temper*0.0625*10;
 178          	
 179          	return C_temper;			
C51 COMPILER V6.12  PRACTISE1                                                              04/29/2009 13:10:31 PAGE 4   

 180          }
 181          */
 182          uint read_temper()
 183          {
 184   1      	uchar a,b;
 185   1      	reset();
 186   1      	delay_ms(1);
 187   1      	write_byte(0xcc);
 188   1      	write_byte(0xbe);
 189   1      	a=read_byte();
 190   1      	b=read_byte();
 191   1      	C_temp=b;
 192   1      	C_temp<<=8;
 193   1      	C_temp=C_temp|a;
 194   1      	f_temp=C_temp*0.0625;
 195   1      	C_temp=f_temp*10+0.5;
 196   1      	f_temp=f_temp+0.05;
 197   1      	return C_temp;
 198   1      }
 199          /******************响应******************************/
 200          
 201          /*void display_temper()
 202          {
 203          	uchar xx,yy,zz;
 204          	
 205          	xx=C_temp/100;
 206          	yy=C_temp/10%10;
 207          	zz=C_temp%10;
 208          
 209          
 210          	wela=1;
 211          	P0=table2[0];
 212          	wela=0;
 213          	//delay_ms(2);
 214          	
 215          	P0=0x00;
 216          	dula=1;
 217          	P0=table[xx];
 218          	dula=0;
 219          	delay_ms(5);
 220          	
 221          	P0=0xff;
 222          	wela=1;
 223          	P0=table2[1];
 224          	wela=0;
 225          	//delay_ms(2);
 226          
 227          	P0=0x00;	
 228          	dula=1;
 229          	P0=(table[yy]+0x80);
 230          	dula=0;
 231          	delay_ms(5);
 232          
 233          	P0=0xff;
 234          	wela=1;
 235          	P0=table2[2];
 236          	wela=0;
 237          	//delay_ms(2);
 238          	
 239          	P0=0x00;
 240          	dula=1;
 241          	P0=table[zz];
C51 COMPILER V6.12  PRACTISE1                                                              04/29/2009 13:10:31 PAGE 5   

 242          	dula=0;
 243          	delay_ms(5);
 244          	
 245          }
 246          */
 247          void display(uchar num,uchar dat)
 248          {
 249   1      	uchar i;
 250   1      	dula=0;
 251   1      	P0=table[dat];
 252   1      	dula=1;
 253   1      	dula=0;
 254   1      	wela=0;
 255   1      	i=0xFF;
 256   1      	i=i&(~((0x01)<<(num)));
 257   1      	P0=i;
 258   1      	wela=1;
 259   1      	wela=0;
 260   1      	delay_ms(1);
 261   1      }
 262          
 263          void dis_temp(uint t)
 264          {
 265   1      	uchar i;
 266   1      	i=t/100;
 267   1      	display(0,i);
 268   1      	i=t%100/10;
 269   1      	display(1,i);
 270   1      	i=t%100%10;
 271   1      	display(2,i);
 272   1      }
 273          /*******************************************/
 274          
 275          
 276          void main()
 277          {
 278   1      	uchar ii;
 279   1      
 280   1      	while(1)
 281   1      	{
 282   2      		convert_temper();
 283   2      		read_temper();
 284   2      		for(ii=0;ii<5;ii++)
 285   2      		{
 286   3      			dis_temp(read_temper);
 287   3      		}
 288   2      	}
 289   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    449    ----
   CONSTANT SIZE    =     22    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      6       3
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       2
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -