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

📄 good.lst

📁 单片机单片机单单片机单片机单片机单片机单片机单片机单片机单片机单片机单片机单片机单片机单片机单片机单片机单片机单片机单片机片机单片机单片机单片机
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V6.12  GOOD                                                                   04/29/2009 16:29:58 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE GOOD
OBJECT MODULE PLACED IN good.obj
COMPILER INVOKED BY: E:\Keil\C51\BIN\C51.EXE .\sucess\good.c DEBUG OBJECTEXTEND PRINT(.\good.lst) OBJECT(good.obj) 

stmt level    source

   1          #include<reg52.h>
   2          #include<stdio.h>
   3          #include<intrins.h>
   4          
   5          #define uchar unsigned char 
   6          #define uint unsigned int 
   7          
   8          sbit dula=P2^6;
   9          sbit wela=P2^7;
  10          sbit dq=P2^2;
  11          sbit feng=P2^3;
  12          
  13          uint c1_temper,c2_temper;
  14          uint L_temper;
  15          uint H_temper;
  16          
  17          unsigned char aa[9]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
  18          unsigned char bb[9]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
  19          
  20          uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,
  21          0xBf,0x86,0xDb,0xCf,0xE6, 0xEd,0xEd,0x87,0xFf,0xEf};
  22          
  23          void delay_ms(uint z);
  24          void delay_us();
  25          void write_cmd(uchar z);
  26          void get_firstid();
  27          void get_seconedid();
  28          void write_bit(uchar dd);
  29          void deal_temper();
  30          void deal_ds1();
  31          void deal_ds2();
  32          void display_temper(uint wengdu,uchar fc);
  33          void init();
  34          void warn_temper(uchar z);
  35          uchar dq_reset();
  36          uchar keyscanf();
  37          uchar read_byte();
  38          uint get_temper(uchar z);
  39          uchar read_bit();
  40          uchar read_date();
  41          
  42          /******************延迟****************/
  43          
  44          void delay_ms(uint z)//毫秒级的延迟
  45          {	
  46   1      	uint x,y;
  47   1      	for(x=z;x>0;x--)
  48   1      		for(y=110;y>0;y--);	
  49   1      }
  50          
  51          void delay_us()//延时微秒
  52          {
  53   1      	_nop_();
  54   1      }
  55          
