📄 main.lis
字号:
0050 _uart1_init::
0050 .dbline -1
0050 .dbline 93
0050 ; //all peripherals are now initialized
0050 ; }
0050 ; //UART1 initialize
0050 ; // desired baud rate:19200
0050 ; // actual baud rate:19231 (0.2%)
0050 ; void uart1_init(void)
0050 ; {
0050 .dbline 94
0050 ; UCSR1B = 0x00; //disable while setting baud rate
0050 2224 clr R2
0052 20929A00 sts 154,R2
0056 .dbline 95
0056 ; UCSR1A = 0x00;
0056 20929B00 sts 155,R2
005A .dbline 96
005A ; UCSR1C = 0x06;
005A 86E0 ldi R24,6
005C 80939D00 sts 157,R24
0060 .dbline 97
0060 ; UBRR1L = 0x40; //set baud rate lo
0060 80E4 ldi R24,64
0062 80939900 sts 153,R24
0066 .dbline 98
0066 ; UBRR1H = 0x00; //set baud rate hi
0066 20929800 sts 152,R2
006A .dbline 99
006A ; UCSR1B = 0x98;
006A 88E9 ldi R24,152
006C 80939A00 sts 154,R24
0070 .dbline -2
0070 L3:
0070 .dbline 0 ; func end
0070 0895 ret
0072 .dbend
.area vector(rom, abs)
.org 120
0078 0C943900 jmp _uart1_rx_isr
.area text(rom, con, rel)
0072 .dbfile D:\PROTEU~1.7\PROTEU~1.7\JOHU\1视频处理\fang__2\main.c
0072 .dbfunc e uart1_rx_isr _uart1_rx_isr fV
.even
0072 _uart1_rx_isr::
0072 0A92 st -y,R0
0074 1A92 st -y,R1
0076 2A92 st -y,R2
0078 3A92 st -y,R3
007A 4A92 st -y,R4
007C 5A92 st -y,R5
007E 0A93 st -y,R16
0080 1A93 st -y,R17
0082 2A93 st -y,R18
0084 3A93 st -y,R19
0086 8A93 st -y,R24
0088 9A93 st -y,R25
008A EA93 st -y,R30
008C FA93 st -y,R31
008E 0FB6 in R0,0x3f
0090 0A92 st -y,R0
0092 0E940000 xcall push_gset2
0096 .dbline -1
0096 .dbline 105
0096 ; }
0096 ;
0096 ; #pragma interrupt_handler uart1_rx_isr:31
0096 ; //cir+00100
0096 ; void uart1_rx_isr(void)
0096 ; {
0096 .dbline 107
0096 ; //uart has received a character in UDR
0096 ; if (all==CIR)
0096 80911400 lds R24,_all
009A 8130 cpi R24,1
009C 09F0 breq X2
009E B8C0 xjmp L5
00A0 X2:
00A0 .dbline 108
00A0 ; {
00A0 .dbline 109
00A0 ; a=b;
00A0 20901600 lds R2,_b
00A4 20921500 sts _a,R2
00A8 .dbline 110
00A8 ; b=c;
00A8 20901700 lds R2,_c
00AC 20921600 sts _b,R2
00B0 .dbline 111
00B0 ; c=d;
00B0 20901800 lds R2,_d
00B4 20921700 sts _c,R2
00B8 .dbline 112
00B8 ; d=e;
00B8 20901900 lds R2,_e
00BC 20921800 sts _d,R2
00C0 .dbline 113
00C0 ; e=f;
00C0 20901A00 lds R2,_f
00C4 20921900 sts _e,R2
00C8 .dbline 114
00C8 ; f=UDR1;
00C8 20909C00 lds R2,156
00CC 20921A00 sts _f,R2
00D0 .dbline 115
00D0 822D mov R24,R2
00D2 8033 cpi R24,48
00D4 18F0 brlo L9
00D6 89E3 ldi R24,57
00D8 8215 cp R24,R2
00DA 08F4 brsh L7
00DC L9:
00DC .dbline 115
00DC ; if ((f<'0')||(f>'9'))return;
00DC D9C1 xjmp L4
00DE L7:
00DE .dbline 116
00DE ; if (a=='+')//0x2b
00DE 80911500 lds R24,_a
00E2 8B32 cpi R24,43
00E4 09F0 breq X3
00E6 41C0 xjmp L10
00E8 X3:
00E8 .dbline 117
00E8 ; {jiaodu=(b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48);
00E8 .dbline 117
00E8 20911700 lds R18,_c
00EC 3327 clr R19
00EE 08EE ldi R16,1000
00F0 13E0 ldi R17,3
00F2 0E940000 xcall empy16s
00F6 C801 movw R24,R16
00F8 8058 subi R24,128
00FA 9B4B sbci R25,187
00FC 20911600 lds R18,_b
0100 3327 clr R19
0102 00E1 ldi R16,10000
0104 17E2 ldi R17,39
0106 0E940000 xcall empy16s
010A F801 movw R30,R16
010C E050 subi R30,0
010E F345 sbci R31,83
0110 E80F add R30,R24
0112 F91F adc R31,R25
0114 20901800 lds R2,_d
0118 84E6 ldi R24,100
011A 829D mul R24,R2
011C C001 movw R24,R0
011E 805C subi R24,192
0120 9241 sbci R25,18
0122 E80F add R30,R24
0124 F91F adc R31,R25
0126 20901900 lds R2,_e
012A 8AE0 ldi R24,10
012C 829D mul R24,R2
012E C001 movw R24,R0
0130 805E subi R24,224
0132 9140 sbci R25,1
0134 E80F add R30,R24
0136 F91F adc R31,R25
0138 80911A00 lds R24,_f
013C 9927 clr R25
013E C097 sbiw R24,48
0140 E80F add R30,R24
0142 F91F adc R31,R25
0144 1F01 movw R2,R30
0146 4424 clr R4
0148 37FC sbrc R3,7
014A 4094 com R4
014C 5524 clr R5
014E 47FC sbrc R4,7
0150 5094 com R5
0152 30921C00 sts _jiaodu+1,R3
0156 20921B00 sts _jiaodu,R2
015A 50921E00 sts _jiaodu+2+1,R5
015E 40921D00 sts _jiaodu+2,R4
0162 .dbline 118
0162 ; all=0;return;}
0162 2224 clr R2
0164 20921400 sts _all,R2
0168 .dbline 118
0168 93C1 xjmp L4
016A L10:
016A .dbline 119
016A ; else if (a=='-')//0x2d
016A 80911500 lds R24,_a
016E 8D32 cpi R24,45
0170 09F0 breq X4
0172 45C0 xjmp L12
0174 X4:
0174 .dbline 120
0174 ; {jiaodu=-((b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48));
0174 .dbline 120
0174 20911700 lds R18,_c
0178 3327 clr R19
017A 08EE ldi R16,1000
017C 13E0 ldi R17,3
017E 0E940000 xcall empy16s
0182 C801 movw R24,R16
0184 8058 subi R24,128
0186 9B4B sbci R25,187
0188 20911600 lds R18,_b
018C 3327 clr R19
018E 00E1 ldi R16,10000
0190 17E2 ldi R17,39
0192 0E940000 xcall empy16s
0196 F801 movw R30,R16
0198 E050 subi R30,0
019A F345 sbci R31,83
019C E80F add R30,R24
019E F91F adc R31,R25
01A0 20901800 lds R2,_d
01A4 84E6 ldi R24,100
01A6 829D mul R24,R2
01A8 C001 movw R24,R0
01AA 805C subi R24,192
01AC 9241 sbci R25,18
01AE E80F add R30,R24
01B0 F91F adc R31,R25
01B2 20901900 lds R2,_e
01B6 8AE0 ldi R24,10
01B8 829D mul R24,R2
01BA C001 movw R24,R0
01BC 805E subi R24,224
01BE 9140 sbci R25,1
01C0 E80F add R30,R24
01C2 F91F adc R31,R25
01C4 80911A00 lds R24,_f
01C8 9927 clr R25
01CA C097 sbiw R24,48
01CC E80F add R30,R24
01CE F91F adc R31,R25
01D0 E095 com R30
01D2 F095 com R31
01D4 EF5F subi R30,0xFF
01D6 FF4F sbci R31,0xFF
01D8 1F01 movw R2,R30
01DA 4424 clr R4
01DC 37FC sbrc R3,7
01DE 4094 com R4
01E0 5524 clr R5
01E2 47FC sbrc R4,7
01E4 5094 com R5
01E6 30921C00 sts _jiaodu+1,R3
01EA 20921B00 sts _jiaodu,R2
01EE 50921E00 sts _jiaodu+2+1,R5
01F2 40921D00 sts _jiaodu+2,R4
01F6 .dbline 121
01F6 ; all=0;return;}
01F6 2224 clr R2
01F8 20921400 sts _all,R2
01FC .dbline 121
01FC 49C1 xjmp L4
01FE L12:
01FE .dbline 122
01FE ; if (a!=0) {all=0;return;}
01FE 20901500 lds R2,_a
0202 2220 tst R2
0204 09F4 brne X5
0206 44C1 xjmp L6
0208 X5:
0208 .dbline 122
0208 .dbline 122
0208 2224 clr R2
020A 20921400 sts _all,R2
020E .dbline 122
020E 40C1 xjmp L4
0210 X0:
0210 .dbline 124
0210 ; //PORTF=jiaodu;//while(1);
0210 ; }
0210 L5:
0210 .dbline 125
0210 ; else if (all==LINE)
0210 80911400 lds R24,_all
0214 8230 cpi R24,2
0216 09F0 breq X6
0218 B8C0 xjmp L16
021A X6:
021A .dbline 126
021A ; {
021A .dbline 127
021A ; a=b;
021A 20901600 lds R2,_b
021E 20921500 sts _a,R2
0222 .dbline 128
0222 ; b=c;
0222 20901700 lds R2,_c
0226 20921600 sts _b,R2
022A .dbline 129
022A ; c=d;
022A 20901800 lds R2,_d
022E 20921700 sts _c,R2
0232 .dbline 130
0232 ; d=e;
0232 20901900 lds R2,_e
0236 20921800 sts _d,R2
023A .dbline 131
023A ; e=f;
023A 20901A00 lds R2,_f
023E 20921900 sts _e,R2
0242 .dbline 132
0242 ; f=UDR1;
0242 20909C00 lds R2,156
0246 20921A00 sts _f,R2
024A .dbline 133
024A 822D mov R24,R2
024C 8033 cpi R24,48
024E 18F0 brlo L20
0250 89E3 ldi R24,57
0252 8215 cp R24,R2
0254 08F4 brsh L18
0256 L20:
0256 .dbline 133
0256 ; if ((f<'0')||(f>'9'))return;
0256 1CC1 xjmp L4
0258 L18:
0258 .dbline 134
0258 ; if (a=='+')
0258 80911500 lds R24,_a
025C 8B32 cpi R24,43
025E 09F0 breq X7
0260 41C0 xjmp L21
0262 X7:
0262 .dbline 135
0262 ; {juli=(b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48);
0262 .dbline 135
0262 20911700 lds R18,_c
0266 3327 clr R19
0268 08EE ldi R16,1000
026A 13E0 ldi R17,3
026C 0E940000 xcall empy16s
0270 C801 movw R24,R16
0272 8058 subi R24,128
0274 9B4B sbci R25,187
0276 20911600 lds R18,_b
027A 3327 clr R19
027C 00E1 ldi R16,10000
027E 17E2 ldi R17,39
0280 0E940000 xcall empy16s
0284 F801 movw R30,R16
0286 E050 subi R30,0
0288 F345 sbci R31,83
028A E80F add R30,R24
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -