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

📄 main.src

📁 温湿度变送器程序
💻 SRC
📖 第 1 页 / 共 2 页
字号:
; .\main.SRC generated from: main.c
; COMPILER INVOKED BY:
;        C:\Keil\C51\BIN\C51.EXE main.c ROM(SMALL) OPTIMIZE(0,SPEED) BROWSE ORDER DEBUG OBJECTEXTEND SRC(.\main.SRC)

$NOMOD51

NAME	MAIN

WDT_CONTR	DATA	0E1H
ISP_DATA	DATA	0E2H
ISP_ADDRH	DATA	0E3H
ISP_ADDRL	DATA	0E4H
ISP_CMD	DATA	0E5H
ISP_TRIG	DATA	0E6H
ISP_CONTR	DATA	0E7H
IDLE_CLK	DATA	0C7H
P0M0	DATA	093H
P0M1	DATA	094H
P1M0	DATA	091H
P1M1	DATA	092H
P2M0	DATA	095H
P2M1	DATA	096H
P3M0	DATA	0B1H
P3M1	DATA	0B2H
SPSTAT	DATA	084H
SPCTL	DATA	085H
SPDAT	DATA	086H
ADC_CONTR	DATA	0C5H
ADC_DATA	DATA	0C6H
ADC_LOW2	DATA	0BEH
CCON	DATA	0D8H
CMOD	DATA	0D9H
CCAPM0	DATA	0DAH
CCAPM1	DATA	0DBH
CCAPM2	DATA	0DCH
CCAPM3	DATA	0DDH
CCAPM4	DATA	0DEH
CCAPM5	DATA	0DFH
CL	DATA	0E9H
CCAP0L	DATA	0EAH
CCAP1L	DATA	0EBH
CCAP2L	DATA	0ECH
CCAP3L	DATA	0EDH
CCAP4L	DATA	0EEH
CCAP5L	DATA	0EFH
CH	DATA	0F9H
CCAP0H	DATA	0FAH
CCAP1H	DATA	0FBH
CCAP2H	DATA	0FCH
CCAP3H	DATA	0FDH
CCAP4H	DATA	0FEH
CCAP5H	DATA	0FFH
PCA_PWM0	DATA	0F2H
PCA_PWM1	DATA	0F3H
PCA_PWM2	DATA	0F4H
PCA_PWM3	DATA	0F5H
PCA_PWM4	DATA	0F6H
PCA_PWM5	DATA	0F7H
CF	BIT	0D8H.7
CR	BIT	0D8H.6
CCF5	BIT	0D8H.5
CCF4	BIT	0D8H.4
CCF3	BIT	0D8H.3
CCF2	BIT	0D8H.2
CCF1	BIT	0D8H.1
CCF0	BIT	0D8H.0
P0	DATA	080H
P1	DATA	090H
P2	DATA	0A0H
P3	DATA	0B0H
PSW	DATA	0D0H
ACC	DATA	0E0H
B	DATA	0F0H
SP	DATA	081H
DPL	DATA	082H
DPH	DATA	083H
PCON	DATA	087H
TCON	DATA	088H
TMOD	DATA	089H
TL0	DATA	08AH
TL1	DATA	08BH
TH0	DATA	08CH
TH1	DATA	08DH
IE	DATA	0A8H
IP	DATA	0B8H
SCON	DATA	098H
SBUF	DATA	099H
AUXR	DATA	08EH
SADDR	DATA	0A9H
IPH	DATA	0B7H
SADEN	DATA	0B9H
T2CON	DATA	0C8H
T2MOD	DATA	0C9H
RCAP2L	DATA	0CAH
RCAP2H	DATA	0CBH
TL2	DATA	0CCH
TH2	DATA	0CDH
CY	BIT	0D0H.7
AC	BIT	0D0H.6
F0	BIT	0D0H.5
RS1	BIT	0D0H.4
RS0	BIT	0D0H.3
OV	BIT	0D0H.2
P	BIT	0D0H.0
TF1	BIT	088H.7
TR1	BIT	088H.6
TF0	BIT	088H.5
TR0	BIT	088H.4
IE1	BIT	088H.3
IT1	BIT	088H.2
IE0	BIT	088H.1
IT0	BIT	088H.0
RD	BIT	0B0H.7
WR	BIT	0B0H.6
T1	BIT	0B0H.5
T0	BIT	0B0H.4
INT1	BIT	0B0H.3
INT0	BIT	0B0H.2
TXD	BIT	0B0H.1
RXD	BIT	0B0H.0
SM0	BIT	098H.7
FE	BIT	098H.7
SM1	BIT	098H.6
SM2	BIT	098H.5
REN	BIT	098H.4
TB8	BIT	098H.3
RB8	BIT	098H.2
TI	BIT	098H.1
RI	BIT	098H.0
T2EX	BIT	090H.1
T2	BIT	090H.0
TF2	BIT	0C8H.7
EXF2	BIT	0C8H.6
RCLK	BIT	0C8H.5
TCLK	BIT	0C8H.4
EXEN2	BIT	0C8H.3
TR2	BIT	0C8H.2
C_T2	BIT	0C8H.1
CP_RL2	BIT	0C8H.0
CEX3	BIT	0A0H.4
CEX2	BIT	0A0H.0
CEX1	BIT	0B0H.5
CEX0	BIT	0B0H.7
ECI	BIT	0B0H.4
EA	BIT	0A8H.7
EPCA_LVD	BIT	0A8H.6
EADC_SPI	BIT	0A8H.5
ES	BIT	0A8H.4
ET1	BIT	0A8H.3
EX1	BIT	0A8H.2
ET0	BIT	0A8H.1
EX0	BIT	0A8H.0
PPCA_LVD	BIT	0B8H.6
PADC_SPI	BIT	0B8H.5
PS	BIT	0B8H.4
PT1	BIT	0B8H.3
PX1	BIT	0B8H.2
PT0	BIT	0B8H.1
PX0	BIT	0B8H.0
SDA	BIT	090H.0
pickproof	BIT	090H.1
PULSE	BIT	090H.3
SHUTTER	BIT	090H.4
AIR2_PIN	BIT	090H.5
LED	BIT	090H.2
PWM1	BIT	0B0H.4
sclk	BIT	090H.7
sdat	BIT	090H.6
PWM2	BIT	0B0H.5
?PR?main?MAIN        SEGMENT CODE INBLOCK 
?PR?mach_t?MAIN      SEGMENT CODE INBLOCK 
?PR?mach_rh?MAIN     SEGMENT CODE INBLOCK 
?PR?pwm_Init?MAIN    SEGMENT CODE INBLOCK 
?PR?pwm_out?MAIN     SEGMENT CODE INBLOCK 
?PR?pwm_rh_out?MAIN  SEGMENT CODE INBLOCK 
?PR?PCA_Initiate?MAIN                    SEGMENT CODE INBLOCK 
?PR?pca_temr?MAIN    SEGMENT CODE INBLOCK 
?BI?MAIN             SEGMENT BIT 
?DT?MAIN             SEGMENT DATA 
	EXTRN	DATA (out_temp)
	EXTRN	DATA (out_rh)
	EXTRN	CODE (sht10_samp)
	EXTRN	CODE (?C_STARTUP)
	EXTRN	CODE (?C?IMUL)
	EXTRN	CODE (?C?SIDIV)
	PUBLIC	uart_rcv_flag
	PUBLIC	start_flag
	PUBLIC	rh_pwm_L
	PUBLIC	rh_pwm_H
	PUBLIC	rh_l_l
	PUBLIC	rh_l_h
	PUBLIC	rh_h_l
	PUBLIC	rh_h_h
	PUBLIC	rh_m
	PUBLIC	temp_m
	PUBLIC	temp_pwm_L
	PUBLIC	temp_pwm_H
	PUBLIC	temp_l_l
	PUBLIC	temp_l_h
	PUBLIC	temp_h_l
	PUBLIC	temp_h_h
	PUBLIC	Counter
	PUBLIC	time_1s_flag
	PUBLIC	read_sht_flag
	PUBLIC	pca_temr
	PUBLIC	PCA_Initiate
	PUBLIC	pwm_rh_out
	PUBLIC	pwm_out
	PUBLIC	pwm_Init
	PUBLIC	mach_rh
	PUBLIC	mach_t
	PUBLIC	main

	RSEG  ?BI?MAIN
  read_sht_flag:   DBIT   1
   time_1s_flag:   DBIT   1

	RSEG  ?DT?MAIN
        Counter:   DS   1
       temp_h_h:   DS   1
       temp_h_l:   DS   1
       temp_l_h:   DS   1
       temp_l_l:   DS   1
     temp_pwm_H:   DS   2
     temp_pwm_L:   DS   2
         temp_m:   DS   4
           rh_m:   DS   4
         rh_h_h:   DS   1
         rh_h_l:   DS   1
         rh_l_h:   DS   1
         rh_l_l:   DS   1
       rh_pwm_H:   DS   2
       rh_pwm_L:   DS   2
     start_flag:   DS   1
  uart_rcv_flag:   DS   1
