C51 COMPILER V9.60.7.0 UL 03/10/2025 18:03:55 PAGE 1 C51 COMPILER V9.60.7.0, COMPILATION OF MODULE UL OBJECT MODULE PLACED IN .\Objects\ul.obj COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\driver\ul.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\driver;..\user) DEBUG -OBJECTEXTEND PRINT(.\Listings\ul.lst) TABS(2) OBJECT(.\Objects\ul.obj) line level source 1 #include "ul.h" 2 3 #include "intrins.h" 4 sbit Tx = P1 ^ 0; 5 sbit Rx = P1 ^ 1; 6 void Delay12us(void) //@12.000MHz 7 { 8 1 unsigned char data i; 9 1 10 1 _nop_(); 11 1 _nop_(); 12 1 i = 33; // 38 13 1 while (--i); 14 1 } 15 void Ut_Wave_Init() { 16 1 unsigned char i; 17 1 for (i = 0; i < 8; i++) { 18 2 Tx = 1; 19 2 Delay12us(); 20 2 Tx = 0; 21 2 Delay12us(); 22 2 } 23 1 } 24 unsigned char Ut_Wave_Data() { 25 1 unsigned int time; 26 1 CH = CL = 0; 27 1 CMOD = 0x00; 28 1 29 1 EA = 0; 30 1 Ut_Wave_Init(); 31 1 EA = 1; 32 1 33 1 CR = 1; 34 1 while (Rx && !CF); 35 1 CR = 0; 36 1 if (!CF) { // us -> s 10^(-6) 37 2 // m -> cm 10^2 38 2 // 10^(-4) 39 2 // L = V*T/2=340*time/2=170*10^(-4)*time=0.017*time 40 2 time = CH << 8 | CL; 41 2 return (0.017 * time + 3); 42 2 } else { 43 2 CF = 0; 44 2 return 0; 45 2 } 46 1 } MODULE INFORMATION: STATIC OVERLAYABLE CODE SIZE = 94 ---- CONSTANT SIZE = ---- ---- XDATA SIZE = ---- ---- PDATA SIZE = ---- ---- DATA SIZE = ---- ---- C51 COMPILER V9.60.7.0 UL 03/10/2025 18:03:55 PAGE 2 IDATA SIZE = ---- ---- BIT SIZE = ---- ---- END OF MODULE INFORMATION. C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)