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

📄 温湿度.lis

📁 avr基础程序大全
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0426                   .dbline 239
 0426           ; 
 0426           ;       }
 0426           ;       
 0426           ; /*
 0426           ; 串口初始化函数
 0426           ; 系统频率:2MHz
 0426           ; 停止位:1
 0426           ; 波特率:9600
 0426           ; 数据长度:8
 0426           ; */
 0426           ; void Uart_Init(void) {
 0426                   .dbline 240
 0426           ;       UCSRA = 0x02;           /*2倍速                                  */
 0426 82E0              ldi R24,2
 0428 8BB9              out 0xb,R24
 042A                   .dbline 241
 042A           ;       UCSRB = 0x18;           /*允许接收和发送*/
 042A 88E1              ldi R24,24
 042C 8AB9              out 0xa,R24
 042E                   .dbline 242
 042E           ;       UCSRC = 0x06;           /*8位数据                                */
 042E 86E0              ldi R24,6
 0430 80BD              out 0x20,R24
 0432                   .dbline 243
 0432           ;       UBRRH = 0x00;
 0432 2224              clr R2
 0434 20BC              out 0x20,R2
 0436                   .dbline 246
 0436           ;       //UBRRL = 47;           /*9600          3.6864M      */  
 0436           ;       //UBRRL = 95;       /*9600          7.3728M      */ 
 0436           ;       UBRRL = 103;        /*9600          8.0000M      */ 
 0436 87E6              ldi R24,103
 0438 89B9              out 0x9,R24
 043A                   .dbline -2
 043A           L104:
 043A                   .dbline 0 ; func end
 043A 0895              ret
 043C                   .dbend
 043C                   .dbfunc e Uart_Transmit _Uart_Transmit fV
 043C           ;              i -> R16
                        .even
 043C           _Uart_Transmit::
 043C                   .dbline -1
 043C                   .dbline 253
 043C           ; }
 043C           ; 
 043C           ; /*
 043C           ; 串数据发送
 043C           ; 查询方式发送
 043C           ; */
 043C           ; void Uart_Transmit(unsigned char i) {
 043C           L106:
 043C                   .dbline 256
 043C           ; 
 043C           ;       /* 等待发送缓冲器为空*/
 043C           ;       while (!(UCSRA & (1<<UDRE)));
 043C           L107:
 043C                   .dbline 256
 043C 5D9B              sbis 0xb,5
 043E FECF              rjmp L106
 0440           X37:
 0440                   .dbline 258
 0440           ;       /* 将数据放入缓冲器,发送数据*/
 0440           ;       UDR = i;
 0440 0CB9              out 0xc,R16
 0442                   .dbline -2
 0442           L105:
 0442                   .dbline 0 ; func end
 0442 0895              ret
 0444                   .dbsym r i 16 c
 0444                   .dbend
 0444                   .dbfunc e Uart_Receive _Uart_Receive fc
                        .even
 0444           _Uart_Receive::
 0444                   .dbline -1
 0444                   .dbline 265
 0444           ; }
 0444           ; 
 0444           ; /*
 0444           ; 串数据接收
 0444           ; 查询方式接收
 0444           ; */
 0444           ; unsigned char Uart_Receive( void ) {
 0444           L110:
 0444                   .dbline 268
 0444           ; 
 0444           ;       /* 等待接收数据*/
 0444           ;       while (!(UCSRA & (1<<RXC)));
 0444           L111:
 0444                   .dbline 268
 0444 5F9B              sbis 0xb,7
 0446 FECF              rjmp L110
 0448           X38:
 0448                   .dbline 271
 0448           ;       /* 从缓冲器中获取并返回数据*/
 0448           ;       // Uart_Transmit(UDR);
 0448           ;       return UDR;
 0448 0CB1              in R16,0xc
 044A                   .dbline -2
 044A           L109:
 044A                   .dbline 0 ; func end
 044A 0895              ret
 044C                   .dbend
 044C                   .dbfunc e init_devices _init_devices fV
 044C           ;              i -> <dead>
                        .even
 044C           _init_devices::
 044C                   .dbline -1
 044C                   .dbline 275
 044C           ; }
 044C           ; 
 044C           ; void init_devices(void) 
 044C           ; {
 044C                   .dbline 277
 044C           ; unsigned char i;
 044C           ;                  CLI();                     
 044C F894              cli
 044E                   .dbline 278
 044E           ;      port_init();
 044E 9DDE              xcall _port_init
 0450                   .dbline 279
 0450           ;  watchdog_init();
 0450 A8DE              xcall _watchdog_init
 0452                   .dbline 280
 0452           ;     Uart_Init();
 0452 E9DF              xcall _Uart_Init
 0454                   .dbline 281
 0454           ;     MCUCR = 0x03;
 0454 83E0              ldi R24,3
 0456 85BF              out 0x35,R24
 0458                   .dbline 282
 0458           ;     GICR  = 0x00;                //关外部中断0
 0458 2224              clr R2
 045A 2BBE              out 0x3b,R2
 045C                   .dbline 283
 045C           ;     TIMSK = 0x00;                //关定时器1中断
 045C 29BE              out 0x39,R2
 045E                   .dbline 284
 045E           ;            SEI();                //re-enable interrupts
 045E 7894              sei
 0460                   .dbline -2
 0460           L113:
 0460                   .dbline 0 ; func end
 0460 0895              ret
 0462                   .dbsym l i 1 c
 0462                   .dbend
 0462                   .dbfunc e main _main fV
                        .even
 0462           _main::
 0462                   .dbline -1
 0462                   .dbline 300
 0462           ;                            
 0462           ; }     
 0462           ; /**************************************************************************
 0462           ; 
 0462           ; 
 0462           ; 
 0462           ;                             主函数
 0462           ;                                                       
 0462           ;                                                       
 0462           ;                                                       
 0462           ;                                                       
 0462           ; **************************************************************************/
 0462           ; 
 0462           ; 
 0462           ;  void main(void)
 0462           ; {
 0462                   .dbline 302
 0462           ; 
 0462           ;  init_devices() ;
 0462 F4DF              xcall _init_devices
 0464                   .dbline 303
 0464           ;  COM_IN;
 0464 A498              cbi 0x14,4
 0466                   .dbline 304
 0466           ;  COM_SET;
 0466 AC9A              sbi 0x15,4
 0468 23C0              xjmp L116
 046A           L115:
 046A                   .dbline 307
 046A           ;  
 046A           ;  while(1)
 046A           ;  {
 046A                   .dbline 310
 046A           ;  
 046A           ;  //读DHT21   
 046A           ;   RH();
 046A 47DF              xcall _RH
 046C                   .dbline 313
 046C           ;   
 046C           ;   //由串口发送数据 
 046C           ;   Uart_Transmit(U8RH_data_H); 
 046C 00910C00          lds R16,_U8RH_data_H
 0470 E5DF              xcall _Uart_Transmit
 0472                   .dbline 314
 0472           ;   Uart_Transmit(U8RH_data_L);
 0472 00910B00          lds R16,_U8RH_data_L
 0476 E2DF              xcall _Uart_Transmit
 0478                   .dbline 315
 0478           ;   Uart_Transmit(U8T_data_H);  
 0478 00910E00          lds R16,_U8T_data_H
 047C DFDF              xcall _Uart_Transmit
 047E                   .dbline 316
 047E           ;   Uart_Transmit(U8T_data_L); 
 047E 00910D00          lds R16,_U8T_data_L
 0482 DCDF              xcall _Uart_Transmit
 0484                   .dbline 317
 0484           ;   Uart_Transmit(U8checkdata); 
 0484 00910A00          lds R16,_U8checkdata
 0488 D9DF              xcall _Uart_Transmit
 048A                   .dbline 320
 048A           ;   
 048A           ; 
 048A           ;   Uart_Transmit(U8checkdata); 
 048A 00910A00          lds R16,_U8checkdata
 048E D6DF              xcall _Uart_Transmit
 0490                   .dbline 322
 0490           ;   //延时2S
 0490           ;   for(U8temp=0;U8temp<200;U8temp++)
 0490 2224              clr R2
 0492 20920F00          sts _U8temp,R2
 0496 08C0              xjmp L121
 0498           L118:
 0498                   .dbline 323
 0498           ;   {
 0498                   .dbline 324
 0498           ;   DelaymS(10);
 0498 0AE0              ldi R16,10
 049A 10E0              ldi R17,0
 049C 8BDE              xcall _DelaymS
 049E                   .dbline 326
 049E           ;  
 049E           ;   }//rof
 049E           L119:
 049E                   .dbline 322
 049E 80910F00          lds R24,_U8temp
 04A2 8F5F              subi R24,255    ; addi 1
 04A4 80930F00          sts _U8temp,R24
 04A8           L121:
 04A8                   .dbline 322
 04A8 80910F00          lds R24,_U8temp
 04AC 883C              cpi R24,200
 04AE A0F3              brlo L118
 04B0           X39:
 04B0                   .dbline 328
 04B0           ;   
 04B0           ;  }
 04B0           L116:
 04B0                   .dbline 306
 04B0 DCCF              xjmp L115
 04B2           X40:
 04B2                   .dbline -2
 04B2           L114:
 04B2                   .dbline 0 ; func end
 04B2 0895              ret
 04B4                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile E:\AVR自编程序\11avr实验板\21温湿~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 + -