; 
; #include "cdltwk.h"
; 
; 
; 
;  
; 
;  
;  bit read_sht_flag;             //读SHT10标志
;  bit time_1s_flag;
;             //=1, 温湿度传感器损坏标志
;  
;  
;  
; 
; 
; 
; 
;  void sht10_samp();
;  void rdsht10_state();
; 
; uchar Counter;
; uchar temp_h_h;  //温度pwm转换高电平高位字节
; uchar temp_h_l;  //温度pwm转换高电平的低位字节
; uchar temp_l_h;  //温度pwm转换低电平的高位字节
; uchar temp_l_l;  //温度pwm转换低电平的高低字节
; uint temp_pwm_H; //温度高电平字
; uint temp_pwm_L; //温度低电平字
; ulong temp_m;
; ulong rh_m;
; uchar rh_h_h;    //湿度pwm转换高电平高位字节
; uchar rh_h_l;    //湿度pwm转换高电平低位字节
; uchar rh_l_h;    //湿度pwm转换低电平高位字节
; uchar rh_l_l;    //湿度pwm转换低电平低位字节
; uint  rh_pwm_H;  //湿度高电平字
; uint  rh_pwm_L;  //湿度低电平字
; 
; uchar start_flag,uart_rcv_flag;
; 
; void pwm_Init();
; void pwm_out();
; void PCA_Initiate();
; void pca_temr();
; void mach_t();
; void mach_rh();
; void pwm_rh_out();
; void UART_out_temp(void);
; void UART_out_rh(void);
; void UART_out();
; //-----------------------------------------------------------------------------
; 
; /*void UART_INI(void)
; {
;  TMOD=0X21; //则T0设为16位定时器
;  ET0=1;   //开t0中断
;  //TR0=1; //开定时器0
;  P3M1=0x30; //设P3.4,P3.5推挽输出
; 
;  TH0 = 0xDC;
;  TL0 = 0xD8;
;  temp_h_h = 0xDC;
;  temp_h_l = 0xD8;
;  temp_l_h = 0xDC;
;  temp_l_l = 0xD8;
; 
;  #pragma asm
;    CLR P3.4
;    CLR P3.5
;  #pragma endasm
; 
; 
;   SCON   = 0x50;
;   TMOD   = 0x21;
;   TH1    = 0xFE;
;   TL1    = 0xFE;
;   PCON|=0x80;
;   TR1    = 1;
;   //PS = 1;
;   //ES =1 ;
;   TR0=1;
;   EA =1;   //开t1,t0中断
; }*/
; 
; 
;  main()

	RSEG  ?PR?main?MAIN
