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

📄 温湿度.lis

📁 avr基础程序大全
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 02D4 10C0              xjmp L58
 02D6           L72:
 02D6                   .dbline 141
 02D6           ;               //判断数据位是0还是1     
 02D6           ;                  
 02D6           ;               // 如果高电平高过预定0高电平值则数据位为 1 
 02D6           ;                
 02D6           ;                  U8comdata<<=1;
 02D6 20900400          lds R2,_U8comdata
 02DA 220C              lsl R2
 02DC 20920400          sts _U8comdata,R2
 02E0                   .dbline 142
 02E0           ;                  U8comdata|=U8temp;        //0
 02E0 20900F00          lds R2,_U8temp
 02E4 30900400          lds R3,_U8comdata
 02E8 3228              or R3,R2
 02EA 30920400          sts _U8comdata,R3
 02EE                   .dbline 143
 02EE           ;            }//rof
 02EE           L57:
 02EE                   .dbline 121
 02EE 4395              inc R20
 02F0           L59:
 02F0                   .dbline 121
 02F0 4830              cpi R20,8
 02F2 08F4              brsh X22
 02F4 BECF              xjmp L56
 02F6           X22:
 02F6           X21:
 02F6           L58:
 02F6                   .dbline -2
 02F6           L55:
 02F6                   .dbline 0 ; func end
 02F6 4991              ld R20,y+
 02F8 0895              ret
 02FA                   .dbsym r i 20 c
 02FA                   .dbend
 02FA                   .dbfunc e RH _RH fV
                        .even
 02FA           _RH::
 02FA                   .dbline -1
 02FA                   .dbline 161
 02FA           ;          
 02FA           ;       }
 02FA           ; 
 02FA           ;       //--------------------------------
 02FA           ;       //-----湿度读取子程序 ------------
 02FA           ;       //--------------------------------
 02FA           ;       //----以下变量均为全局变量--------
 02FA           ;       //----温度高8位== U8T_data_H------
 02FA           ;       //----温度低8位== U8T_data_L------
 02FA           ;       //----湿度高8位== U8RH_data_H-----
 02FA           ;       //----湿度低8位== U8RH_data_L-----
 02FA           ;       //----校验 8位 == U8checkdata-----
 02FA           ;       //----调用相关子程序如下----------
 02FA           ;       //---- Delay();, Delay_10us();,COM(); 
 02FA           ;       //--------------------------------
 02FA           ; 
 02FA           ;       void RH(void)
 02FA           ;       {
 02FA                   .dbline 164
 02FA           ;        
 02FA           ;         //主机拉低18ms 
 02FA           ;        COM_OUT;
 02FA A49A              sbi 0x14,4
 02FC                   .dbline 165
 02FC           ;        COM_CLR;
 02FC AC98              cbi 0x15,4
 02FE                   .dbline 166
 02FE           ;          DelaymS(1);
 02FE 01E0              ldi R16,1
 0300 10E0              ldi R17,0
 0302 58DF              xcall _DelaymS
 0304                   .dbline 167
 0304           ;          COM_IN;
 0304 A498              cbi 0x14,4
 0306                   .dbline 168
 0306           ;          COM_SET;
 0306 AC9A              sbi 0x15,4
 0308                   .dbline 171
 0308           ;         
 0308           ;        //总线由上拉电阻拉高 主机延时20us
 0308           ;          Delay_10us();
 0308 6ADF              xcall _Delay_10us
 030A                   .dbline 172
 030A           ;          Delay_10us();
 030A 69DF              xcall _Delay_10us
 030C                   .dbline 173
 030C           ;          Delay_10us();
 030C 68DF              xcall _Delay_10us
 030E                   .dbline 174
 030E           ;          Delay_10us();
 030E 67DF              xcall _Delay_10us
 0310                   .dbline 180
 0310           ;        //主机设为输入 判断从机响应信号 
 0310           ;        //P2_0=1;
 0310           ;        
 0310           ;        //判断从机是否有低电平响应信号 如不响应则跳出,响应则向下运行    
 0310           ;         // if(!P2_0)           //T !   
 0310           ;          if(COM_R)U8FLAG=1;
 0310 9C9B              sbis 0x13,4
 0312 5DC0              rjmp L78
 0314           X23:
 0314                   .dbline 180
 0314 81E0              ldi R24,1
 0316 80931200          sts _U8FLAG,R24
 031A 59C0              xjmp L78
 031C           L77:
 031C                   .dbline 182
 031C           ;          while(!(COM_R))               
 031C           ;          {
 031C                   .dbline 183
 031C           ;          U8FLAG=2;
 031C 82E0              ldi R24,2
 031E 80931200          sts _U8FLAG,R24
 0322           L80:
 0322                   .dbline 186
 0322           ;        //判断从机是否发出 80us 的低电平响应信号是否结束        
 0322           ;          //while((!P2_0)&&U8FLAG++);
 0322           ;          while((!(COM_R))&&U8FLAG++);
 0322           L81:
 0322                   .dbline 186
 0322 9C99              sbic 0x13,4
 0324 09C0              rjmp L83
 0326           X24:
 0326 20901200          lds R2,_U8FLAG
 032A 3324              clr R3
 032C 822D              mov R24,R2
 032E 8F5F              subi R24,255    ; addi 1
 0330 80931200          sts _U8FLAG,R24
 0334 2220              tst R2
 0336 A9F7              brne L80
 0338           X25:
 0338           L83:
 0338                   .dbline 187
 0338           ;          if(U8FLAG==1)break;
 0338 80911200          lds R24,_U8FLAG
 033C 8130              cpi R24,1
 033E 09F4              brne L84
 0340           X26:
 0340                   .dbline 187
 0340 48C0              xjmp L79
 0342           L84:
 0342                   .dbline 188
 0342           ;          U8FLAG=2;
 0342 82E0              ldi R24,2
 0344 80931200          sts _U8FLAG,R24
 0348           L86:
 0348                   .dbline 191
 0348           ;        //判断从机是否发出 80us 的高电平,如发出则进入数据接收状态
 0348           ;        //while((P2_0)&&U8FLAG++);
 0348           ;          while((COM_R)&&U8FLAG++);
 0348           L87:
 0348                   .dbline 191
 0348 9C9B              sbis 0x13,4
 034A 09C0              rjmp L89
 034C           X27:
 034C 20901200          lds R2,_U8FLAG
 0350 3324              clr R3
 0352 822D              mov R24,R2
 0354 8F5F              subi R24,255    ; addi 1
 0356 80931200          sts _U8FLAG,R24
 035A 2220              tst R2
 035C A9F7              brne L86
 035E           X28:
 035E           L89:
 035E                   .dbline 192
 035E           ;          if(U8FLAG==1)break;
 035E 80911200          lds R24,_U8FLAG
 0362 8130              cpi R24,1
 0364 09F4              brne L90
 0366           X29:
 0366                   .dbline 192
 0366 35C0              xjmp L79
 0368           L90:
 0368                   .dbline 194
 0368           ;        //数据接收状态          
 0368           ;          COM();
 0368 81DF              xcall _COM
 036A                   .dbline 195
 036A           ;          if(U8FLAG==1)break;
 036A 80911200          lds R24,_U8FLAG
 036E 8130              cpi R24,1
 0370 09F4              brne L92
 0372           X30:
 0372                   .dbline 195
 0372 2FC0              xjmp L79
 0374           L92:
 0374                   .dbline 196
 0374           ;          U8T_data_H_temp=U8comdata;
 0374 20900400          lds R2,_U8comdata
 0378 20920900          sts _U8T_data_H_temp,R2
 037C                   .dbline 197
 037C           ;          COM();
 037C 77DF              xcall _COM
 037E                   .dbline 198
 037E           ;          if(U8FLAG==1)break;
 037E 80911200          lds R24,_U8FLAG
 0382 8130              cpi R24,1
 0384 09F4              brne L94
 0386           X31:
 0386                   .dbline 198
 0386 25C0              xjmp L79
 0388           L94:
 0388                   .dbline 199
 0388           ;          U8T_data_L_temp=U8comdata; 
 0388 20900400          lds R2,_U8comdata
 038C 20920800          sts _U8T_data_L_temp,R2
 0390                   .dbline 200
 0390           ;          COM();
 0390 6DDF              xcall _COM
 0392                   .dbline 201
 0392           ;          if(U8FLAG==1)break;
 0392 80911200          lds R24,_U8FLAG
 0396 8130              cpi R24,1
 0398 09F4              brne L96
 039A           X32:
 039A                   .dbline 201
 039A 1BC0              xjmp L79
 039C           L96:
 039C                   .dbline 202
 039C           ;          U8RH_data_H_temp=U8comdata;
 039C 20900400          lds R2,_U8comdata
 03A0 20920700          sts _U8RH_data_H_temp,R2
 03A4                   .dbline 203
 03A4           ;          COM();
 03A4 63DF              xcall _COM
 03A6                   .dbline 204
 03A6           ;          if(U8FLAG==1)break;
 03A6 80911200          lds R24,_U8FLAG
 03AA 8130              cpi R24,1
 03AC 09F4              brne L98
 03AE           X33:
 03AE                   .dbline 204
 03AE 11C0              xjmp L79
 03B0           L98:
 03B0                   .dbline 205
 03B0           ;          U8RH_data_L_temp=U8comdata;
 03B0 20900400          lds R2,_U8comdata
 03B4 20920600          sts _U8RH_data_L_temp,R2
 03B8                   .dbline 206
 03B8           ;          COM();
 03B8 59DF              xcall _COM
 03BA                   .dbline 207
 03BA           ;          if(U8FLAG==1)break;
 03BA 80911200          lds R24,_U8FLAG
 03BE 8130              cpi R24,1
 03C0 09F4              brne L100
 03C2           X34:
 03C2                   .dbline 207
 03C2 07C0              xjmp L79
 03C4           L100:
 03C4                   .dbline 208
 03C4           ;          U8checkdata_temp=U8comdata;
 03C4 20900400          lds R2,_U8comdata
 03C8 20920500          sts _U8checkdata_temp,R2
 03CC                   .dbline 209
 03CC           ;          break;
 03CC 02C0              xjmp L79
 03CE           L78:
 03CE                   .dbline 181
 03CE 9C9B              sbis 0x13,4
 03D0 A5CF              rjmp L77
 03D2           X35:
 03D2           L79:
 03D2                   .dbline 212
 03D2           ;           }//while
 03D2           ;          //P2_0=1;
 03D2           ;          COM_IN;
 03D2 A498              cbi 0x14,4
 03D4                   .dbline 213
 03D4           ;          COM_SET;
 03D4 AC9A              sbi 0x15,4
 03D6                   .dbline 216
 03D6           ;        //数据校验 
 03D6           ;        
 03D6           ;          U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp);
 03D6 20900800          lds R2,_U8T_data_L_temp
 03DA 30900900          lds R3,_U8T_data_H_temp
 03DE 320C              add R3,R2
 03E0 20900700          lds R2,_U8RH_data_H_temp
 03E4 320C              add R3,R2
 03E6 20900600          lds R2,_U8RH_data_L_temp
 03EA 320C              add R3,R2
 03EC 30920F00          sts _U8temp,R3
 03F0                   .dbline 217
 03F0           ;          if(U8temp==U8checkdata_temp)
 03F0 20900500          lds R2,_U8checkdata_temp
 03F4 3214              cp R3,R2
 03F6 A1F4              brne L102
 03F8           X36:
 03F8                   .dbline 218
 03F8           ;          {
 03F8                   .dbline 219
 03F8           ;                 U8RH_data_H=U8T_data_H_temp;
 03F8 20900900          lds R2,_U8T_data_H_temp
 03FC 20920C00          sts _U8RH_data_H,R2
 0400                   .dbline 220
 0400           ;                 U8RH_data_L=U8T_data_L_temp;
 0400 20900800          lds R2,_U8T_data_L_temp
 0404 20920B00          sts _U8RH_data_L,R2
 0408                   .dbline 221
 0408           ;                 U8T_data_H=U8RH_data_H_temp;
 0408 20900700          lds R2,_U8RH_data_H_temp
 040C 20920E00          sts _U8T_data_H,R2
 0410                   .dbline 222
 0410           ;                 U8T_data_L=U8RH_data_L_temp;
 0410 20900600          lds R2,_U8RH_data_L_temp
 0414 20920D00          sts _U8T_data_L,R2
 0418                   .dbline 223
 0418           ;                 U8checkdata=U8checkdata_temp;
 0418 20900500          lds R2,_U8checkdata_temp
 041C 20920A00          sts _U8checkdata,R2
 0420                   .dbline 224
 0420           ;          }//fi
 0420           L102:
 0420                   .dbline 227
 0420           ;         
 0420           ;         
 0420           ;          COM_IN;
 0420 A498              cbi 0x14,4
 0422                   .dbline 228
 0422           ;          COM_SET;
 0422 AC9A              sbi 0x15,4
 0424                   .dbline -2
 0424           L74:
 0424                   .dbline 0 ; func end
 0424 0895              ret
 0426                   .dbend
 0426                   .dbfunc e Uart_Init _Uart_Init fV
                        .even
 0426           _Uart_Init::
 0426                   .dbline -1

⌨️ 快捷键说明

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