📄 main.lis
字号:
0126 ;
0126 ; ASCII_T[0]='0'+temprature/1000;
0126 28EE ldi R18,1000
0128 33E0 ldi R19,3
012A 00910300 lds R16,_temprature
012E 10910400 lds R17,_temprature+1
0132 0E940000 xcall div16u
0136 C801 movw R24,R16
0138 C096 adiw R24,48
013A 80930400 sts _ASCII_T,R24
013E .dbline 62
013E ; temprature%=1000;
013E 28EE ldi R18,1000
0140 33E0 ldi R19,3
0142 00910300 lds R16,_temprature
0146 10910400 lds R17,_temprature+1
014A 0E940000 xcall mod16u
014E 10930400 sts _temprature+1,R17
0152 00930300 sts _temprature,R16
0156 .dbline 63
0156 ; ASCII_T[1]='0'+temprature/100;
0156 24E6 ldi R18,100
0158 30E0 ldi R19,0
015A 0E940000 xcall div16u
015E C801 movw R24,R16
0160 C096 adiw R24,48
0162 80930500 sts _ASCII_T+1,R24
0166 .dbline 64
0166 ; temprature%=100;
0166 24E6 ldi R18,100
0168 30E0 ldi R19,0
016A 00910300 lds R16,_temprature
016E 10910400 lds R17,_temprature+1
0172 0E940000 xcall mod16u
0176 10930400 sts _temprature+1,R17
017A 00930300 sts _temprature,R16
017E .dbline 65
017E ; ASCII_T[2]='0'+temprature/10;
017E 2AE0 ldi R18,10
0180 30E0 ldi R19,0
0182 0E940000 xcall div16u
0186 C801 movw R24,R16
0188 C096 adiw R24,48
018A 80930600 sts _ASCII_T+2,R24
018E .dbline 66
018E ; temprature%=10;
018E 2AE0 ldi R18,10
0190 30E0 ldi R19,0
0192 00910300 lds R16,_temprature
0196 10910400 lds R17,_temprature+1
019A 0E940000 xcall mod16u
019E 10930400 sts _temprature+1,R17
01A2 00930300 sts _temprature,R16
01A6 .dbline 67
01A6 ; ASCII_T[3]='0'+temprature;
01A6 C801 movw R24,R16
01A8 C096 adiw R24,48
01AA 80930700 sts _ASCII_T+3,R24
01AE .dbline 68
01AE ; LCD_Cursor(1,9);
01AE 29E0 ldi R18,9
01B0 01E0 ldi R16,1
01B2 0E940000 xcall _LCD_Cursor
01B6 .dbline 69
01B6 ; LCD_DisplayCharacter(ASCII_T[0]); //100BIT
01B6 00910400 lds R16,_ASCII_T
01BA 0E940000 xcall _LCD_DisplayCharacter
01BE .dbline 70
01BE ; LCD_Cursor(1,10);
01BE 2AE0 ldi R18,10
01C0 01E0 ldi R16,1
01C2 0E940000 xcall _LCD_Cursor
01C6 .dbline 71
01C6 ; LCD_DisplayCharacter(ASCII_T[1]); //10BIT
01C6 00910500 lds R16,_ASCII_T+1
01CA 0E940000 xcall _LCD_DisplayCharacter
01CE .dbline 72
01CE ; LCD_Cursor(1,11);
01CE 2BE0 ldi R18,11
01D0 01E0 ldi R16,1
01D2 0E940000 xcall _LCD_Cursor
01D6 .dbline 73
01D6 ; LCD_DisplayCharacter(ASCII_T[2]); //1BIT
01D6 00910600 lds R16,_ASCII_T+2
01DA 0E940000 xcall _LCD_DisplayCharacter
01DE .dbline 74
01DE ; LCD_Cursor(1,12);
01DE 2CE0 ldi R18,12
01E0 01E0 ldi R16,1
01E2 0E940000 xcall _LCD_Cursor
01E6 .dbline 75
01E6 ; LCD_DisplayCharacter('.');// . BIT
01E6 0EE2 ldi R16,46
01E8 0E940000 xcall _LCD_DisplayCharacter
01EC .dbline 76
01EC ; LCD_Cursor(1,13);
01EC 2DE0 ldi R18,13
01EE 01E0 ldi R16,1
01F0 0E940000 xcall _LCD_Cursor
01F4 .dbline 77
01F4 ; LCD_DisplayCharacter(ASCII_T[0]);//0.1BIT
01F4 00910400 lds R16,_ASCII_T
01F8 0E940000 xcall _LCD_DisplayCharacter
01FC .dbline 78
01FC ; LCD_Cursor(1,14);
01FC 2EE0 ldi R18,14
01FE 01E0 ldi R16,1
0200 0E940000 xcall _LCD_Cursor
0204 .dbline 79
0204 ; LCD_DisplayCharacter('`'); //UNIT
0204 00E6 ldi R16,96
0206 0E940000 xcall _LCD_DisplayCharacter
020A .dbline 80
020A ; LCD_DisplayCharacter('C'); //UNIT
020A 03E4 ldi R16,67
020C .dbline -2
020C .dbline 81
020C ; }
020C L3:
020C .dbline 0 ; func end
020C 0C940000 xjmp _LCD_DisplayCharacter
0210 .dbend
0210 .dbfunc e main _main fV
.even
0210 _main::
0210 2297 sbiw R28,2
0212 .dbline -1
0212 .dbline 84
0212 ;
0212 ; void main(void)
0212 ; { //initial and the picture of starting work
0212 .dbline 85
0212 ; init_devices();
0212 04DF xcall _init_devices
0214 .dbline 86
0214 ; LCD_DisplayString(1,2,"NOW");
0214 80E0 ldi R24,<L14
0216 90E0 ldi R25,>L14
0218 9983 std y+1,R25
021A 8883 std y+0,R24
021C 22E0 ldi R18,2
021E 01E0 ldi R16,1
0220 0E940000 xcall _LCD_DisplayString
0224 .dbline 87
0224 ; LCD_DisplayString(2,1," ULTRASONIC ");
0224 80E0 ldi R24,<L15
0226 90E0 ldi R25,>L15
0228 9983 std y+1,R25
022A 8883 std y+0,R24
022C 21E0 ldi R18,1
022E 02E0 ldi R16,2
0230 0E940000 xcall _LCD_DisplayString
0234 .dbline 88
0234 ; display_temprature();
0234 00DF xcall _display_temprature
0236 .dbline 89
0236 ; delay_nms(3000);
0236 08EB ldi R16,3000
0238 1BE0 ldi R17,11
023A 0E940000 xcall _delay_nms
023E .dbline 90
023E ; ClearLine(2);
023E 02E0 ldi R16,2
0240 0E940000 xcall _ClearLine
0244 1FC0 xjmp L17
0246 L16:
0246 .dbline 92
0246 .dbline 93
0246 F7DE xcall _display_temprature
0248 .dbline 95
0248 80E0 ldi R24,<L19
024A 90E0 ldi R25,>L19
024C 9983 std y+1,R25
024E 8883 std y+0,R24
0250 21E0 ldi R18,1
0252 01E0 ldi R16,1
0254 0E940000 xcall _LCD_DisplayString
0258 .dbline 96
0258 2224 clr R2
025A 29BE out 0x39,R2
025C .dbline 97
025C 00E1 ldi R16,16
025E 10E0 ldi R17,0
0260 0E940000 xcall _pwm_40KHz
0264 .dbline 98
0264 0E940000 xcall _timer1_start
0268 .dbline 99
0268 08E0 ldi R16,8
026A 10E0 ldi R17,0
026C 0E940000 xcall _pwm_20KHz
0270 .dbline 100
0270 05E0 ldi R16,5
0272 10E0 ldi R17,0
0274 0E940000 xcall _delay_nms
0278 .dbline 101
0278 84E2 ldi R24,36
027A 89BF out 0x39,R24
027C .dbline 102
027C 08EC ldi R16,200
027E 10E0 ldi R17,0
0280 0E940000 xcall _delay_nms
0284 .dbline 103
0284 L17:
0284 .dbline 91
0284 E0CF xjmp L16
0286 X0:
0286 .dbline -2
0286 .dbline 104
0286 ; while(1)
0286 ; {
0286 ; display_temprature();
0286 ;
0286 ; LCD_DisplayString(1,1,"40KHz");
0286 ; TIMSK = 0x00; //delay for voiding self noise
0286 ; pwm_40KHz(16);
0286 ; timer1_start();
0286 ; pwm_20KHz(8);
0286 ; delay_nms(5);//lenth shoud far more than 1m for self noise
0286 ; TIMSK = 0x24; //OVR(0x04)+ICP(0x20) interrupt sources
0286 ; delay_nms(200);// one frush per second
0286 ; }
0286 ; }
0286 L13:
0286 2296 adiw R28,2
0288 .dbline 0 ; func end
0288 0895 ret
028A .dbend
.area bss(ram, con, rel)
0000 .dbfile D:\NEW\ECHO\main.c
0000 _speed::
0000 .blkb 2
0002 .dbfile D:\NEW\ECHO/main.h
0002 .dbsym e speed _speed i
0002 _temprature_flag::
0002 .blkb 1
0003 .dbsym e temprature_flag _temprature_flag c
0003 _temprature::
0003 .blkb 2
0005 .dbsym e temprature _temprature i
.area data(ram, con, rel)
0008 .dbfile D:\NEW\ECHO/main.h
0008 L19:
0008 .blkb 6
.area idata
0008 34304B487A00 .byte 52,48,'K,'H,'z,0
.area data(ram, con, rel)
000E .dbfile D:\NEW\ECHO/main.h
000E L15:
000E .blkb 14
.area idata
000E 2020554C545241534F4E49432000 .byte 32,32,'U,'L,'T,'R,'A,'S,'O,'N,'I,'C,32,0
.area data(ram, con, rel)
001C .dbfile D:\NEW\ECHO/main.h
001C L14:
001C .blkb 4
.area idata
001C 4E4F5700 .byte 'N,'O,'W,0
.area data(ram, con, rel)
0020 .dbfile D:\NEW\ECHO/main.h
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -