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

📄 温湿度.lis

📁 avr基础程序大全
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 00E2 C2DF              xcall _write_shuju
 00E4                   .dbline 81
 00E4           ;       delay_us(200);
 00E4 08EC              ldi R16,200
 00E6 10E0              ldi R17,0
 00E8 8EDF              xcall _delay_us
 00EA                   .dbline 82
 00EA           ;       write_shuju(0,0x01);                    //清屏
 00EA 21E0              ldi R18,1
 00EC 0027              clr R16
 00EE BCDF              xcall _write_shuju
 00F0                   .dbline 83
 00F0           ;       delay_ms(100);
 00F0 04E6              ldi R16,100
 00F2 10E0              ldi R17,0
 00F4                   .dbline -2
 00F4           L25:
 00F4                   .dbline 0 ; func end
 00F4 90CF              xjmp _delay_ms
 00F6                   .dbend
 00F6                   .dbfunc e write_hz _write_hz fV
 00F6           ;              s -> R20,R21
                        .even
 00F6           _write_hz::
 00F6 4A93              st -y,R20
 00F8 5A93              st -y,R21
 00FA A801              movw R20,R16
 00FC                   .dbline -1
 00FC                   .dbline 87
 00FC           ; 
 00FC           ; }
 00FC           ; void write_hz(char *s)
 00FC           ;    {
 00FC 06C0              xjmp L28
 00FE           L27:
 00FE                   .dbline 89
 00FE           ;       while(*s)
 00FE           ;           {
 00FE                   .dbline 90
 00FE           ;               write_shuju(1,*s);
 00FE FA01              movw R30,R20
 0100 2081              ldd R18,z+0
 0102 01E0              ldi R16,1
 0104 B1DF              xcall _write_shuju
 0106                   .dbline 91
 0106           ;               s++;
 0106 4F5F              subi R20,255  ; offset = 1
 0108 5F4F              sbci R21,255
 010A                   .dbline 92
 010A           ;               }
 010A           L28:
 010A                   .dbline 88
 010A FA01              movw R30,R20
 010C 2080              ldd R2,z+0
 010E 2220              tst R2
 0110 B1F7              brne L27
 0112           X6:
 0112                   .dbline -2
 0112           L26:
 0112                   .dbline 0 ; func end
 0112 5991              ld R21,y+
 0114 4991              ld R20,y+
 0116 0895              ret
 0118                   .dbsym r s 20 pc
 0118                   .dbend
 0118                   .dbfunc e locate _locate fV
 0118           ;              y -> R20
 0118           ;              x -> R10
                        .even
 0118           _locate::
 0118 0E940000          xcall push_xgsetF00C
 011C 422F              mov R20,R18
 011E A02E              mov R10,R16
 0120                   .dbline -1
 0120                   .dbline 95
 0120           ; }
 0120           ; void locate(uchar x,uchar y)
 0120           ; {
 0120                   .dbline 96
 0120           ;       switch(x)
 0120 6A2D              mov R22,R10
 0122 7727              clr R23
 0124 6130              cpi R22,1
 0126 E0E0              ldi R30,0
 0128 7E07              cpc R23,R30
 012A 69F0              breq L34
 012C           X7:
 012C 6230              cpi R22,2
 012E E0E0              ldi R30,0
 0130 7E07              cpc R23,R30
 0132 79F0              breq L35
 0134           X8:
 0134 6330              cpi R22,3
 0136 E0E0              ldi R30,0
 0138 7E07              cpc R23,R30
 013A 89F0              breq L36
 013C           X9:
 013C 6430              cpi R22,4
 013E E0E0              ldi R30,0
 0140 7E07              cpc R23,R30
 0142 99F0              breq L37
 0144           X10:
 0144 17C0              xjmp L32
 0146           L34:
 0146                   .dbline 98
 0146           ;               {
 0146           ;               case 1:write_shuju(0,(0x80+y-1)); break;
 0146 242F              mov R18,R20
 0148 2058              subi R18,128    ; addi 128
 014A 2150              subi R18,1
 014C 0027              clr R16
 014E 8CDF              xcall _write_shuju
 0150                   .dbline 98
 0150 11C0              xjmp L32
 0152           L35:
 0152                   .dbline 99
 0152           ;               case 2:write_shuju(0,(0x90+y-1));break;
 0152 242F              mov R18,R20
 0154 2057              subi R18,112    ; addi 144
 0156 2150              subi R18,1
 0158 0027              clr R16
 015A 86DF              xcall _write_shuju
 015C                   .dbline 99
 015C 0BC0              xjmp L32
 015E           L36:
 015E                   .dbline 100
 015E           ;               case 3:write_shuju(0,(0x88+y-1));break; 
 015E 242F              mov R18,R20
 0160 2857              subi R18,120    ; addi 136
 0162 2150              subi R18,1
 0164 0027              clr R16
 0166 80DF              xcall _write_shuju
 0168                   .dbline 100
 0168 05C0              xjmp L32
 016A           L37:
 016A                   .dbline 101
 016A           ;               case 4:write_shuju(0,(0x98+y-1));break;
 016A 242F              mov R18,R20
 016C 2856              subi R18,104    ; addi 152
 016E 2150              subi R18,1
 0170 0027              clr R16
 0172 7ADF              xcall _write_shuju
 0174                   .dbline 101
 0174                   .dbline 102
 0174           ;               default:break;           
 0174           L32:
 0174                   .dbline -2
 0174           L30:
 0174                   .dbline 0 ; func end
 0174 0C940000          xjmp pop_xgsetF00C
 0178                   .dbsym r y 20 c
 0178                   .dbsym r x 10 c
 0178                   .dbend
 0178                   .dbfunc e cls _cls fV
                        .even
 0178           _cls::
 0178                   .dbline -1
 0178                   .dbline 106
 0178           ;               }
 0178           ; }
 0178           ; void cls()
 0178           ; {
 0178                   .dbline 107
 0178           ;       delay_us(200);
 0178 08EC              ldi R16,200
 017A 10E0              ldi R17,0
 017C 44DF              xcall _delay_us
 017E                   .dbline 108
 017E           ;       write_shuju(0,0x01);                    //清屏
 017E 21E0              ldi R18,1
 0180 0027              clr R16
 0182 72DF              xcall _write_shuju
 0184                   .dbline 109
 0184           ;       delay_ms(20);
 0184 04E1              ldi R16,20
 0186 10E0              ldi R17,0
 0188                   .dbline -2
 0188           L38:
 0188                   .dbline 0 ; func end
 0188 46CF              xjmp _delay_ms
 018A                   .dbend
 018A                   .dbfile E:\AVR自编程序\11avr实验板\21温湿~1\温湿度.c
 018A                   .dbfunc e port_init _port_init fV
                        .even
 018A           _port_init::
 018A                   .dbline -1
 018A                   .dbline 73
 018A           ; //ICC-AVR application builder : 2008-4-28 9:22:37
 018A           ; // Target : M8
 018A           ; // Crystal: 8.0000Mhz
 018A           ; /*************************************************************************
 018A           ; 程序开发软件:ICC-AVR 
 018A           ; 功能:波特率9600 串口发送温湿度数据  
 018A           ; 数据格式:湿度高8位 湿度高8位  温度低8位 温度低8位  校验和     
 018A           ;    
 018A           ;           校验和= 湿度高8位+湿度低8位+温度高8位+温度低8位
 018A           ;                 
 018A           ; 公司:DHT21
 018A           ; 芯片:M8
 018A           ; 晶振:外部 8Mhz
 018A           ; 创建人: 
 018A           ; 创建时间:09.07.03
 018A           ; 修改人:
 018A           ; 修改时间:
 018A           ; 修改原因:
 018A           ; **************************************************** **********************/
 018A           ; 
 018A           ; 
 018A           ; #include <iom16v.h>
 018A           ; #include <macros.h>
 018A           ; #include "12864.h"
 018A           ; typedef unsigned char  U8;       /* defined for unsigned 8-bits integer variable        无符号8位整型变量  */
 018A           ; typedef signed   char  S8;       /* defined for signed 8-bits integer variable                  有符号8位整型变量  */
 018A           ; typedef unsigned int   U16;      /* defined for unsigned 16-bits integer variable       无符号16位整型变量 */
 018A           ; typedef signed   int   S16;      /* defined for signed 16-bits integer variable         有符号16位整型变量 */
 018A           ; typedef unsigned long  U32;      /* defined for unsigned 32-bits integer variable       无符号32位整型变量 */
 018A           ; typedef signed   long  S32;      /* defined for signed 32-bits integer variable         有符号32位整型变量 */
 018A           ; typedef float          F32;      /* single precision floating point variable (32bits) 单精度浮点数(32位长度) */
 018A           ; typedef double         F64;      /* double precision floating point variable (64bits) 双精度浮点数(64位长度) */
 018A           ; 
 018A           ; 
 018A           ; /**************************************************************************
 018A           ;                     I/O空间定义
 018A           ; ***************************************************************************/
 018A           ; // B0_IN      DDRB &= ~(1 << PB0)             /*设置输入*/
 018A           ; // B0_OUT     DDRB |= (1 << PB0)              /*设置输出*/
 018A           ; // B0_CLR     PORTB &= ~(1 << PB0)    /*置低电平*/
 018A           ; // B0_SET     PORTB |= (1 << PB0)             /*置高电平*/
 018A           ; // B0_R           PINB & (1 <<PB0)            /*读了电平*/
 018A           ; 
 018A           ;  #define    C4_IN       DDRC &= ~(1 << PC4)           /*设置输入*/
 018A           ;  #define    C4_OUT      DDRC |= (1 << PC4)            /*设置输出*/
 018A           ;  #define    C4_CLR      PORTC &= ~(1 << PC4)      /*置低电平*/
 018A           ;  #define    C4_SET      PORTC |= (1 << PC4)           /*置高电平*/
 018A           ;  #define    C4_R          PINC & (1 <<PC4)            /*读了电平*/
 018A           ; 
 018A           ; /**************************************************************************
 018A           ;                     通讯I/O空间定义
 018A           ; ***************************************************************************/
 018A           ;  #define       COM_IN          C4_IN  
 018A           ;  #define       COM_OUT         C4_OUT
 018A           ;  #define       COM_CLR         C4_CLR
 018A           ;  #define       COM_SET         C4_SET
 018A           ;  #define       COM_R           C4_R
 018A           ;  
 018A           ; /**************************************************************************
 018A           ;                     全局变量定义区
 018A           ; ***************************************************************************/
 018A           ;       U8       i;
 018A           ;       U8    U8FLAG,k;
 018A           ;       U8    U8count,U8temp;
 018A           ;       U8    U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;
 018A           ;       U8    U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;
 018A           ;       U8    U8comdata;
 018A           ;       U16   ReceiveHighByte;
 018A           ;       U16   ReceiveLowByte;
 018A           ; /**************************************************************************
 018A           ; ***************************************************************************/
 018A           ; void port_init(void)
 018A           ; {
 018A                   .dbline 74
 018A           ;  PORTB = 0x00;
 018A 2224              clr R2
 018C 28BA              out 0x18,R2
 018E                   .dbline 75
 018E           ;  DDRB  = 0xFF;
 018E 8FEF              ldi R24,255
 0190 87BB              out 0x17,R24
 0192                   .dbline 76
 0192           ;  PORTC = 0x03;                    
 0192 83E0              ldi R24,3
 0194 85BB              out 0x15,R24
 0196                   .dbline 77
 0196           ;  DDRC  = 0x0C;
 0196 8CE0              ldi R24,12
 0198 84BB              out 0x14,R24
 019A                   .dbline 78
 019A           ;  PORTD = 0x00;
 019A 22BA              out 0x12,R2
 019C                   .dbline 79
 019C           ;  DDRD  = 0xF0;
 019C 80EF              ldi R24,240
 019E 81BB              out 0x11,R24
 01A0                   .dbline -2
 01A0           L39:
 01A0                   .dbline 0 ; func end
 01A0 0895              ret
 01A2                   .dbend
 01A2                   .dbfunc e watchdog_init _watchdog_init fV
                        .even
 01A2           _watchdog_init::
 01A2                   .dbline -1
 01A2                   .dbline 83
 01A2           ; }
 01A2           ; 
 01A2           ; void watchdog_init(void)
 01A2           ; {
 01A2                   .dbline -2
 01A2           L40:
 01A2                   .dbline 0 ; func end
 01A2 0895              ret
 01A4                   .dbend
 01A4                   .dbfunc e Delay _Delay fV
 01A4           ;              i -> R16,R17
                        .even
 01A4           _Delay::
 01A4                   .dbline -1
 01A4                   .dbline 90
 01A4           ;   //WDR();        //this prevents a timout on enabling
 01A4           ;   //WDTCR = 0x0F; //WATCHDOG ENABLED - dont forget to issue WDRs
 01A4           ; }
 01A4           ; 
 01A4           ; 
 01A4           ; void Delay(unsigned int i)
 01A4           ; {
 01A4           L42:
 01A4                   .dbline 91
 01A4           ;       while(i--);
 01A4           L43:
 01A4                   .dbline 91
 01A4 1801              movw R2,R16
 01A6 0150              subi R16,1
 01A8 1040              sbci R17,0
 01AA 2220              tst R2
 01AC D9F7              brne L42
 01AE 3320              tst R3
 01B0 C9F7              brne L42
 01B2           X11:
 01B2                   .dbline -2
 01B2           L41:
 01B2                   .dbline 0 ; func end
 01B2 0895              ret
 01B4                   .dbsym r i 16 i

⌨️ 快捷键说明

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