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

📄 temperature.lst

📁 msc1210单片机内部温度传感器测试程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
RC51 COMPILER V03.03.28,  TEMPERATURE             02/25/03  16:16:36  PAGE  1

QCW(0x00002F32)

WIN32 RC51 COMPILER V03.03.28, COMPILATION OF MODULE TEMPERATURE
OBJECT MODULE PLACED IN c:\ride\rai-code\temperature\temperature.obj
COMPILER INVOKED BY: RC51.EXE C:\RIDE\RAI-CODE\TEMPERATURE\TEMPERATURE.C OBJECT(
            -C:\RIDE\RAI-CODE\TEMPERATURE\TEMPERATURE.OBJ) PIN(C:\RIDE\INC;C:\RI
            -DE\INC\51) PIN(C:\RIDE\INC\51\TI\) NOAM PR(C:\RIDE\RAI-CODE\TEMPERA
            -TURE\TEMPERATURE.LST) CD SB OE(1) SM FP(NOFLOAT) PW(80) NOIS UNSIGN
            -EDCHAR ET(CHAR) 

stmt level    source
   1          #include "REG1210.H"
   2          #include <stdio.h>
   3          #include <stdlib.h>
   4          #include <math.h>
   5          #define LSB 			(1.25/8388608/375e-6)
   6          #define WINDOWSIZE	16
   7          extern void put_string(char code *string);
   8          data char ROM_temp0 _at_ 0x000a;  // For put_string function
   9          data char ROM_temp1 _at_ 0x000b;
  10          signed long summer(void);
  11          extern void putspace4(void);
  12          extern void autobaud(void);
  13          extern void tx_byte(char);
  14          sbit P14 = P1^4;
  15          sbit P15 = P1^5;
  16          // recursive digit display routine
  17          void prt_digit(unsigned long int i, signed char d) reentrant
  18          {	unsigned long int j; char c;
  19   1      	j=i/10; c=i-j*10; d--;
  20   1      	if (j!=0 || !(d &0x80)) prt_digit(j,d);
  21   1      	if (d==0) tx_byte('.');
  22   1      	tx_byte(c+48);
  23   1      }
  24          // Display long integer number with sign and decimal
  25          void print(signed long int i, unsigned char d) 
  26          {
  27   1      	if (i<0) { tx_byte('-'); i*=-1;}
  28   1      	prt_digit(i,d); putspace4();		
  29   1      }
  30          void main(void)
  31          {
  32   1      	signed long int data sum;
  33   1      	float data window[16]={0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0};

WARNING C215 IN LINE 33 OF temperature.c : 'float' found with NOFLOAT option, I
            -EEE std assumed
  34   1      	float data adres=0, temperature;
  35   1      	unsigned char j,k,i, fill_ptr=1, mod_ptr=0; 
  36   1      //	char WINDOWSIZE=32;
  37   1      //   T2CON  = 0x34;   // T2 as baudrate generator 
  38   1      //   RCAP2  = 65535;  // 57600 Baud @ 1.8432MHz
  39   1      //   SCON   = 0x52;   // Async mode 1, 8-bit UART, enable rcvr, TI
            -=1, RI=0
  40   1         autobaud();
  41   1      	put_string("\x1b[1;33;46m\x1b[2J\x1b[12CTemperature Sensor\n");
  42   1      	PDCON &= 0x0f7;			//turn on adc
  43   1      	ACLK = 1;					// ACLK = 1.8432MHz/(1+1)= 0.9216MHz
  44   1      	DECIMATION = 0x7ff;	
  45   1      	ODAC=0;
  46   1      	ADCON0 = 0x20;			   // Vref on 1.25V, Buff off, BOD off, PGA 1
  47   1      	ADMUX=0xff;
  48   1      	ADCON1 = 0x01;				// bipolar, auto, self calibration, offset, gai
            -n
  49   1      	SSCON=0;						// Clear SUMR0~3
  50   1      	SSCON=228;					// Set SSCON for ADC 32 summations and div by 32
  51   1      	sum=summer();
  52   1      	SSCON=0;						// Clear SUMR0~3
  53   1      	SSCON=228;					// Set SSCON for ADC 32 summations and div by 32
  54   1      	while(1){
  55   2      		P15=!P15;
  56   2      		sum=summer();
  57   2      		P15=!P15;
  58   2      		SSCON=0;					// Clear SUMR0~3
  59   2      		SSCON=228;				// Set SSCON for ADC 32 summations and div by 32
  60   2      		adres=adres-window[mod_ptr];		// moving window of 10 results
  61   2      		window[mod_ptr]=(float)sum*LSB-281.667; 
  62   2      		adres=adres+ window[mod_ptr];
  63   2      		temperature=adres/(float)fill_ptr;
  64   2      		if (fill_ptr==WINDOWSIZE) fill_ptr=WINDOWSIZE; else fill_ptr++;

            -  65   2      		if (mod_ptr==(WINDOWSIZE-1)) mod_ptr=0; else mod_pt
            -r++; 
  66   2      		print((signed long int)(temperature*1000),3); 
  67   2      		put_string("degC ");
  68   2      		put_string("\n");
  69   2      	}
  70   1      }

