📄 温湿度传感器.lis
字号:
.module _温湿度传感器.c
.area text(rom, con, rel)
0000 .dbfile ..\20温湿~1\温湿度传感器.c
0000 .dbfile E:\AVR自编程序\11avr实验板\20温湿~1\温湿度传感器.c
0000 .dbfunc e port_init _port_init fV
.even
0000 _port_init::
0000 .dbline -1
0000 .dbline 72
0000 ; //ICC-AVR application builder : 2008-4-28 9:22:37
0000 ; // Target : M8
0000 ; // Crystal: 8.0000Mhz
0000 ; /*************************************************************************
0000 ; 程序开发软件:ICC-AVR
0000 ; 功能:波特率9600 串口发送温湿度数据
0000 ; 数据格式:湿度高8位 湿度高8位 温度低8位 温度低8位 校验和
0000 ;
0000 ; 校验和= 湿度高8位+湿度低8位+温度高8位+温度低8位
0000 ;
0000 ; 公司:DHT21
0000 ; 芯片:M8
0000 ; 晶振:外部 8Mhz
0000 ; 创建人:
0000 ; 创建时间:09.07.03
0000 ; 修改人:
0000 ; 修改时间:
0000 ; 修改原因:
0000 ; **************************************************** **********************/
0000 ;
0000 ;
0000 ; #include <iom16v.h>
0000 ; #include <macros.h>
0000 ; typedef unsigned char U8; /* defined for unsigned 8-bits integer variable 无符号8位整型变量 */
0000 ; typedef signed char S8; /* defined for signed 8-bits integer variable 有符号8位整型变量 */
0000 ; typedef unsigned int U16; /* defined for unsigned 16-bits integer variable 无符号16位整型变量 */
0000 ; typedef signed int S16; /* defined for signed 16-bits integer variable 有符号16位整型变量 */
0000 ; typedef unsigned long U32; /* defined for unsigned 32-bits integer variable 无符号32位整型变量 */
0000 ; typedef signed long S32; /* defined for signed 32-bits integer variable 有符号32位整型变量 */
0000 ; typedef float F32; /* single precision floating point variable (32bits) 单精度浮点数(32位长度) */
0000 ; typedef double F64; /* double precision floating point variable (64bits) 双精度浮点数(64位长度) */
0000 ;
0000 ;
0000 ; /**************************************************************************
0000 ; I/O空间定义
0000 ; ***************************************************************************/
0000 ; // B0_IN DDRB &= ~(1 << PB0) /*设置输入*/
0000 ; // B0_OUT DDRB |= (1 << PB0) /*设置输出*/
0000 ; // B0_CLR PORTB &= ~(1 << PB0) /*置低电平*/
0000 ; // B0_SET PORTB |= (1 << PB0) /*置高电平*/
0000 ; // B0_R PINB & (1 <<PB0) /*读了电平*/
0000 ;
0000 ; #define C4_IN DDRC &= ~(1 << PC4) /*设置输入*/
0000 ; #define C4_OUT DDRC |= (1 << PC4) /*设置输出*/
0000 ; #define C4_CLR PORTC &= ~(1 << PC4) /*置低电平*/
0000 ; #define C4_SET PORTC |= (1 << PC4) /*置高电平*/
0000 ; #define C4_R PINC & (1 <<PC4) /*读了电平*/
0000 ;
0000 ; /**************************************************************************
0000 ; 通讯I/O空间定义
0000 ; ***************************************************************************/
0000 ; #define COM_IN C4_IN
0000 ; #define COM_OUT C4_OUT
0000 ; #define COM_CLR C4_CLR
0000 ; #define COM_SET C4_SET
0000 ; #define COM_R C4_R
0000 ;
0000 ; /**************************************************************************
0000 ; 全局变量定义区
0000 ; ***************************************************************************/
0000 ; U8 i;
0000 ; U8 U8FLAG,k;
0000 ; U8 U8count,U8temp;
0000 ; U8 U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;
0000 ; U8 U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;
0000 ; U8 U8comdata;
0000 ; U16 ReceiveHighByte;
0000 ; U16 ReceiveLowByte;
0000 ; /**************************************************************************
0000 ; ***************************************************************************/
0000 ; void port_init(void)
0000 ; {
0000 .dbline 73
0000 ; PORTB = 0x00;
0000 2224 clr R2
0002 28BA out 0x18,R2
0004 .dbline 74
0004 ; DDRB = 0xFF;
0004 8FEF ldi R24,255
0006 87BB out 0x17,R24
0008 .dbline 75
0008 ; PORTC = 0x03;
0008 83E0 ldi R24,3
000A 85BB out 0x15,R24
000C .dbline 76
000C ; DDRC = 0x0C;
000C 8CE0 ldi R24,12
000E 84BB out 0x14,R24
0010 .dbline 77
0010 ; PORTD = 0x00;
0010 22BA out 0x12,R2
0012 .dbline 78
0012 ; DDRD = 0xF0;
0012 80EF ldi R24,240
0014 81BB out 0x11,R24
0016 .dbline -2
0016 L1:
0016 .dbline 0 ; func end
0016 0895 ret
0018 .dbend
0018 .dbfunc e watchdog_init _watchdog_init fV
.even
0018 _watchdog_init::
0018 .dbline -1
0018 .dbline 82
0018 ; }
0018 ;
0018 ; void watchdog_init(void)
0018 ; {
0018 .dbline -2
0018 L2:
0018 .dbline 0 ; func end
0018 0895 ret
001A .dbend
001A .dbfunc e Delay _Delay fV
001A ; i -> R16,R17
.even
001A _Delay::
001A .dbline -1
001A .dbline 89
001A ; //WDR(); //this prevents a timout on enabling
001A ; //WDTCR = 0x0F; //WATCHDOG ENABLED - dont forget to issue WDRs
001A ; }
001A ;
001A ;
001A ; void Delay(unsigned int i)
001A ; {
001A L4:
001A .dbline 90
001A ; while(i--);
001A L5:
001A .dbline 90
001A 1801 movw R2,R16
001C 0150 subi R16,1
001E 1040 sbci R17,0
0020 2220 tst R2
0022 D9F7 brne L4
0024 3320 tst R3
0026 C9F7 brne L4
0028 X0:
0028 .dbline -2
0028 L3:
0028 .dbline 0 ; func end
0028 0895 ret
002A .dbsym r i 16 i
002A .dbend
002A .dbfunc e DelaymS _DelaymS fV
002A ; i -> R20,R21
002A ; dly -> R16,R17
.even
002A _DelaymS::
002A 4A93 st -y,R20
002C 5A93 st -y,R21
002E .dbline -1
002E .dbline 94
002E ; }
002E ;
002E ; void DelaymS (U16 dly)
002E ; {
002E .dbline 96
002E ; U16 i;
002E ; for ( ; dly>0; dly--)
002E 0CC0 xjmp L11
0030 L8:
0030 .dbline 97
0030 ; {
0030 .dbline 98
0030 ; WDR();
0030 A895 wdr
0032 .dbline 99
0032 ; for (i=0; i<1119; i++);
0032 4427 clr R20
0034 5527 clr R21
0036 02C0 xjmp L15
0038 L12:
0038 .dbline 99
0038 L13:
0038 .dbline 99
0038 4F5F subi R20,255 ; offset = 1
003A 5F4F sbci R21,255
003C L15:
003C .dbline 99
003C 4F35 cpi R20,95
003E E4E0 ldi R30,4
0040 5E07 cpc R21,R30
0042 D0F3 brlo L12
0044 X1:
0044 .dbline 100
0044 ; }
0044 L9:
0044 .dbline 96
0044 0150 subi R16,1
0046 1040 sbci R17,0
0048 L11:
0048 .dbline 96
0048 0030 cpi R16,0
004A 0107 cpc R16,R17
004C 89F7 brne L8
004E X2:
004E .dbline -2
004E L7:
004E .dbline 0 ; func end
004E 5991 ld R21,y+
0050 4991 ld R20,y+
0052 0895 ret
0054 .dbsym r i 20 i
0054 .dbsym r dly 16 i
0054 .dbend
0054 .dbfunc e Delay_10us _Delay_10us fV
0054 ; i -> R16
.even
0054 _Delay_10us::
0054 .dbline -1
0054 .dbline 105
0054 ; }
0054 ;
0054 ;
0054 ; void Delay_10us(void)
0054 ; {
0054 .dbline 107
0054 ; U8 i;
0054 ; i++;i++;i++;i++;i++;i++;i++;i++;i++;
0054 0395 inc R16
0056 .dbline 107
0056 0395 inc R16
0058 .dbline 107
0058 0395 inc R16
005A .dbline 107
005A 0395 inc R16
005C .dbline 107
005C 0395 inc R16
005E .dbline 107
005E 0395 inc R16
0060 .dbline 107
0060 0395 inc R16
0062 .dbline 107
0062 0395 inc R16
0064 .dbline 107
0064 0395 inc R16
0066 .dbline 108
0066 ; i++;i++;i++;i++;i++;i++;i++;i++;i++;
0066 0395 inc R16
0068 .dbline 108
0068 0395 inc R16
006A .dbline 108
006A 0395 inc R16
006C .dbline 108
006C 0395 inc R16
006E .dbline 108
006E 0395 inc R16
0070 .dbline 108
0070 0395 inc R16
0072 .dbline 108
0072 0395 inc R16
0074 .dbline 108
0074 0395 inc R16
0076 .dbline 108
0076 0395 inc R16
0078 .dbline 109
0078 ; i++;i++;i++;i++;i++;i++;i++;i++;i++;
0078 0395 inc R16
007A .dbline 109
007A 0395 inc R16
007C .dbline 109
007C 0395 inc R16
007E .dbline 109
007E 0395 inc R16
0080 .dbline 109
0080 0395 inc R16
0082 .dbline 109
0082 0395 inc R16
0084 .dbline 109
0084 0395 inc R16
0086 .dbline 109
0086 0395 inc R16
0088 .dbline 109
0088 0395 inc R16
008A .dbline 110
008A ; i++;i++;i++;i++;i++;i++;i++;i++;i++;
008A 0395 inc R16
008C .dbline 110
008C 0395 inc R16
008E .dbline 110
008E 0395 inc R16
0090 .dbline 110
0090 0395 inc R16
0092 .dbline 110
0092 0395 inc R16
0094 .dbline 110
0094 0395 inc R16
0096 .dbline 110
0096 0395 inc R16
0098 .dbline 110
0098 0395 inc R16
009A .dbline 110
009A 0395 inc R16
009C .dbline 111
009C ; i++;i++;i++;i++;i++;i++;i++;i++;i++;
009C 0395 inc R16
009E .dbline 111
009E 0395 inc R16
00A0 .dbline 111
00A0 0395 inc R16
00A2 .dbline 111
00A2 0395 inc R16
00A4 .dbline 111
00A4 0395 inc R16
00A6 .dbline 111
00A6 0395 inc R16
00A8 .dbline 111
00A8 0395 inc R16
00AA .dbline 111
00AA 0395 inc R16
00AC .dbline 111
00AC 0395 inc R16
00AE .dbline 112
00AE ; i++;i++;i++;i++;i++;i++;i++;i++;i++;
00AE 0395 inc R16
00B0 .dbline 112
00B0 0395 inc R16
00B2 .dbline 112
00B2 0395 inc R16
00B4 .dbline 112
00B4 0395 inc R16
00B6 .dbline 112
00B6 0395 inc R16
00B8 .dbline 112
00B8 0395 inc R16
00BA .dbline 112
00BA 0395 inc R16
00BC .dbline 112
00BC 0395 inc R16
00BE .dbline 112
00BE 0395 inc R16
00C0 .dbline 113
00C0 ; i++;i++;i++;i++;i++;i++;i++;i++;i++;
00C0 0395 inc R16
00C2 .dbline 113
00C2 0395 inc R16
00C4 .dbline 113
00C4 0395 inc R16
00C6 .dbline 113
00C6 0395 inc R16
00C8 .dbline 113
00C8 0395 inc R16
00CA .dbline 113
00CA 0395 inc R16
00CC .dbline 113
00CC 0395 inc R16
00CE .dbline 113
00CE 0395 inc R16
00D0 .dbline 113
00D0 0395 inc R16
00D2 .dbline 114
00D2 ; i++;i++;i++;i++;i++;i++;i++;
00D2 0395 inc R16
00D4 .dbline 114
00D4 0395 inc R16
00D6 .dbline 114
00D6 0395 inc R16
00D8 .dbline 114
00D8 0395 inc R16
00DA .dbline 114
00DA 0395 inc R16
00DC .dbline 114
00DC 0395 inc R16
00DE .dbline 114
00DE 0395 inc R16
00E0 .dbline -2
00E0 L16:
00E0 .dbline 0 ; func end
00E0 0895 ret
00E2 .dbsym r i 16 c
00E2 .dbend
00E2 .dbfunc e COM _COM fV
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -