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

📄 led测试.lst

📁 采用DS12C887做时钟
💻 LST
字号:
C51 COMPILER V8.02   LED测试                                                               05/31/2007 22:14:13 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE LED测试
OBJECT MODULE PLACED IN LED测试.OBJ
COMPILER INVOKED BY: G:\8.02\C51\BIN\C51.EXE LED测试.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1           #include <AT89X52.H> 
   2           #include <INTRINS.h>
   3           unsigned char code Tab[]={0xff,0Xfd,0xff,0xfe,0xff,0xf7,0xff,0xfb,0xff,0xdf,0xff,0xef,0xff,0x7f,0xff,0xbf
             -,
   4                                     0Xfd,0xff,0xfe,0xff,0xf7,0xff,0xfb,0xff,0xdf,0xff,0xef,0xff,0x7f,0xff,0xbf,0xff
             -};
   5           unsigned char code codedisplay[]={0xFF,0xFF,0xFF,0xE7,0xDB,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xDB,0xE7,0
             -xFF,0xFF,/*"0",0*/
   6                                             0xFF,0xFF,0xFF,0xEF,0x8F,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0x83,0
             -xFF,0xFF,/*"1",1*/
   7                                             0xFF,0xFF,0xFF,0xC3,0xBD,0xBD,0xBD,0xFB,0xFB,0xF7,0xEF,0xDF,0xBD,0x81,0
             -xFF,0xFF,/*"2",2*/
   8                                                                             0xFF,0xFF,0xFF,0xC3,0xBD,0xBD,0xFB,0xE7,0xFB,0xFD,0xFD,0xBD,0xBB,0xC7,0xFF,0xFF,/*"3",3*/
   9                                             0xFF,0xFF,0xFF,0xFB,0xF3,0xEB,0xDB,0xDB,0xBB,0xBB,0x81,0xFB,0xFB,0xE1,0
             -xFF,0xFF,/*"4",4*/
  10                                             0xFF,0xFF,0xFF,0x81,0xBF,0xBF,0xBF,0xA7,0x9B,0xFD,0xFD,0xBD,0xBB,0xC7,0
             -xFF,0xFF,/*"5",5*/
  11                                                                             0xFF,0xFF,0xFF,0xE3,0xDB,0xBF,0xBF,0xA7,0x9B,0xBD,0xBD,0xBD,0xDB,0xE7,0xFF,0xFF,/*"6",6*/
  12                                                                             0xFF,0xFF,0xFF,0x81,0xBB,0xBB,0xF7,0xF7,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xFF,0xFF,/*"7",7*/
  13                                                                             0xFF,0xFF,0xFF,0xC3,0xBD,0xBD,0xBD,0xDB,0xE7,0xDB,0xBD,0xBD,0xBD,0xC3,0xFF,0xFF,/*"8",8*/
  14                                                                             0xFF,0xFF,0xFF,0xE7,0xDB,0xBD,0xBD,0xBD,0xD9,0xE5,0xFD,0xFD,0xDB,0xC7,0xFF,0xFF};/*"9",9*/
  15          
  16           extern    Write_Date(uchar   StartAddress,uchar   *date,uchar   bytes); 
*** ERROR C141 IN LINE 16 OF LED测试.C: syntax error near 'StartAddress', expected ')'
  17           extern    Read_Date(uchar   StartAddress,uchar   *date,uchar   bytes);  
