📄 11.lis
字号:
00C8 1AC0 rjmp L10
00CA L12:
00CA .dbline 92
00CA ; else
00CA ; PORTB = 0XFB;
00CA 8BEF ldi R24,251
00CC 85B9 out 0x5,R24
00CE .dbline 93
00CE ; }
00CE 17C0 rjmp L10
00D0 L9:
00D0 .dbline 95
00D0 ; else
00D0 ; {
00D0 .dbline 96
00D0 ; i = com;
00D0 AB01 movw R20,R22
00D2 .dbline 97
00D2 ; if(i > adc[2])
00D2 20900400 lds R2,_adc+4
00D6 30900500 lds R3,_adc+4+1
00DA 2616 cp R2,R22
00DC 3706 cpc R3,R23
00DE 18F4 brsh L14
00E0 .dbline 98
00E0 ; PORTB = 0XFD;
00E0 8DEF ldi R24,253
00E2 85B9 out 0x5,R24
00E4 0CC0 rjmp L15
00E6 L14:
00E6 .dbline 100
00E6 ; else
00E6 ; {
00E6 .dbline 101
00E6 ; if(i>adc[3])
00E6 20900600 lds R2,_adc+6
00EA 30900700 lds R3,_adc+6+1
00EE 2416 cp R2,R20
00F0 3506 cpc R3,R21
00F2 18F4 brsh L17
00F4 .dbline 102
00F4 ; PORTB = 0XFE;
00F4 8EEF ldi R24,254
00F6 85B9 out 0x5,R24
00F8 02C0 rjmp L18
00FA L17:
00FA .dbline 104
00FA ; else
00FA ; PORTB = 0XFF;
00FA 8FEF ldi R24,255
00FC 85B9 out 0x5,R24
00FE L18:
00FE .dbline 105
00FE ; }
00FE L15:
00FE .dbline 106
00FE ; }
00FE L10:
00FE .dbline 107
00FE L7:
00FE .dbline 83
00FE 20900200 lds R2,_bjz
0102 30900300 lds R3,_bjz+1
0106 2616 cp R2,R22
0108 3706 cpc R3,R23
010A 51F6 brne L6
010C .dbline -2
010C L5:
010C 00D0 rcall pop_gset2
010E .dbline 0 ; func end
010E 0895 ret
0110 .dbsym r i 20 i
0110 .dbsym r com 22 i
0110 .dbend
0110 .dbfunc e delay_us _delay_us fV
0110 ; time -> R16,R17
.even
0110 _delay_us::
0110 .dbline -1
0110 .dbline 111
0110 ; }
0110 ; }
0110 ;
0110 ; void delay_us(int time)
0110 ; { //微秒延时
0110 L21:
0110 .dbline 113
0110 ; do
0110 ; {
0110 .dbline 114
0110 ; time--;
0110 0150 subi R16,1
0112 1040 sbci R17,0
0114 .dbline 115
0114 ; }
0114 L22:
0114 .dbline 116
0114 ; while (time>1);
0114 81E0 ldi R24,1
0116 90E0 ldi R25,0
0118 8017 cp R24,R16
011A 9107 cpc R25,R17
011C CCF3 brlt L21
011E .dbline -2
011E L20:
011E .dbline 0 ; func end
011E 0895 ret
0120 .dbsym r time 16 I
0120 .dbend
0120 .dbfunc e delay_ms _delay_ms fV
0120 ; time -> R20,R21
.even
0120 _delay_ms::
0120 00D0 rcall push_gset1
0122 A801 movw R20,R16
0124 .dbline -1
0124 .dbline 120
0124 ; }
0124 ;
0124 ; void delay_ms(unsigned int time)
0124 ; { //毫秒延时
0124 05C0 rjmp L26
0126 L25:
0126 .dbline 122
0126 .dbline 123
0126 08EE ldi R16,1000
0128 13E0 ldi R17,3
012A F2DF rcall _delay_us
012C .dbline 124
012C 4150 subi R20,1
012E 5040 sbci R21,0
0130 .dbline 125
0130 L26:
0130 .dbline 121
0130 ; while(time!=0)
0130 4030 cpi R20,0
0132 4507 cpc R20,R21
0134 C1F7 brne L25
0136 X0:
0136 .dbline -2
0136 L24:
0136 00D0 rcall pop_gset1
0138 .dbline 0 ; func end
0138 0895 ret
013A .dbsym r time 20 i
013A .dbend
013A .dbfunc e alarm _alarm fV
.even
013A _alarm::
013A .dbline -1
013A .dbline 131
013A ; {
013A ; delay_us(1000);
013A ; time--;
013A ; }
013A ; }
013A ;
013A ;
013A ; /*报警函数*/
013A ; void alarm(void)
013A ; {
013A 15C0 rjmp L30
013C L29:
013C .dbline 132
013C ; while(1){
013C .dbline 134
013C ; //i=PIND&0x04; //读出PD2口状态
013C ; if(adc_old >= adc[0])
013C 20900000 lds R2,_adc
0140 30900100 lds R3,_adc+1
0144 40900400 lds R4,_adc_old
0148 50900500 lds R5,_adc_old+1
014C 4214 cp R4,R2
014E 5304 cpc R5,R3
0150 40F0 brlo L32
0152 .dbline 135
0152 ; {PORTD^=0x08;
0152 .dbline 135
0152 88E0 ldi R24,8
0154 2BB0 in R2,0xb
0156 2826 eor R2,R24
0158 2BB8 out 0xb,R2
015A .dbline 136
015A ; delay_ms(100);
015A 04E6 ldi R16,100
015C 10E0 ldi R17,0
015E E0DF rcall _delay_ms
0160 .dbline 137
0160 ; }
0160 02C0 rjmp L33
0162 L32:
0162 .dbline 139
0162 ; else
0162 ; PORTD=0XFF;
0162 8FEF ldi R24,255
0164 8BB9 out 0xb,R24
0166 L33:
0166 .dbline 140
0166 L30:
0166 .dbline 132
0166 EACF rjmp L29
0168 X1:
0168 .dbline -2
0168 L28:
0168 .dbline 0 ; func end
0168 0895 ret
016A .dbend
016A .dbfunc e main _main fV
.even
016A _main::
016A .dbline -1
016A .dbline 144
016A ; }
016A ; }
016A ;
016A ; void main()
016A ; {
016A .dbline 145
016A ; init_devices();
016A 7DDF rcall _init_devices
016C 15C0 rjmp L36
016E L35:
016E .dbline 146
016E ; while(1){
016E .dbline 147
016E ; if(adc_w != adc_old){
016E 20900400 lds R2,_adc_old
0172 30900500 lds R3,_adc_old+1
0176 40900600 lds R4,_adc_w
017A 50900700 lds R5,_adc_w+1
017E 4214 cp R4,R2
0180 5304 cpc R5,R3
0182 51F0 breq L38
0184 .dbline 147
0184 .dbline 148
0184 ; adc_old = adc_w;
0184 1201 movw R2,R4
0186 30920500 sts _adc_old+1,R3
018A 20920400 sts _adc_old,R2
018E .dbline 149
018E ; display(adc_old);
018E 00910400 lds R16,_adc_old
0192 10910500 lds R17,_adc_old+1
0196 81DF rcall _display
0198 .dbline 150
0198 ; }
0198 L38:
0198 .dbline 151
0198 L36:
0198 .dbline 146
0198 EACF rjmp L35
019A X2:
019A .dbline -2
019A L34:
019A .dbline 0 ; func end
019A 0895 ret
019C .dbend
.area bss(ram, con, rel)
0000 .dbfile D:\xij\demo\demo_diy02-8a\1\C语言\02-8a-11\11.c
0000 _ad_low::
0000 .blkb 1
0001 .dbsym e ad_low _ad_low c
0001 _ad_high::
0001 .blkb 1
0002 .dbsym e ad_high _ad_high c
0002 _bjz::
0002 .blkb 2
0004 .dbsym e bjz _bjz i
0004 _adc_old::
0004 .blkb 2
0006 .dbsym e adc_old _adc_old i
0006 _adc_w::
0006 .blkb 2
0008 .dbsym e adc_w _adc_w i
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -