www.pudn.com > smd380_program.rar > smd380.LST
C51 COMPILER V7.50 SMD380 03/07/2008 14:30:01 PAGE 1 C51 COMPILER V7.50, COMPILATION OF MODULE SMD380 OBJECT MODULE PLACED IN smd380.OBJ COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE smd380.c BROWSE DEBUG OBJECTEXTEND line level source 1 2 3 4 #include5 #include 6 #include 7 8 9 10 typedef unsigned char Byte; 11 typedef bit bool; 12 typedef signed int sint; 13 typedef unsigned int Word; 14 typedef unsigned int uint; 15 typedef signed long slong; 16 17 18 19 #define uchar unsigned char 20 #define uint unsigned int 21 22 #define Nop_() _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); 23 24 25 26 27 28 29 30 31 //SMD380 32 33 sbit CSB_380 = P2^5; 34 sbit SCK_380 = P0^4; 35 sbit SDO_380 = P3^0; 36 sbit SDI_380 = P3^1; 37 38 39 40 41 42 typedef union 43 { unsigned int i; 44 float f; 45 } value; 46 47 48 //---------------------------------------------------------------------------------- 49 // modul-var 50 //---------------------------------------------------------------------------------- 51 enum {TEMP,HUMI}; 52 53 value humi_val,temp_val; 54 value humi_val_buf,temp_val_buf; 55 C51 COMPILER V7.50 SMD380 03/07/2008 14:30:01 PAGE 2 56 57 const float code pi=3.1415926; 58 float dew_point; 59 60 61 #define noACK 0 62 #define ACK 1 63 //adr command r/w 64 #define STATUS_REG_W 0x06 //000 0011 0 65 #define STATUS_REG_R 0x07 //000 0011 1 66 #define MEASURE_TEMP 0x03 //000 0001 1 67 #define MEASURE_HUMI 0x05 //000 0010 1 68 #define RESET 0x1e //000 1111 0 69 70 71 72 idata float angle; 73 74 idata unsigned int heading,heading_buff; 75 idata unsigned int OffsetAngle; 76 idata unsigned int OffsetAngleBuf; 77 idata unsigned char ModuleStatus=0; 78 idata unsigned char cnt1=0,cnt2; 79 idata unsigned char CharTmp1; 80 81 idata unsigned char smd380_add,smd380_data,smd380_buff[18]; 82 83 84 85 86 87 void Delay10us(Word n); 88 89 90 91 92 93 94 95 96 /*-----------------------延时-----------------------*/ 97 98 void Delay10us(Word n) //delay n 10us 99 { 100 1 Word t,cnt; 101 1 for(t=0;t 0x7f) 207 2 { 208 3 smd380_buff[3]=0x100-smd380_buff[3]; 209 3 acce_bit=0; 210 3 } 211 2 x_value=smd380_buff[3]*8; 212 2 x_value=x_value/1024.000; 213 2 angle_x=asin(x_value)*180.0/pi; //angle_x为角度值,acce_bit=1角度为正,acce_bit=0角度为负 214 2 215 2 216 2 for(z=0;z<2;z++) 217 2 { 218 3 Delay10us(2); 219 3 } 220 2 221 2 smd380_data=0; 222 2 i=0; 223 2 } 224 1 225 1 226 1 227 1 } MODULE INFORMATION: STATIC OVERLAYABLE CODE SIZE = 346 ---- CONSTANT SIZE = 4 ---- XDATA SIZE = ---- ---- PDATA SIZE = ---- ---- DATA SIZE = 20 15 IDATA SIZE = 36 3 BIT SIZE = ---- 1 END OF MODULE INFORMATION. C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)