*** ERROR C141 IN LINE 17 OF LED测试.C: syntax error near 'StartAddress', expected ')'
  18           unsigned char m; 
  19           unsigned int result,count=0;
  20           
  21           void delay(void)
  22          {  unsigned char        i,j;
  23   1         for(i=0;i<15;i++){   for(j=0;j<50;j++) ;     }
  24   1      } 
  25          
  26          unsigned char displaycount,x; 
  27          unsigned char displaybuf[8]={0,0,0,0,0,0,0,0}; 
  28          unsigned char timecount; 
  29          unsigned char readdata[8]; 
  30           unsigned long a,aa,bb;
  31          sbit DQ=P2^6;   //选P3.7口与DS18B20的数字信号输出端DQ相连 
  32          bit sflag; 
  33           
  34          bit resetpulse(void)     //DS18B20初始化实现对DS18B20的复位
  35          { unsigned char pre;
  36   1        unsigned char i; 
  37   1        DQ=0;        //发出复位脉冲,将数据线下拉480μS-960μS 
  38   1        for(i=220;i>0;i--);  //(改!!!!!!!!!!!!!!!!!!!!)
  39   1        DQ=1;         //DS18B20等待15μS-60μS 
  40   1        for(i=60;i>0;i--); 
  41   1        pre=DQ; 
  42   1        for(i=150;i>0;i--);
  43   1        return(pre);    // DS18B20返回60μS-240μS存在低脉冲,判断是否准备好接受或发送数据 
  44   1      }
  45           
  46          void writecommandtods18b20(unsigned char command)    //写时序 