WARNING C092 IN LINE 35 OF temperature.c : 'j' is declared but not used

WARNING C092 IN LINE 35 OF temperature.c : 'k' is declared but not used

WARNING C092 IN LINE 35 OF temperature.c : 'i' is declared but not used
  71          
RC51 COMPILER V03.03.28,  TEMPERATURE             02/25/03  16:16:36  PAGE  2

ASSEMBLY LISTING OF GENERATED OBJECT CODE

            ; FUNCTION ?prt_digit (BEGIN)
              ; Register-parameter i (R4_R7) is stacked
                                           ; SOURCE LINE # 17 
0000 7405           MOV    A,#005H
0002 2581           ADD    A,SP
0004 F581           MOV    SP,A
0006 120000  R      LCALL  MV4_RG2SK?C
                                           ; SOURCE LINE # 19 
0009 74FD           MOV    A,#0FDH
000B 2581           ADD    A,SP
000D F9             MOV    R1,A
000E E7             MOV    A,@R1                 	; @ i 
000F C0E0           PUSH   ACC
0011 09             INC    R1
0012 E7             MOV    A,@R1                 	; @ i 
0013 C0E0           PUSH   ACC
0015 09             INC    R1
0016 E7             MOV    A,@R1                 	; @ i 
0017 C0E0           PUSH   ACC
0019 09             INC    R1
001A E7             MOV    A,@R1                 	; @ i 
001B C0E0           PUSH   ACC
001D E4             CLR    A
001E FE             MOV    R6,A
001F FC             MOV    R4,A
0020 FD             MOV    R5,A
0021 7F0A           MOV    R7,#00AH
0023 120000  R      LCALL  ?C_ULDIV_SP
0026 74FB           MOV    A,#0FBH
0028 2581           ADD    A,SP
002A F8             MOV    R0,A
002B 18             DEC    R0
002C 18             DEC    R0
002D 18             DEC    R0
002E 120000  R      LCALL  MV4_RG2I0?C
0031 A981           MOV    R1,SP
0033 74FB           MOV    A,#0FBH
0035 2581           ADD    A,SP
0037 F8             MOV    R0,A
0038 E6             MOV    A,@R0                 	; @ j 
0039 75F00A         MOV    B,#00AH
003C A4             MUL    AB
003D FA             MOV    R2,A
003E E7             MOV    A,@R1                 	; @ i 
003F C3             CLR    C
0040 9A             SUBB   A,R2
0041 FA             MOV    R2,A
0042 74FC           MOV    A,#0FCH
0044 2581           ADD    A,SP
0046 F9             MOV    R1,A
0047 A702           MOV    @R1,AR2               	; @ c 
0049 74F5           MOV    A,#0F5H
004B 2581           ADD    A,SP
004D F9             MOV    R1,A
004E 17             DEC    @R1                   	; @ d 
                                           ; SOURCE LINE # 20 
