📄 main.src
字号:
; .\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 + -