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

📄 cscj_timer1_cd.lis

📁 超声测距c语言程序 利用定时器产生40khz站空比50 的方波 通过检测收到超声波的时间来测距
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 0136                   .dbsym r str 20 pc
 0136                   .dbsym r y 22 c
 0136                   .dbsym r x 10 c
 0136                   .dbend
 0136                   .dbfunc e lcd_write _lcd_write fV
 0136           ;            str -> R20,R21
                        .even
 0136           _lcd_write::
 0136 0E940000          xcall push_gset1
 013A A801              movw R20,R16
 013C                   .dbline -1
 013C                   .dbline 112
 013C           ;       TCNT1H=0xFF;//  设置计数初值  每一微秒进入定时器中断处理子函数 使aa加1
 013C           ;     TCNT1L=0xAC;//
 013C           ;       TIMSK&=~BIT(2);
 013C 05C0              xjmp L25
 013E           L24:
 013E                   .dbline 114
 013E                   .dbline 115
 013E FA01              movw R30,R20
 0140 0081              ldd R16,z+0
 0142 AFDF              xcall _write_data
 0144                   .dbline 116
 0144 4F5F              subi R20,255  ; offset = 1
 0146 5F4F              sbci R21,255
 0148                   .dbline 117
 0148           L25:
 0148                   .dbline 113
 0148           ; }
 0148 FA01              movw R30,R20
 014A 2080              ldd R2,z+0
 014C 2220              tst R2
 014E B9F7              brne L24
 0150                   .dbline -2
 0150                   .dbline 118
 0150           ; 
 0150           ; void main()
 0150           ; {
 0150           ;    uchar i;
 0150           ;    DDRA=0XFF;
 0150           L23:
 0150 0E940000          xcall pop_gset1
 0154                   .dbline 0 ; func end
 0154 0895              ret
 0156                   .dbsym r str 20 pc
 0156                   .dbend
 0156                   .dbfunc e display _display fV
                        .even
 0156           _display::
 0156                   .dbline -1
 0156                   .dbline 124
 0156           ;    PORTA=0X44;
 0156           ;    int2_init();
 0156           ;    timer1_init();
 0156           ;    timer0_init();
 0156           ;    lcd12864_init();
 0156           ;    line1 = "检测到障碍物";
 0156                   .dbline 125
 0156           ;    line2 = "  距离:";
 0156 00E8              ldi R16,128
 0158 8FDF              xcall _write_com
 015A 0FC0              xjmp L29
 015C           L28:
 015C                   .dbline 127
 015C                   .dbline 128
 015C E0910600          lds R30,_line1
 0160 F0910700          lds R31,_line1+1
 0164 0081              ldd R16,z+0
 0166 9DDF              xcall _write_data
 0168                   .dbline 129
 0168 80910600          lds R24,_line1
 016C 90910700          lds R25,_line1+1
 0170 0196              adiw R24,1
 0172 90930700          sts _line1+1,R25
 0176 80930600          sts _line1,R24
 017A                   .dbline 130
 017A           L29:
 017A                   .dbline 126
 017A           ;    DDRB|=BIT(PB4);
 017A E0910600          lds R30,_line1
 017E F0910700          lds R31,_line1+1
 0182 2080              ldd R2,z+0
 0184 2220              tst R2
 0186 51F7              brne L28
 0188                   .dbline 132
 0188           ;    TIMSK|=BIT(2);
 0188           ;    while(1)
 0188           ;    {
 0188           ;       if(flag==1)
 0188           ;         {
 0188           ;           flag=0;
 0188 00E9              ldi R16,144
 018A 76DF              xcall _write_com
 018C 0FC0              xjmp L32
 018E           L31:
 018E                   .dbline 134
 018E                   .dbline 135
 018E E0910400          lds R30,_line2
 0192 F0910500          lds R31,_line2+1
 0196 0081              ldd R16,z+0
 0198 84DF              xcall _write_data
 019A                   .dbline 136
 019A 80910400          lds R24,_line2
 019E 90910500          lds R25,_line2+1
 01A2 0196              adiw R24,1
 01A4 90930500          sts _line2+1,R25
 01A8 80930400          sts _line2,R24
 01AC                   .dbline 137
 01AC           L32:
 01AC                   .dbline 133
 01AC           ;               line1 = "检测到障碍物";
 01AC E0910400          lds R30,_line2
 01B0 F0910500          lds R31,_line2+1
 01B4 2080              ldd R2,z+0
 01B6 2220              tst R2
 01B8 51F7              brne L31
 01BA                   .dbline 152
 01BA           ;         line2 = "  距离:";
 01BA           ;           display();
 01BA           ;               PORTA=0x77;
 01BA           ;               
 01BA           ;               write_com(0x94);
 01BA           ;           write_data((s%1000/100)+0x30);
 01BA           ;           write_data((s%100/10)+0x30);
 01BA           ;           write_data((s%10)+0x30);
 01BA           ;               lcd_write("mm");
 01BA           ;               delayms(500);
 01BA           ;               PORTA=0X00;
 01BA           ;               aa=0;
 01BA           ;               TCNT1H=0xff;//
 01BA           ;         TCNT1L=0xac;//
 01BA           ;               DDRB|=BIT(PB4);
 01BA           ;         TIMSK|=BIT(2);
 01BA           ;         }
 01BA           ;       if(flag==0)
 01BA           ;         {
 01BA 80E0              ldi R24,<L34
 01BC 90E0              ldi R25,>L34
 01BE 90930700          sts _line1+1,R25
 01C2 80930600          sts _line1,R24
 01C6                   .dbline 153
 01C6           ;           clear_dis();
 01C6 90930500          sts _line2+1,R25
 01CA 80930400          sts _line2,R24
 01CE                   .dbline 154
 01CE           ;         }
 01CE 90930300          sts _line3+1,R25
 01D2 80930200          sts _line3,R24
 01D6                   .dbline 155
 01D6           ;    }
 01D6 90930100          sts _line4+1,R25
 01DA 80930000          sts _line4,R24
 01DE                   .dbline -2
 01DE                   .dbline 156
 01DE           ; }
 01DE           L27:
 01DE                   .dbline 0 ; func end
 01DE 0895              ret
 01E0                   .dbend
 01E0                   .dbfunc e clear_disp_pic _clear_disp_pic fV
 01E0           ;              j -> R20
 01E0           ;              i -> R22
                        .even
 01E0           _clear_disp_pic::
 01E0 0E940000          xcall push_gset2
 01E4                   .dbline -1
 01E4                   .dbline 164
 01E4           ; }
 01E4           ; }
 01E4           ; }
 01E4           ; }
 01E4           ; }
 01E4           ; }
 01E4           ; }
 01E4           ; }
 01E4                   .dbline 165
 01E4           ; }
 01E4 4427              clr R20
 01E6                   .dbline 166
 01E6           ; }
 01E6 14C0              xjmp L39
 01E8           L36:
 01E8                   .dbline 167
 01E8           ; }
 01E8                   .dbline 168
 01E8           ; }
 01E8 6627              clr R22
 01EA 0FC0              xjmp L43
 01EC           L40:
 01EC                   .dbline 169
 01EC                   .dbline 170
 01EC 04E3              ldi R16,52
 01EE 44DF              xcall _write_com
 01F0                   .dbline 171
 01F0 042F              mov R16,R20
 01F2 0058              subi R16,128    ; addi 128
 01F4 41DF              xcall _write_com
 01F6                   .dbline 172
 01F6 062F              mov R16,R22
 01F8 0058              subi R16,128    ; addi 128
 01FA 3EDF              xcall _write_com
 01FC                   .dbline 173
 01FC 00E3              ldi R16,48
 01FE 3CDF              xcall _write_com
 0200                   .dbline 174
 0200 0027              clr R16
 0202 4FDF              xcall _write_data
 0204                   .dbline 175
 0204 0027              clr R16
 0206 4DDF              xcall _write_data
 0208                   .dbline 176
 0208           L41:
 0208                   .dbline 168
 0208 6395              inc R22
 020A           L43:
 020A                   .dbline 168
 020A 6031              cpi R22,16
 020C 78F3              brlo L40
 020E                   .dbline 177
 020E           L37:
 020E                   .dbline 166
 020E 4395              inc R20
 0210           L39:
 0210                   .dbline 166
 0210 4032              cpi R20,32
 0212 50F3              brlo L36
 0214                   .dbline -2
 0214                   .dbline 178
 0214           ; }
 0214           ; }
 0214           ; }
 0214           ; }
 0214           ; }
 0214           ; }
 0214           ; }
 0214           ; }
 0214           ; }
 0214           ; }
 0214           L35:
 0214 0E940000          xcall pop_gset2
 0218                   .dbline 0 ; func end
 0218 0895              ret
 021A                   .dbsym r j 20 c
 021A                   .dbsym r i 22 c
 021A                   .dbend
 021A                   .dbfunc e disp_pic _disp_pic fV
 021A           ;              j -> R20
 021A           ;              i -> R22
 021A           ;            img -> R10,R11
                        .even
 021A           _disp_pic::
 021A 0E940000          xcall push_gset3
 021E 5801              movw R10,R16
 0220                   .dbline -1
 0220                   .dbline 184
 0220           ; }
 0220           ; }
 0220           ; }
 0220           ; }
 0220           ; }
 0220           ; }
 0220                   .dbline 186
 0220           ; }
 0220           ; }
 0220 4427              clr R20
 0222 29C0              xjmp L48
 0224           L45:
 0224                   .dbline 187
 0224           ; }
 0224                   .dbline 188
 0224           ; }
 0224 6627              clr R22
 0226 24C0              xjmp L52
 0228           L49:
 0228                   .dbline 189
 0228                   .dbline 190
 0228 04E3              ldi R16,52
 022A 26DF              xcall _write_com
 022C                   .dbline 191
 022C 042F              mov R16,R20
 022E 0058              subi R16,128    ; addi 128
 0230 23DF              xcall _write_com
 0232                   .dbline 192
 0232 062F              mov R16,R22
 0234 0058              subi R16,128    ; addi 128
 0236 20DF              xcall _write_com
 0238                   .dbline 193
 0238 00E3              ldi R16,48
 023A 1EDF              xcall _write_com
 023C                   .dbline 194
 023C 82E0              ldi R24,2
 023E 869F              mul R24,R22
 0240 1001              movw R2,R0
 0242 80E1              ldi R24,16
 0244 849F              mul R24,R20
 0246 F001              movw R30,R0
 0248 E20D              add R30,R2
 024A F31D              adc R31,R3
 024C EA0D              add R30,R10
 024E FB1D              adc R31,R11
 0250 0491              lpm R16,Z
 0252 27DF              xcall _write_data
 0254                   .dbline 195
 0254 82E0              ldi R24,2
 0256 869F              mul R24,R22
 0258 1001              movw R2,R0
 025A 80E1              ldi R24,16
 025C 849F              mul R24,R20
 025E F001              movw R30,R0
 0260 E20D              add R30,R2
 0262 F31D              adc R31,R3
 0264 EA0D              add R30,R10
 0266 FB1D              adc R31,R11
 0268 3196              adiw R30,1
 026A 0491              lpm R16,Z
 026C 1ADF              xcall _write_data
 026E                   .dbline 196
 026E           L50:
 026E                   .dbline 188
 026E 6395              inc R22
 0270           L52:
 0270                   .dbline 188
 0270 6830              cpi R22,8
 0272 D0F2              brlo L49
 0274                   .dbline 197
 0274           L46:
 0274                   .dbline 186
 0274 4395              inc R20
 0276           L48:
 0276                   .dbline 186
 0276 4032              cpi R20,32
 0278 08F4              brsh X1
 027A D4CF              xjmp L45
 027C           X1:
 027C                   .dbline 198
 027C           ; }
 027C           ; }
 027C           ; }
 027C           ; }
 027C           ; }
 027C           ; }
 027C           ; }
 027C           ; }
 027C           ; }
 027C           ; }
 027C 40E2              ldi R20,32
 027E 2AC0              xjmp L56
 0280           L53:
 0280                   .dbline 199
 0280           ; }
 0280                   .dbline 200
 0280           ; }
 0280 6627              clr R22
 0282 25C0              xjmp L60
 0284           L57:
 0284                   .dbline 201
 0284                   .dbline 202
 0284 04E3              ldi R16,52
 0286 F8DE              xcall _write_com
 0288                   .dbline 203
 0288 042F              mov R16,R20
 028A 0058              subi R16,128    ; addi 128
 028C 0052              subi R16,32
 028E F4DE              xcall _write_com
 0290                   .dbline 204
 0290 062F              mov R16,R22
 0292 0857              subi R16,120    ; addi 136
 0294 F1DE              xcall _write_com
 0296                   .dbline 205
 0296 00E3              ldi R16,48
 0298 EFDE              xcall _write_com
 029A                   .dbline 206
 029A 82E0              ldi R24,2
 029C 869F              mul R24,R22
 029E 1001              movw R2,R0
 02A0 80E1              ldi R24,16
 02A2 849F              mul R24,R20
 02A4 F001              movw R30,R0
 02A6 E20D              add R30,R2
 02A8 F31D              adc R31,R3
 02AA EA0D              add R30,R10
 02AC FB1D              adc R31,R11
 02AE 0491              lpm R16,Z
 02B0 F8DE              xcall _write_data
 02B2                   .dbline 207
 02B2 82E0              ldi R24,2
 02B4 869F              mul R24,R22
 02B6 1001              movw R2,R0
 02B8 80E1              ldi R24,16

⌨️ 快捷键说明

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