C51 COMPILER V8.02   LED测试                                                               05/31/2007 22:14:13 PAGE 2   

  47          { 
  48   1        unsigned char i; 
  49   1        unsigned char j; 
  50   1         
  51   1        for(i=0;i<8;i++) 
  52   1          { 
  53   2            if((command & 0x01)==0)   //写0时序 
  54   2              { 
  55   3                DQ=0;        //拉低单总线至少60μS,保证DS18B20在15μS-45μS时可以正确地采样I/O总线上的低电平
  56   3                for(j=35;j>0;j--); 
  57   3                DQ=1; 
  58   3              } 
  59   2              else       //写1时序
  60   2                { 
  61   3      DQ=0;         //拉低单总线后,在15us之内就得释放
  62   3                  for(j=2;j>0;j--); 
  63   3                  DQ=1; 
  64   3                  for(j=33;j>0;j--); 
  65   3                } 
  66   2            command=_cror_(command,1);       
  67   2          } 
  68   1      } 
  69           
  70          unsigned char readdatafromds18b20(void)     //读时序   
  71          { 
  72   1        unsigned char i; 
  73   1        unsigned char j; 
  74   1        unsigned char temp; 
  75   1       
  76   1        temp=0; 
  77   1        for(i=0;i<8;i++) 
  78   1          { 
  79   2            temp=_cror_(temp,1);    
  80   2            DQ=0;                 //单总线拉低后,读时序开始 
  81   2            _nop_(); 
  82   2            _nop_(); 
  83   2            DQ=1;                  //停止将数据线拉低,以读取数据     
  84   2            for(j=10;j>0;j--); 
  85   2            if(DQ==1) 
  86   2              { 
  87   3                temp=temp | 0x80; 
  88   3              } 
  89   2              else 
  90   2                { 
  91   3                  temp=temp | 0x00; 
  92   3                } 
  93   2            for(j=20;j>0;j--);  ////////////////////(改!!!!!!!!!!!!)
  94   2          } 
  95   1        return(temp); 
  96   1      } 
  97           
  98          
  99          
 100          void main(void)
 101            {     SCON=0; P1=0;
 102   1          Write_Date(15,date_txd,3);
*** ERROR C202 IN LINE 102 OF LED测试.C: 'date_txd': undefined identifier
 103   1              Read_Date(0,date_rxd,3);          
*** ERROR C202 IN LINE 103 OF LED测试.C: 'date_rxd': undefined identifier
 104   1          //while(resetpulse());      //写前调用初始化程序对DS18B20复位
 105   1          //writecommandtods18b20(0xcc);  //单片DS18B20工作,跳过读ROM中64位地址的过程 
 106   1          //writecommandtods18b20(0x44); //启动DS18B20进行温度转化,将结果存入内部RAM中
C51 COMPILER V8.02   LED测试                                                               05/31/2007 22:14:13 PAGE 3   

 107   1         while(1)        
 108   1          {           
 109   2                                        for(m=0;m<16;m++)
 110   2                                         {   SBUF=codedisplay[date_rxd[0]*16+m];    while(!TI) ; TI=0;
*** ERROR C202 IN LINE 110 OF LED测试.C: 'date_rxd': undefined identifier
 111   3                                     SBUF=codedisplay[date_rxd[1]*16+m];    while(!TI) ; TI=0; 
*** ERROR C202 IN LINE 111 OF LED测试.C: 'date_rxd': undefined identifier
 112   3                                         SBUF=codedisplay[date_rxd[2]*16+m];   while(!TI) ; TI=0; 
*** ERROR C202 IN LINE 112 OF LED测试.C: 'date_rxd': undefined identifier
 113   3                                         SBUF=codedisplay[date_rxd[3]*16+m];    while(!TI) ; TI=0;
*** ERROR C202 IN LINE 113 OF LED测试.C: 'date_rxd': undefined identifier
 114   3                                                 SBUF=codedisplay[date_rxd[4]*16+m];   while(!TI) ; TI=0; 
*** ERROR C202 IN LINE 114 OF LED测试.C: 'date_rxd': undefined identifier
 115   3                                         SBUF=codedisplay[date_rxd[5]*16+m];    while(!TI) ; TI=0; 
*** ERROR C202 IN LINE 115 OF LED测试.C: 'date_rxd': undefined identifier
 116   3                                                 SBUF=codedisplay[date_rxd[6]*16+m];    while(!TI) ; TI=0; 
*** ERROR C202 IN LINE 116 OF LED测试.C: 'date_rxd': undefined identifier
 117   3                                         SBUF=codedisplay[date_rxd[7]*16+m];    while(!TI) ; TI=0;  
*** ERROR C202 IN LINE 117 OF LED测试.C: 'date_rxd': undefined identifier
 118   3                                             //P2_0=0;P2_1=0;P2_1=1;P2_1=0;P2_0=1;
 119   3                                                 SBUF=Tab[2*m]; while(!TI) ; TI=0;
 120   3                                                 SBUF=Tab[2*m+1];while(!TI) ; TI=0; 
 121   3                                                 
 122   3                                                 P3_4=0;P3_4=1;       P3_4=0;
 123   3                                 delay();
 124   3                              /*                 count++;
 125   3                if(count==600)
 126   3                {     count=0;
 127   3                while(resetpulse());    //写前调用初始化程序对DS18B20复位
 128   3            writecommandtods18b20(0xcc);      //单片DS18B20工作,跳过读ROM中64位地址的过程 
 129   3            writecommandtods18b20(0xbe);      // 读DS18B20RAM中温度数据
 130   3            readdata[0]=readdatafromds18b20();   //温度数据低8位赋值
 131   3            readdata[1]=readdatafromds18b20();    //温度数据高8位赋值 
 132   3            sflag=0; 
 133   3            if((readdata[1] & 0xf8)!=0x00)   //温度数据高5位为1时,温度为负值 
 134   3              { 
 135   3                sflag=1; 
 136   3                readdata[1]=~readdata[1];   //对负温度值进行取反加1操作
 137   3                readdata[0]=~readdata[0]; 
 138   3                result=readdata[0]+1; 
 139   3                readdata[0]=result; 
 140   3                if(result>255) 
 141   3                  { 
 142   3                    readdata[1]++; 
 143   3                  } 
 144   3              } 
 145   3            readdata[1]=readdata[1]&0x07;      //将代表符号的高5位数屏蔽
 146   3                              aa=625;bb=(readdata[1]*256+readdata[0]);
 147   3                          a=bb*aa;   //计算实际温度值
 148   3              
 149   3                              
 150   3                          
 151   3                          displaybuf[0]=a/100000;      //给各显示位赋温度值
 152   3                          displaybuf[1]=a%100000/10000;
 153   3                          displaybuf[2]=a%10000/1000;
 154   3                              displaybuf[3]=a%1000/100;
 155   3                              displaybuf[4]=a%100/10;
 156   3                              displaybuf[5]=a%10;
 157   3            while(resetpulse()); 
 158   3            writecommandtods18b20(0xcc); 
 159   3            writecommandtods18b20(0x44); 
 160   3            }*/
C51 COMPILER V8.02   LED测试                                                               05/31/2007 22:14:13 PAGE 4   

 161   3                 }}}
 162          
 163          
 164          
 165          
 166          
 167          
 168          
 169          
 170          
 171          
 172          
 173                                             
 174                            
 175                                     
 176                                     
 177               

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

⌨️ 快捷键说明

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