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

📄 温湿度传感器.lis

📁 avr基础程序大全
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 025A 320C              add R3,R2
 025C 20900600          lds R2,_U8RH_data_L_temp
 0260 320C              add R3,R2
 0262 30920F00          sts _U8temp,R3
 0266                   .dbline 216
 0266           ;          if(U8temp==U8checkdata_temp)
 0266 20900500          lds R2,_U8checkdata_temp
 026A 3214              cp R3,R2
 026C A1F4              brne L64
 026E           X25:
 026E                   .dbline 217
 026E           ;          {
 026E                   .dbline 218
 026E           ;                 U8RH_data_H=U8T_data_H_temp;
 026E 20900900          lds R2,_U8T_data_H_temp
 0272 20920C00          sts _U8RH_data_H,R2
 0276                   .dbline 219
 0276           ;                 U8RH_data_L=U8T_data_L_temp;
 0276 20900800          lds R2,_U8T_data_L_temp
 027A 20920B00          sts _U8RH_data_L,R2
 027E                   .dbline 220
 027E           ;                 U8T_data_H=U8RH_data_H_temp;
 027E 20900700          lds R2,_U8RH_data_H_temp
 0282 20920E00          sts _U8T_data_H,R2
 0286                   .dbline 221
 0286           ;                 U8T_data_L=U8RH_data_L_temp;
 0286 20900600          lds R2,_U8RH_data_L_temp
 028A 20920D00          sts _U8T_data_L,R2
 028E                   .dbline 222
 028E           ;                 U8checkdata=U8checkdata_temp;
 028E 20900500          lds R2,_U8checkdata_temp
 0292 20920A00          sts _U8checkdata,R2
 0296                   .dbline 223
 0296           ;          }//fi
 0296           L64:
 0296                   .dbline 226
 0296           ;         
 0296           ;         
 0296           ;          COM_IN;
 0296 A498              cbi 0x14,4
 0298                   .dbline 227
 0298           ;          COM_SET;
 0298 AC9A              sbi 0x15,4
 029A                   .dbline -2
 029A           L36:
 029A                   .dbline 0 ; func end
 029A 0895              ret
 029C                   .dbend
 029C                   .dbfunc e Uart_Init _Uart_Init fV
                        .even
 029C           _Uart_Init::
 029C                   .dbline -1
 029C                   .dbline 238
 029C           ; 
 029C           ;       }
 029C           ;       
 029C           ; /*
 029C           ; 串口初始化函数
 029C           ; 系统频率:2MHz
 029C           ; 停止位:1
 029C           ; 波特率:9600
 029C           ; 数据长度:8
 029C           ; */
 029C           ; void Uart_Init(void) {
 029C                   .dbline 239
 029C           ;       UCSRA = 0x02;           /*2倍速                                  */
 029C 82E0              ldi R24,2
 029E 8BB9              out 0xb,R24
 02A0                   .dbline 240
 02A0           ;       UCSRB = 0x18;           /*允许接收和发送*/
 02A0 88E1              ldi R24,24
 02A2 8AB9              out 0xa,R24
 02A4                   .dbline 241
 02A4           ;       UCSRC = 0x06;           /*8位数据                                */
 02A4 86E0              ldi R24,6
 02A6 80BD              out 0x20,R24
 02A8                   .dbline 242
 02A8           ;       UBRRH = 0x00;
 02A8 2224              clr R2
 02AA 20BC              out 0x20,R2
 02AC                   .dbline 245
 02AC           ;       //UBRRL = 47;           /*9600          3.6864M      */  
 02AC           ;       //UBRRL = 95;       /*9600          7.3728M      */ 
 02AC           ;       UBRRL = 103;        /*9600          8.0000M      */ 
 02AC 87E6              ldi R24,103
 02AE 89B9              out 0x9,R24
 02B0                   .dbline -2
 02B0           L66:
 02B0                   .dbline 0 ; func end
 02B0 0895              ret
 02B2                   .dbend
 02B2                   .dbfunc e Uart_Transmit _Uart_Transmit fV
 02B2           ;              i -> R16
                        .even
 02B2           _Uart_Transmit::
 02B2                   .dbline -1
 02B2                   .dbline 252
 02B2           ; }
 02B2           ; 
 02B2           ; /*
 02B2           ; 串数据发送
 02B2           ; 查询方式发送
 02B2           ; */
 02B2           ; void Uart_Transmit(unsigned char i) {
 02B2           L68:
 02B2                   .dbline 255
 02B2           ; 
 02B2           ;       /* 等待发送缓冲器为空*/
 02B2           ;       while (!(UCSRA & (1<<UDRE)));
 02B2           L69:
 02B2                   .dbline 255
 02B2 5D9B              sbis 0xb,5
 02B4 FECF              rjmp L68
 02B6           X26:
 02B6                   .dbline 257
 02B6           ;       /* 将数据放入缓冲器,发送数据*/
 02B6           ;       UDR = i;
 02B6 0CB9              out 0xc,R16
 02B8                   .dbline -2
 02B8           L67:
 02B8                   .dbline 0 ; func end
 02B8 0895              ret
 02BA                   .dbsym r i 16 c
 02BA                   .dbend
 02BA                   .dbfunc e Uart_Receive _Uart_Receive fc
                        .even
 02BA           _Uart_Receive::
 02BA                   .dbline -1
 02BA                   .dbline 264
 02BA           ; }
 02BA           ; 
 02BA           ; /*
 02BA           ; 串数据接收
 02BA           ; 查询方式接收
 02BA           ; */
 02BA           ; unsigned char Uart_Receive( void ) {
 02BA           L72:
 02BA                   .dbline 267
 02BA           ; 
 02BA           ;       /* 等待接收数据*/
 02BA           ;       while (!(UCSRA & (1<<RXC)));
 02BA           L73:
 02BA                   .dbline 267
 02BA 5F9B              sbis 0xb,7
 02BC FECF              rjmp L72
 02BE           X27:
 02BE                   .dbline 270
 02BE           ;       /* 从缓冲器中获取并返回数据*/
 02BE           ;       // Uart_Transmit(UDR);
 02BE           ;       return UDR;
 02BE 0CB1              in R16,0xc
 02C0                   .dbline -2
 02C0           L71:
 02C0                   .dbline 0 ; func end
 02C0 0895              ret
 02C2                   .dbend
 02C2                   .dbfunc e init_devices _init_devices fV
 02C2           ;              i -> <dead>
                        .even
 02C2           _init_devices::
 02C2                   .dbline -1
 02C2                   .dbline 274
 02C2           ; }
 02C2           ; 
 02C2           ; void init_devices(void) 
 02C2           ; {
 02C2                   .dbline 276
 02C2           ; unsigned char i;
 02C2           ;                  CLI();                     
 02C2 F894              cli
 02C4                   .dbline 277
 02C4           ;      port_init();
 02C4 9DDE              xcall _port_init
 02C6                   .dbline 278
 02C6           ;  watchdog_init();
 02C6 A8DE              xcall _watchdog_init
 02C8                   .dbline 279
 02C8           ;     Uart_Init();
 02C8 E9DF              xcall _Uart_Init
 02CA                   .dbline 280
 02CA           ;     MCUCR = 0x03;
 02CA 83E0              ldi R24,3
 02CC 85BF              out 0x35,R24
 02CE                   .dbline 281
 02CE           ;     GICR  = 0x00;                //关外部中断0
 02CE 2224              clr R2
 02D0 2BBE              out 0x3b,R2
 02D2                   .dbline 282
 02D2           ;     TIMSK = 0x00;                //关定时器1中断
 02D2 29BE              out 0x39,R2
 02D4                   .dbline 283
 02D4           ;            SEI();                //re-enable interrupts
 02D4 7894              sei
 02D6                   .dbline -2
 02D6           L75:
 02D6                   .dbline 0 ; func end
 02D6 0895              ret
 02D8                   .dbsym l i 1 c
 02D8                   .dbend
 02D8                   .dbfunc e main _main fV
                        .even
 02D8           _main::
 02D8                   .dbline -1
 02D8                   .dbline 299
 02D8           ;                            
 02D8           ; }     
 02D8           ; /**************************************************************************
 02D8           ; 
 02D8           ; 
 02D8           ; 
 02D8           ;                             主函数
 02D8           ;                                                       
 02D8           ;                                                       
 02D8           ;                                                       
 02D8           ;                                                       
 02D8           ; **************************************************************************/
 02D8           ; 
 02D8           ; 
 02D8           ;  void main(void)
 02D8           ; {
 02D8                   .dbline 301
 02D8           ; 
 02D8           ;  init_devices() ;
 02D8 F4DF              xcall _init_devices
 02DA                   .dbline 302
 02DA           ;  COM_IN;
 02DA A498              cbi 0x14,4
 02DC                   .dbline 303
 02DC           ;  COM_SET;
 02DC AC9A              sbi 0x15,4
 02DE 23C0              xjmp L78
 02E0           L77:
 02E0                   .dbline 306
 02E0           ;  
 02E0           ;  while(1)
 02E0           ;  {
 02E0                   .dbline 309
 02E0           ;  
 02E0           ;  //读DHT21   
 02E0           ;   RH();
 02E0 47DF              xcall _RH
 02E2                   .dbline 312
 02E2           ;   
 02E2           ;   //由串口发送数据 
 02E2           ;   Uart_Transmit(U8RH_data_H); 
 02E2 00910C00          lds R16,_U8RH_data_H
 02E6 E5DF              xcall _Uart_Transmit
 02E8                   .dbline 313
 02E8           ;   Uart_Transmit(U8RH_data_L);
 02E8 00910B00          lds R16,_U8RH_data_L
 02EC E2DF              xcall _Uart_Transmit
 02EE                   .dbline 314
 02EE           ;   Uart_Transmit(U8T_data_H);  
 02EE 00910E00          lds R16,_U8T_data_H
 02F2 DFDF              xcall _Uart_Transmit
 02F4                   .dbline 315
 02F4           ;   Uart_Transmit(U8T_data_L); 
 02F4 00910D00          lds R16,_U8T_data_L
 02F8 DCDF              xcall _Uart_Transmit
 02FA                   .dbline 316
 02FA           ;   Uart_Transmit(U8checkdata); 
 02FA 00910A00          lds R16,_U8checkdata
 02FE D9DF              xcall _Uart_Transmit
 0300                   .dbline 319
 0300           ;   
 0300           ; 
 0300           ;   Uart_Transmit(U8checkdata); 
 0300 00910A00          lds R16,_U8checkdata
 0304 D6DF              xcall _Uart_Transmit
 0306                   .dbline 321
 0306           ;   //延时2S
 0306           ;   for(U8temp=0;U8temp<200;U8temp++)
 0306 2224              clr R2
 0308 20920F00          sts _U8temp,R2
 030C 08C0              xjmp L83
 030E           L80:
 030E                   .dbline 322
 030E           ;   {
 030E                   .dbline 323
 030E           ;   DelaymS(10);
 030E 0AE0              ldi R16,10
 0310 10E0              ldi R17,0
 0312 8BDE              xcall _DelaymS
 0314                   .dbline 325
 0314           ;  
 0314           ;   }//rof
 0314           L81:
 0314                   .dbline 321
 0314 80910F00          lds R24,_U8temp
 0318 8F5F              subi R24,255    ; addi 1
 031A 80930F00          sts _U8temp,R24
 031E           L83:
 031E                   .dbline 321
 031E 80910F00          lds R24,_U8temp
 0322 883C              cpi R24,200
 0324 A0F3              brlo L80
 0326           X28:
 0326                   .dbline 327
 0326           ;   
 0326           ;  }
 0326           L78:
 0326                   .dbline 305
 0326 DCCF              xjmp L77
 0328           X29:
 0328                   .dbline -2
 0328           L76:
 0328                   .dbline 0 ; func end
 0328 0895              ret
 032A                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile E:\AVR自编程序\11avr实验板\20温湿~1\温湿度传感器.c
 0000           _ReceiveLowByte::
 0000                   .blkb 2
 0002                   .dbsym e ReceiveLowByte _ReceiveLowByte i
 0002           _ReceiveHighByte::
 0002                   .blkb 2
 0004                   .dbsym e ReceiveHighByte _ReceiveHighByte i
 0004           _U8comdata::
 0004                   .blkb 1
 0005                   .dbsym e U8comdata _U8comdata c
 0005           _U8checkdata_temp::
 0005                   .blkb 1
 0006                   .dbsym e U8checkdata_temp _U8checkdata_temp c
 0006           _U8RH_data_L_temp::
 0006                   .blkb 1
 0007                   .dbsym e U8RH_data_L_temp _U8RH_data_L_temp c
 0007           _U8RH_data_H_temp::
 0007                   .blkb 1
 0008                   .dbsym e U8RH_data_H_temp _U8RH_data_H_temp c
 0008           _U8T_data_L_temp::
 0008                   .blkb 1
 0009                   .dbsym e U8T_data_L_temp _U8T_data_L_temp c
 0009           _U8T_data_H_temp::
 0009                   .blkb 1
 000A                   .dbsym e U8T_data_H_temp _U8T_data_H_temp c
 000A           _U8checkdata::
 000A                   .blkb 1
 000B                   .dbsym e U8checkdata _U8checkdata c
 000B           _U8RH_data_L::
 000B                   .blkb 1
 000C                   .dbsym e U8RH_data_L _U8RH_data_L c
 000C           _U8RH_data_H::
 000C                   .blkb 1
 000D                   .dbsym e U8RH_data_H _U8RH_data_H c
 000D           _U8T_data_L::
 000D                   .blkb 1
 000E                   .dbsym e U8T_data_L _U8T_data_L c
 000E           _U8T_data_H::
 000E                   .blkb 1
 000F                   .dbsym e U8T_data_H _U8T_data_H c
 000F           _U8temp::
 000F                   .blkb 1
 0010                   .dbsym e U8temp _U8temp c
 0010           _U8count::
 0010                   .blkb 1
 0011                   .dbsym e U8count _U8count c
 0011           _k::
 0011                   .blkb 1
 0012                   .dbsym e k _k c
 0012           _U8FLAG::
 0012                   .blkb 1
 0013                   .dbsym e U8FLAG _U8FLAG c
 0013           _i::
 0013                   .blkb 1
 0014                   .dbsym e i _i c
 0014           ;  
 0014           ; }
 0014           ; 
 0014           ; 
 0014           ; 
 0014           ; 
 0014           ;  
 0014           ; 
 0014           ; 
 0014           ; 
 0014           ; 
 0014           ; 
 0014           ; 
 0014           ;  
 0014           ;  
 0014           ;  

⌨️ 快捷键说明

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