📄 main.lst
字号:
C51 COMPILER V7.50 MAIN 02/20/2009 14:03:12 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c ROM(SMALL) OPTIMIZE(0,SPEED) BROWSE ORDER DEBUG OBJECTEXTEND SRC(.\m
-ain.SRC)
line level source
1
2 #include "cdltwk.h"
3
4
5
6
7
8
9 bit read_sht_flag; //读SHT10标志
10 bit time_1s_flag;
11 //=1, 温湿度传感器损坏标志
12
13
14
15
16
17
18
19 void sht10_samp();
20 void rdsht10_state();
21
22 uchar Counter;
23 uchar temp_h_h; //温度pwm转换高电平高位字节
24 uchar temp_h_l; //温度pwm转换高电平的低位字节
25 uchar temp_l_h; //温度pwm转换低电平的高位字节
26 uchar temp_l_l; //温度pwm转换低电平的高低字节
27 uint temp_pwm_H; //温度高电平字
28 uint temp_pwm_L; //温度低电平字
29 ulong temp_m;
30 ulong rh_m;
31 uchar rh_h_h; //湿度pwm转换高电平高位字节
32 uchar rh_h_l; //湿度pwm转换高电平低位字节
33 uchar rh_l_h; //湿度pwm转换低电平高位字节
34 uchar rh_l_l; //湿度pwm转换低电平低位字节
35 uint rh_pwm_H; //湿度高电平字
36 uint rh_pwm_L; //湿度低电平字
37
38 uchar start_flag,uart_rcv_flag;
39
40 void pwm_Init();
41 void pwm_out();
42 void PCA_Initiate();
43 void pca_temr();
44 void mach_t();
45 void mach_rh();
46 void pwm_rh_out();
47 void UART_out_temp(void);
48 void UART_out_rh(void);
49 void UART_out();
50 //-----------------------------------------------------------------------------
51
52 /*void UART_INI(void)
53 {
54 TMOD=0X21; //则T0设为16位定时器
C51 COMPILER V7.50 MAIN 02/20/2009 14:03:12 PAGE 2
55 ET0=1; //开t0中断
56 //TR0=1; //开定时器0
57 P3M1=0x30; //设P3.4,P3.5推挽输出
58
59 TH0 = 0xDC;
60 TL0 = 0xD8;
61 temp_h_h = 0xDC;
62 temp_h_l = 0xD8;
63 temp_l_h = 0xDC;
64 temp_l_l = 0xD8;
65
66 #pragma asm
67 CLR P3.4
68 CLR P3.5
69 #pragma endasm
70
71
72 SCON = 0x50;
73 TMOD = 0x21;
74 TH1 = 0xFE;
75 TL1 = 0xFE;
76 PCON|=0x80;
77 TR1 = 1;
78 //PS = 1;
79 //ES =1 ;
80 TR0=1;
81 EA =1; //开t1,t0中断
82 }*/
83
84
85 main()
86 {
87 1 // uint k;
88 1 //uchar temp[4];
89 1 pwm_Init();
90 1 //UART_INI();
91 1
92 1 PCA_Initiate();
93 1 //rdsht10_state();
94 1 while(1)
95 1 { //uart_send_byte(0X31);
96 2
97 2 sht10_samp();
98 2 //mach_t();
99 2 //mach_rh();
100 2 //UART_out();
101 2
102 2 //for(k=0;k<40000;k++);
103 2 //uart_send_byte(out_temp/256);
104 2 //uart_send_byte(out_temp);
105 2 //for(k=0;k<40000;k++);
106 2 // temp[0]=out_temp/1000;
107 2 // temp[1]=out_temp/100%10;
108 2 // temp[2]=out_temp/10%10;
109 2 // temp[3]=out_temp%10;
110 2 // uart_send1(temp,4);
111 2 //for(k=0;k<40000;k++);
112 2
113 2 }
114 1 }
115
116
C51 COMPILER V7.50 MAIN 02/20/2009 14:03:12 PAGE 3
117 void mach_t(void)
118 /******************************************************************************
119 功能 : 计算温度转换成对应的脉宽
120 入口 : out_temp
121 出口 : temp_pwm_H,temp_pwm_L
122 ******************************************************************************/
123 {
124 1 //temp_m=(out_temp+200)*32/5*2+2880; //计算温度电流ma数有2位小数 电阻是200
125 1 //temp_m=(out_temp+200)*16/5*3+2160; //计算电流脉宽100赫兹记数值 电阻是200
126 1 temp_m=(out_temp+179)*24/5+1080; //电阻是100 temp_m=(out_temp+200)*24/5+1080;
127 1 temp_pwm_H=65536-temp_m; //高电平定时器记数值
128 1 //temp_pwm_L=65536-(18000-temp_m);//低电平定时器记数值
129 1 temp_pwm_L=65536-(13500-temp_m);//低电平定时器记数值
130 1 #pragma asm
131 1 MOV R0,#temp_pwm_H
132 1 MOV A,@R0
133 1 MOV temp_h_h,A
134 1 INC R0
135 1 MOV A,@R0
136 1 MOV temp_h_l,A
137 1 MOV R0,#temp_pwm_L
138 1 MOV A,@R0
139 1 MOV temp_l_h,A
140 1 INC R0
141 1 MOV A,@R0
142 1 MOV temp_l_l,A
143 1
144 1 #pragma endasm
145 1 }
146
147
148 void mach_rh(void)
149 /******************************************************************************
150 功能 : 计算湿度转换成对应的脉宽
151 入口 : wb_rh
152 出口 :
153 ******************************************************************************/
154 {
155 1 //temp_m=out_rh*32/25*9+2880; //电阻是200
156 1 //temp_m=out_rh*27/25*8+2160; //电阻是200
157 1 temp_m=(out_rh+50)*27/5*4/5+1080; //电阻是100 +30相当于实际湿度加3
158 1 rh_pwm_H=65536-temp_m;
159 1 //rh_pwm_L=65535-(18000-temp_m);
160 1 rh_pwm_L=65535-(13500-temp_m);
161 1
162 1 #pragma asm
163 1 MOV R0,#rh_pwm_H;
164 1 MOV A,@R0
165 1 MOV rh_h_h,A
166 1 INC R0
167 1 MOV A,@R0
168 1 MOV rh_h_l,A
169 1 MOV R0,#rh_pwm_L
170 1 MOV A,@R0
171 1 MOV rh_l_h,A
172 1 INC R0
173 1 MOV A,@R0
174 1 MOV rh_l_l,A
175 1 #pragma endasm
176 1
177 1 }
178
C51 COMPILER V7.50 MAIN 02/20/2009 14:03:12 PAGE 4
179 void pwm_Init(void)
180 /******************************************************************************
181 Function : void Initpwm()
182 Parameters : (void)
183 Description: Initializes Sound Studio
184 ******************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -