📄 温湿度.lis
字号:
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 + -