main:
	USING	0
			; SOURCE LINE # 85
; {
			; SOURCE LINE # 86
; // uint k;
;  //uchar temp[4];
;  pwm_Init();
			; SOURCE LINE # 89
	ACALL	pwm_Init
;  //UART_INI();
;  
;  PCA_Initiate();
			; SOURCE LINE # 92
	ACALL	PCA_Initiate
?C0001:
;  //rdsht10_state();
;  while(1)
			; SOURCE LINE # 94
;  {  //uart_send_byte(0X31);
			; SOURCE LINE # 95
; 
;     sht10_samp();
			; SOURCE LINE # 97
	ACALL	sht10_samp
;     //mach_t();
;     //mach_rh();
; 	//UART_out();
; 
; //for(k=0;k<40000;k++);
; //uart_send_byte(out_temp/256);
; //uart_send_byte(out_temp);
;  //for(k=0;k<40000;k++);
; //	temp[0]=out_temp/1000;
;  //   temp[1]=out_temp/100%10;
;  //   temp[2]=out_temp/10%10;
;  //   temp[3]=out_temp%10;
; //	uart_send1(temp,4);
;  //for(k=0;k<40000;k++);
; 
;  }
			; SOURCE LINE # 113
	SJMP 	?C0001
?C0002:
; }
			; SOURCE LINE # 114
