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

📄 urm37_wr.lst

📁 URM3751距离测量模板驱动程序,最近到0.5CM,精度0.1CM
💻 LST
📖 第 1 页 / 共 2 页
字号:
 233   1              else
 234   1                      return ERROR;
 235   1      }
 236          /******************************************************************** 
 237          * 名称: Write_EEPROM
 238          * 说明: 
 239          * 功能: 写模块内部的EEPROM
 240          * 调用: IIC_START,SendByte,Send_BIT9RW,IIC_ACK
 241          * 输入: uchar Addr,uchar Data
C51 COMPILER V7.06   URM37_WR                                                              10/07/2005 20:45:27 PAGE 5   

 242          * 返回值: 操作标志
 243          ***********************************************************************/
 244          uchar   Write_EEPROM(uchar Addr,uchar Data)
 245          {
 246   1              uchar   Temp;
 247   1              IIC_START();    //启动信号
 248   1              SendByte(Addr);
 249   1              Send_BIT9RW(W); //写
 250   1              SendByte(Data);
 251   1              Temp = IIC_ACK();
 252   1              if(Temp == OK)  
 253   1                      return  OK;
 254   1              else
 255   1                      return  ERROR;  
 256   1      
 257   1      }
 258          /******************************************************************** 
 259          * 名称: Read_Ultra
 260          * 说明: 
 261          * 功能: 读超声波测量到的距离数据
 262          * 调用: IIC_START,SendByte,Send_BIT9RW,IIC_ACK,ReceiveTowByte
 263          * 输入: uuint *p
 264          * 返回值: 操作标志
 265          ***********************************************************************/
 266          uchar   Read_Ultra(uint *p)//读超声波测量到的距离数据
 267          {
 268   1              uchar   Temp;
 269   1              
 270   1              IIC_START();    //启动信号
 271   1              SendByte(150);
 272   1              Send_BIT9RW(R); //读            
 273   1              Temp = IIC_ACK();
 274   1              if(Temp == OK)
 275   1              {
 276   2                      ReceiveTowByte(p);
 277   2                      return OK;
 278   2              }
 279   1              else
 280   1                      return ERROR;           
 281   1      }
 282          
 283          /******************************************************************** 
 284          * 名称: Read_AD
 285          * 说明: 
 286          * 功能: 读AD转换数据
 287          * 调用: IIC_START,SendByte,Send_BIT9RW,IIC_ACK,ReceiveTowByte
 288          * 输入: uchar Channel(通道选择1 - 4) ,uint *p
 289          * 返回值: 操作标志
 290          ***********************************************************************/
 291          uchar   Read_AD(uchar Channel ,uint *p)
 292          {
 293   1              uchar   Temp;
 294   1              
 295   1              IIC_START();    //启动信号
 296   1              SendByte(130+(Channel&0x07));
 297   1              Send_BIT9RW(R); //读            
 298   1              Temp = IIC_ACK();
 299   1              if(Temp == OK)
 300   1              {
 301   2                      ReceiveTowByte(p);
 302   2                      return OK;
 303   2              }
C51 COMPILER V7.06   URM37_WR                                                              10/07/2005 20:45:27 PAGE 6   

 304   1              else
 305   1                      return ERROR;   
 306   1      }
 307          
 308          /******************************************************************** 
 309          * 名称: DisplayTemper
 310          * 说明: 
 311          * 功能: 显示温度
 312          * 调用: Read_Temper,WR_DATA10
 313          * 输入: 无
 314          * 返回值: 无
 315          ***********************************************************************/
 316          void    DisplayTemper(void)//显示温度
 317          {
 318   1              uchar   i;
 319   1              uchar   Temp;
 320   1              uchar   TemperData;
 321   1              uint    DataInt;
 322   1              uchar   array[]="Temperature: ";        
 323   1              
 324   1              Temp = Read_Temper(&DataInt);
 325   1              if(Temp == OK)
 326   1              {
 327   2                      i = 0;
 328   2                      //LCD_ClearLin2();
 329   2                      LCD_WRITE_COMM(0xc0);   //
 330   2                      while(array[i]!='\0')
 331   2                      {
 332   3                              LCD_WRITE_DATA(array[i]);
 333   3                              i++;    
 334   3                      }
 335   2                      
 336   2                      TemperData = (uchar)(DataInt>>4)&0x00ff;
 337   2                      Temp = TemperData/10;
 338   2                      LCD_WRITE_DATA(0x30+Temp);
 339   2                      Temp= TemperData%10;
 340   2                      LCD_WRITE_DATA(0x30+Temp);
 341   2                      LCD_WRITE_DATA('C');
 342   2              }       
 343   1      }
 344          
 345          /******************************************************************** 
 346          * 名称: DisplayUltra
 347          * 说明: 
 348          * 功能: 显示超声波测量距离
 349          * 调用: Read_Ultra,HEX_TO_DEC,WR_DATA10
 350          * 输入: 无
 351          * 返回值: 无
 352          ***********************************************************************/
 353          void    DisplayUltra(void)//显示超声波测量距离
 354          {
 355   1              uchar   i;
 356   1              uchar   Temp;
 357   1              uint    DataInt;
 358   1              uchar   Data[5];
 359   1              uchar   array[]="Distance: ";
 360   1              Temp = Read_Ultra(&DataInt);
 361   1              if(Temp == OK)
 362   1              {
 363   2                      i = 0;
 364   2                      //LCD_ClearLin2();
 365   2                      LCD_WRITE_COMM(0xc0);   //
C51 COMPILER V7.06   URM37_WR                                                              10/07/2005 20:45:27 PAGE 7   

 366   2                      while(array[i]!='\0')
 367   2                      {
 368   3                              LCD_WRITE_DATA(array[i]);
 369   3                              i++;    
 370   3                      }
 371   2                      HEX_TO_DEC(DataInt,Data);
 372   2                      //LCD_WRITE_DATA(0x30+Data[2]);
 373   2              LCD_WRITE_DATA(0x30+Data[3]);//米
 374   2                      LCD_WRITE_DATA('.');
 375   2              LCD_WRITE_DATA(0x30+Data[2]);//分米
 376   2                      LCD_WRITE_DATA(0x30+Data[1]);//厘米
 377   2                      LCD_WRITE_DATA(0x30+Data[0]);//毫米
 378   2                      LCD_WRITE_DATA('m');
 379   2                      
 380   2              }       
 381   1      }
 382          /******************************************************************** 
 383          * 名称: EEPROM_Test
 384          * 说明: 
 385          * 功能: 写EEPROM测试
 386          * 调用: Write_EEPROM,Read_EEPROM,WR_DATA10
 387          * 输入: 无
 388          * 返回值: 无
 389          ***********************************************************************/
 390          void   EEPROM_Test(void) //写EEPROM测试
 391          {
 392   1              uchar Temp;
 393   1              uchar Temp2;
 394   1              uchar i;
 395   1              uchar array[]="EEPROM Test:  ";
 396   1              Write_EEPROM(0,0x51);
 397   1              Temp = Read_EEPROM(0,&Temp2);
 398   1              if(Temp == OK)
 399   1              {
 400   2                      i = 0;
 401   2                      //LCD_ClearLin2();
 402   2                      LCD_WRITE_COMM(0xc0);   //
 403   2                      while(array[i]!='\0')
 404   2                      {
 405   3                              LCD_WRITE_DATA(array[i]);
 406   3                              i++;    
 407   3                      }
 408   2                      Temp = (Temp2>>4)&0x0f;
 409   2                      LCD_WRITE_DATA(0x30+Temp);
 410   2                      Temp = Temp2&0x0f;
 411   2                      LCD_WRITE_DATA(0x30+Temp);
 412   2              }
 413   1      }
 414          /******************************************************************** 
 415          * 名称: AD_Test
 416          * 说明: 
 417          * 功能: 读内部AD测试
 418          * 调用: Read_AD,HEX_TO_DEC,WR_DATA10
 419          * 输入: uchar Channel:通道选择(1 - 4)
 420          * 返回值: 无
 421          ***********************************************************************/
 422          void    AD_Test(uchar Channel)//读内部AD测试
 423          {
 424   1              uchar Temp;
 425   1              uchar i;
 426   1              uint  DataInt;  
 427   1              uchar   Data[5];
C51 COMPILER V7.06   URM37_WR                                                              10/07/2005 20:45:27 PAGE 8   

 428   1              uchar array[]="AD CH";
 429   1              Temp = Read_AD(Channel,&DataInt);//读AD输入
 430   1              if(Temp == OK)
 431   1              {
 432   2                      i = 0;
 433   2                      //LCD_ClearLin2();
 434   2                      LCD_WRITE_COMM(0xc0);   //
 435   2                      while(array[i]!='\0')
 436   2                      {
 437   3                              LCD_WRITE_DATA(array[i]);
 438   3                              i++;    
 439   3                      }
 440   2                      LCD_WRITE_DATA(0x30+Channel);
 441   2                      LCD_WRITE_DATA(':');
 442   2                      LCD_WRITE_DATA(' ');
 443   2                      LCD_WRITE_DATA(' ');
 444   2                      LCD_WRITE_DATA(' ');
 445   2                      LCD_WRITE_DATA(' ');
 446   2                      LCD_WRITE_DATA(' ');
 447   2                      HEX_TO_DEC(DataInt,Data);
 448   2                      LCD_WRITE_DATA(0x30+Data[3]);
 449   2                      LCD_WRITE_DATA(0x30+Data[2]);
 450   2                      LCD_WRITE_DATA(0x30+Data[1]);
 451   2                      LCD_WRITE_DATA(0x30+Data[0]);
 452   2                      
 453   2              }
 454   1                              
 455   1      }       
 456          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    908    ----
   CONSTANT SIZE    =     46    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      82
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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