C51 COMPILER V6.12  GOOD                                                                   04/29/2009 16:29:58 PAGE 2   

  56          /*****************复位*************************/
  57          
  58          uchar dq_reset()
  59          {
  60   1      	uchar t;
  61   1      	uchar dd;
  62   1      	dq=0;
  63   1      	for(t=250;t>0;t--);
  64   1      	dq=1;
  65   1      	for(t=5;t>0;t--);
  66   1      	dd=dq;
  67   1      	for(t=150;t>0;t--);
  68   1      	return dd;
  69   1      }
  70          
  71          /******************读位写位**********************/
  72          
  73          uchar read_bit()
  74          {
  75   1      	uchar t;
  76   1      	uchar dd;
  77   1      
  78   1      	dq=0;
  79   1      	delay_us();delay_us();
  80   1      	dq=1;
  81   1      	for(t=3;t>0;t--);
  82   1      	dd=dq;//get the signal
  83   1      	for(t=20;t>0;t--);
  84   1      	return dd;
  85   1      }
  86          
  87          void write_bit(uchar dd)
  88          {
  89   1      	uchar t;
  90   1      
  91   1      	if(dd==1)
  92   1      	{
  93   2      		dq=0;
  94   2      		delay_us();
  95   2      		dq=1;
  96   2      		for(t=30;t>0;t--);	
  97   2      	}	
  98   1      	else
  99   1      	{
 100   2      		dq=0;
 101   2      		for(t=30;t>0;t--);
 102   2      		dq=1;
 103   2      		delay_us();
 104   2      		delay_us();
 105   2      	}
 106   1      }
 107          
 108          /******************写命令写数据***********************/
 109          
 110          void write_cmd(uchar z)//写命令
 111          {
 112   1      	uchar i,t;
 113   1      	uchar temp;
 114   1      	uchar cd=z;
 115   1      
 116   1      	for(i=0;i<8;i++)
 117   1      	{
C51 COMPILER V6.12  GOOD                                                                   04/29/2009 16:29:58 PAGE 3   

 118   2      		temp=cd&0x01;
 119   2      		if(temp)
 120   2      		{
 121   3      			dq=0;
 122   3      			delay_us();delay_us();//
 123   3      			dq=1;
 124   3      			for(t=40;t>0;t--);	
 125   3      		}
 126   2      		else
 127   2      		{
 128   3      			dq=0;
 129   3      			for(t=40;t>0;t--);
 130   3      			dq=1;
 131   3      			delay_us();	delay_us();		
 132   3      		}
 133   2      		cd=_cror_(cd,1);
 134   2      	}	
 135   1      	
 136   1      }
 137          
 138          /*****************温度******************************/
 139          
 140          uchar read_byte()//读字节
 141          { 
 142   1      	uchar i;
 143   1      	uchar temp; 
 144   1      	uchar dd;
 145   1      
 146   1      	temp=0x00; 
 147   1      	for(i=0;i<8;i++) 
 148   1      	{ 
 149   2      		temp=_cror_(temp,1); 
 150   2      		dd=read_bit();
 151   2      		if(dd==1) 
 152   2      		{ 
 153   3      			temp=temp|0x80; 
 154   3      		} 
 155   2      		else 
 156   2      		{ 
 157   3      			temp=temp|0x00; 
 158   3      		} 
 159   2      	} 
 160   1      	return(temp); 
 161   1      } 
 162          
 163          uint get_temper(uchar z)//get centigrad for the ram
 164          {
 165   1      
 166   1      	uchar LSB_temper=0x00;
 167   1      	uchar MSB_temper=0x00;
 168   1      	uchar i;
 169   1      	//uchar t;
 170   1      	uint c_temp=0;
 171   1      	float f_temp=0;
 172   1      	
 173   1      	dq_reset();
 174   1      	
 175   1      	write_cmd(0x55);
 176   1      	if(z==1)
 177   1      	{
 178   2      		for(i=1;i<=8;i++)
 179   2      		{
C51 COMPILER V6.12  GOOD                                                                   04/29/2009 16:29:58 PAGE 4   

 180   3      			write_cmd(aa[i]);
 181   3      		}
 182   2      	}
 183   1      	else 
 184   1      	{
 185   2      		for(i=1;i<=8;i++)
 186   2      		{
 187   3      			write_cmd(bb[i]);
 188   3      		}
 189   2      	}
 190   1      	delay_ms(1);
 191   1      	write_cmd(0xbe);//读存储器内的温度
 192   1      
 193   1      	LSB_temper=read_byte();
 194   1      	MSB_temper=read_byte();
 195   1      	dq_reset();	
 196   1      	c_temp=MSB_temper;
 197   1      	c_temp=(c_temp<<8);
 198   1      	c_temp=c_temp|LSB_temper;
 199   1      	f_temp=c_temp*0.0625;
 200   1      	c_temp=f_temp*10+0.5;
 201   1      	
 202   1      	return (c_temp);
 203   1      }
 204          
 205          /******************获取序列号************************/
 206          
 207          void get_firstid()
 208          {
 209   1      	uchar t;
 210   1      	uchar w=1;
 211   1      	uchar d1,d2;
 212   1      	uchar temp=0x00;
 213   1      	
 214   1      	dq_reset();
 215   1      	write_cmd(0xf0);//搜索序列号命令
 216   1      
 217   1      	for(t=1;t<=64;t++)
 218   1      	{
 219   2      		d1=read_bit();
 220   2      		d2=read_bit();
 221   2      		temp=_cror_(temp,1);
 222   2      		
 223   2      		if( (d1==1) && (d2==0) )
 224   2      		{
 225   3      			temp=temp|0x80;
 226   3      			write_bit(1);
 227   3      		}
 228   2      		else if( (d1==0) && (d2==1))
 229   2      		{
 230   3      			temp=temp|0x00;
 231   3      			write_bit(0);
 232   3      		}
 233   2      		else if( (d1==0) && (d2==0) )
 234   2      		{
 235   3      			temp=temp|0x00;
 236   3      			write_bit(0);
 237   3      		}
 238   2      		if(t%8==0)
 239   2      		{
 240   3      			aa[w]=temp;
 241   3      			w=w+1;
C51 COMPILER V6.12  GOOD                                                                   04/29/2009 16:29:58 PAGE 5   

 242   3      			temp=0x00;
 243   3      		}	
 244   2      	}
 245   1      	
 246   1      }
 247          
 248          void get_seconedid()
 249          {
 250   1      	uchar t;
 251   1      	uchar w=1;
 252   1      	uchar d1,d2;
 253   1      	uchar temp=0x00;
 254   1      	
 255   1      	dq_reset();

⌨️ 快捷键说明

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