?C0003:
	RET  	
; END OF main

; 
; 
; void mach_t(void)

	RSEG  ?PR?mach_t?MAIN
mach_t:
	USING	0
			; SOURCE LINE # 117
; /******************************************************************************
;  功能  : 计算温度转换成对应的脉宽
;  入口  : out_temp
;  出口  : temp_pwm_H,temp_pwm_L
;  ******************************************************************************/
; {
			; SOURCE LINE # 123
;  //temp_m=(out_temp+200)*32/5*2+2880;     //计算温度电流ma数有2位小数  电阻是200
;  //temp_m=(out_temp+200)*16/5*3+2160;   //计算电流脉宽100赫兹记数值    电阻是200
;  temp_m=(out_temp+179)*24/5+1080;       //电阻是100     temp_m=(out_temp+200)*24/5+1080;
			; SOURCE LINE # 126
	MOV  	A,out_temp+01H
	ADD  	A,#0B3H
	MOV  	R7,A
	MOV  	A,out_temp
	ADDC 	A,#00H
	MOV  	R6,A
	MOV  	R4,#00H
	MOV  	R5,#018H
	ACALL	?C?IMUL
	MOV  	R4,#00H
	MOV  	R5,#05H
	ACALL	?C?SIDIV
	MOV  	A,R7
	ADD  	A,#038H
	MOV  	R7,A
	MOV  	A,R6
	ADDC 	A,#04H
	MOV  	R6,A
	MOV  	A,R6
	RLC  	A
	SUBB 	A,ACC
	MOV  	R5,A
	MOV  	R4,A
	MOV  	temp_m+03H,R7
	MOV  	temp_m+02H,R6
	MOV  	temp_m+01H,R5
	MOV  	temp_m,R4
;  temp_pwm_H=65536-temp_m;        //高电平定时器记数值
			; SOURCE LINE # 127
	MOV  	R6,temp_m+02H
	MOV  	R7,temp_m+03H
	CLR  	C
	CLR  	A
	SUBB 	A,R7
	MOV  	temp_pwm_H+01H,A
	CLR  	A
	SUBB 	A,R6
	MOV  	temp_pwm_H,A
;  //temp_pwm_L=65536-(18000-temp_m);//低电平定时器记数值
;  temp_pwm_L=65536-(13500-temp_m);//低电平定时器记数值    
			; SOURCE LINE # 129
	MOV  	R6,temp_m+02H
	MOV  	R7,temp_m+03H
	CLR  	C
	MOV  	A,#0BCH
	SUBB 	A,R7
	MOV  	R7,A
	MOV  	A,#034H
	SUBB 	A,R6
	MOV  	R6,A
	CLR  	C
	CLR  	A
	SUBB 	A,R7
	MOV  	temp_pwm_L+01H,A
	CLR  	A
	SUBB 	A,R6
	MOV  	temp_pwm_L,A
; #pragma asm 
;     MOV R0,#temp_pwm_H
	  MOV R0,#temp_pwm_H
;     MOV A,@R0
	  MOV A,@R0
;     MOV temp_h_h,A
	  MOV temp_h_h,A
;     INC R0
	  INC R0
;     MOV A,@R0
	  MOV A,@R0
;     MOV temp_h_l,A
	  MOV temp_h_l,A
;     MOV R0,#temp_pwm_L
	  MOV R0,#temp_pwm_L

⌨️ 快捷键说明

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