004F 74F8           MOV    A,#0F8H
0051 2581           ADD    A,SP
0053 F9             MOV    R1,A
0054 E7             MOV    A,@R1                 	; @ j 
0055 09             INC    R1
0056 47             ORL    A,@R1                 	; @ j 
0057 09             INC    R1
0058 47             ORL    A,@R1                 	; @ j 
0059 09             INC    R1
005A 47             ORL    A,@R1                 	; @ j 
005B 700C           JNZ    ?LAB2
005D 74F5           MOV    A,#0F5H
005F 2581           ADD    A,SP
0061 F9             MOV    R1,A
0062 E7             MOV    A,@R1                 	; @ d 
0063 FB             MOV    R3,A
0064 33             RLC    A
0065 EB             MOV    A,R3
0066 20E715         JB     ACC.7,?NXT2
0069         ?LAB2:
0069 74F5           MOV    A,#0F5H
006B 2581           ADD    A,SP
006D F9             MOV    R1,A
006E E7             MOV    A,@R1                 	; @ d 
006F C0E0           PUSH   ACC
0071 74F7           MOV    A,#0F7H
0073 2581           ADD    A,SP
0075 F9             MOV    R1,A
0076 120000  R      LCALL  MV4_I12RG?C
0079 120000  R      LCALL  ?prt_digit
007C 1581           DEC    SP
007E         ?NXT2:
                                           ; SOURCE LINE # 21 
007E 74F5           MOV    A,#0F5H
0080 2581           ADD    A,SP
0082 F9             MOV    R1,A
0083 E7             MOV    A,@R1                 	; @ d 
0084 7005           JNZ    ?NXT3
0086 7F2E           MOV    R7,#02EH
0088 120000  R      LCALL  _tx_byte
008B         ?NXT3:
                                           ; SOURCE LINE # 22 
008B 74FC           MOV    A,#0FCH
008D 2581           ADD    A,SP
008F F9             MOV    R1,A
0090 E7             MOV    A,@R1                 	; @ c 
0091 2430           ADD    A,#030H
0093 FF             MOV    R7,A
0094 120000  R      LCALL  _tx_byte
0097 74F7           MOV    A,#0F7H
0099 2581           ADD    A,SP
009B F581           MOV    SP,A
009D 22             RET    

            ; FUNCTION ?prt_digit (END)

            ; FUNCTION _print (BEGIN)
                                           ; SOURCE LINE # 25 
0000 8C00    R      MOV    i,R4
0002 8D00    R      MOV    i+01H,R5
0004 8E00    R      MOV    i+02H,R6
0006 8F00    R      MOV    i+03H,R7
                                           ; SOURCE LINE # 27 
0008 C000    R      PUSH   i
000A C000    R      PUSH   i+01H
000C C000    R      PUSH   i+02H
000E C000    R      PUSH   i+03H
0010 E4             CLR    A
0011 FF             MOV    R7,A
0012 FE             MOV    R6,A
0013 FC             MOV    R4,A
0014 FD             MOV    R5,A
0015 120000  R      LCALL  ?C_CMPLS
0018 BFFF1E         CJNE   R7,#0FFH,?NXT5
001B 7F2D           MOV    R7,#02DH
001D 120000  R      LCALL  _tx_byte
0020 C000    R      PUSH   i
0022 C000    R      PUSH   i+01H
0024 C000    R      PUSH   i+02H
0026 C000    R      PUSH   i+03H
0028 74FF           MOV    A,#0FFH
002A FF             MOV    R7,A
002B FE             MOV    R6,A
002C FC             MOV    R4,A
002D FD             MOV    R5,A
002E 120000  R      LCALL  ?C_LMUL
0031 8C00    R      MOV    i,R4
0033 8D00    R      MOV    i+01H,R5
0035 8E00    R      MOV    i+02H,R6
0037 8F00    R      MOV    i+03H,R7
0039         ?NXT5:
                                           ; SOURCE LINE # 28 
0039 C000    R      PUSH   d
003B AC00    R      MOV    R4,i
003D AD00    R      MOV    R5,i+01H
003F AE00    R      MOV    R6,i+02H
0041 AF00    R      MOV    R7,i+03H
0043 120000  R      LCALL  ?prt_digit
0046 1581           DEC    SP

⌨️ 快捷键说明

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