📄 main.lis
字号:
00C6 .dbfunc e LCD_write_data _LCD_write_data fV
00C6 ; data -> R20
.even
00C6 _LCD_write_data::
00C6 0E940000 xcall push_gset1
00CA 402F mov R20,R16
00CC .dbline -1
00CC .dbline 95
00CC ; LCD_write_string(0,0,"Send:");
00CC ; LCD_write_string(0,1,"Rev:");
00CC ; while(1){
00CC ; send[3]=9; //更新发件箱的数据(测试代码)
00CC ; send[0]=11; //指向从机地址
00CC ; send[amount-1]=crc8(send,amount-1); //计算发件箱数据的crc8校验码
00CC .dbline 109
00CC ; usart_out(send,amount); //将发件箱的数据send[]发送出去;
00CC ; LCD_write_string(5,0,send);
00CC ; n=0; //计数复位,准备接收新数据
00CC ; delay_nms(15); //等待从机回复数据,这个时间要计算好
00CC ;
00CC ; if(n==amount && inbox[amount-1]==crc8(inbox,amount-1)) //接收正确处理与测试
00CC ; {
00CC ; PORTA|=(1<<PA1); delay_nms(10); PORTA&=~(1<<PA1);
00CC ; }
00CC ; else //接收错误处理与测试
00CC ; {
00CC ; PORTA|=(1<<PA2); delay_nms(10); PORTA&=~(1<<PA2);
00CC ; }
00CC ; }
00CC 00E1 ldi R16,16
00CE 10E0 ldi R17,0
00D0 99DF xcall _delay_nus
00D2 .dbline 110
00D2 ; }
00D2 AC9A sbi 0x15,4
00D4 .dbline 111
00D4 ; }
00D4 85B3 in R24,0x15
00D6 807F andi R24,240
00D8 85BB out 0x15,R24
00DA .dbline 112
00DA ; }
00DA 842F mov R24,R20
00DC 8295 swap R24
00DE 8F70 andi R24,#0x0F
00E0 8F70 andi R24,15
00E2 25B2 in R2,0x15
00E4 282A or R2,R24
00E6 25BA out 0x15,R2
00E8 .dbline 113
00E8 ; }
00E8 CADF xcall _LCD_en_write
00EA .dbline 115
00EA ; }
00EA ; }
00EA 85B3 in R24,0x15
00EC 807F andi R24,240
00EE 85BB out 0x15,R24
00F0 .dbline 116
00F0 ; }
00F0 842F mov R24,R20
00F2 8F70 andi R24,15
00F4 25B2 in R2,0x15
00F6 282A or R2,R24
00F8 25BA out 0x15,R2
00FA .dbline 117
00FA ; }
00FA C1DF xcall _LCD_en_write
00FC .dbline -2
00FC L20:
00FC 0E940000 xcall pop_gset1
0100 .dbline 0 ; func end
0100 0895 ret
0102 .dbsym r data 20 c
0102 .dbend
0102 .dbfunc e LCD_set_xy _LCD_set_xy fV
0102 ; address -> R20
0102 ; y -> R20
0102 ; x -> R22
.even
0102 _LCD_set_xy::
0102 0E940000 xcall push_gset2
0106 422F mov R20,R18
0108 602F mov R22,R16
010A .dbline -1
010A .dbline 124
010A ; }
010A ; }
010A ; }
010A ; }
010A ; }
010A ; }
010A ; }
010A .dbline 126
010A ; }
010A ; }
010A 4423 tst R20
010C 19F4 brne L22
010E .dbline 126
010E 462F mov R20,R22
0110 4058 subi R20,128 ; addi 128
0112 02C0 xjmp L23
0114 L22:
0114 .dbline 127
0114 ; }
0114 462F mov R20,R22
0116 4054 subi R20,64 ; addi 192
0118 L23:
0118 .dbline 128
0118 ; }
0118 042F mov R16,R20
011A B7DF xcall _LCD_write_command
011C .dbline -2
011C L21:
011C 0E940000 xcall pop_gset2
0120 .dbline 0 ; func end
0120 0895 ret
0122 .dbsym r address 20 c
0122 .dbsym r y 20 c
0122 .dbsym r x 22 c
0122 .dbend
0122 .dbfunc e LCD_write_string _LCD_write_string fV
0122 ; s -> R20,R21
0122 ; Y -> R10
0122 ; X -> R22
.even
0122 _LCD_write_string::
0122 0E940000 xcall push_gset3
0126 A22E mov R10,R18
0128 602F mov R22,R16
012A 4E81 ldd R20,y+6
012C 5F81 ldd R21,y+7
012E .dbline -1
012E .dbline 132
012E ; }
012E ; }
012E ; }
012E ; }
012E .dbline 133
012E ; }
012E 2A2D mov R18,R10
0130 062F mov R16,R22
0132 E7DF xcall _LCD_set_xy
0134 05C0 xjmp L26
0136 L25:
0136 .dbline 135
0136 .dbline 136
0136 FA01 movw R30,R20
0138 0081 ldd R16,z+0
013A C5DF xcall _LCD_write_data
013C .dbline 137
013C 4F5F subi R20,255 ; offset = 1
013E 5F4F sbci R21,255
0140 .dbline 138
0140 L26:
0140 .dbline 134
0140 ; }
0140 FA01 movw R30,R20
0142 2080 ldd R2,z+0
0144 2220 tst R2
0146 B9F7 brne L25
0148 .dbline -2
0148 L24:
0148 0E940000 xcall pop_gset3
014C .dbline 0 ; func end
014C 0895 ret
014E .dbsym r s 20 pc
014E .dbsym r Y 10 c
014E .dbsym r X 22 c
014E .dbend
014E .dbfunc e LCD_write_char _LCD_write_char fV
014E ; data -> y+4
014E ; Y -> R22
014E ; X -> R20
.even
014E _LCD_write_char::
014E 0E940000 xcall push_gset2
0152 622F mov R22,R18
0154 402F mov R20,R16
0156 .dbline -1
0156 .dbline 143
0156 ; }
0156 ; }
0156 ; }
0156 ; }
0156 ; }
0156 ; }
0156 ; }
0156 ; }
0156 ; }
0156 .dbline 144
0156 ; }
0156 262F mov R18,R22
0158 042F mov R16,R20
015A D3DF xcall _LCD_set_xy
015C .dbline 145
015C ; }
015C 0C81 ldd R16,y+4
015E B3DF xcall _LCD_write_data
0160 .dbline -2
0160 L28:
0160 0E940000 xcall pop_gset2
0164 .dbline 0 ; func end
0164 0895 ret
0166 .dbsym l data 4 c
0166 .dbsym r Y 22 c
0166 .dbsym r X 20 c
0166 .dbend
.area data(ram, con, rel)
0000 .dbfile F:\ChengXuCunFang\ChengXU\AVR单片机程序存放\max485多机通讯1\主机/1602.h
0000 _n::
0000 .blkb 1
.area idata
0000 00 .byte 0
.area data(ram, con, rel)
0001 .dbfile F:\ChengXuCunFang\ChengXU\AVR单片机程序存放\max485多机通讯1\主机/1602.h
0001 .dbfile F:\ChengXuCunFang\ChengXU\AVR单片机程序存放\max485多机通讯1\主机\main.c
0001 .dbsym e n _n c
.area text(rom, con, rel)
0166 .dbfile F:\ChengXuCunFang\ChengXU\AVR单片机程序存放\max485多机通讯1\主机\main.c
0166 .dbfunc e usart_init _usart_init fV
.even
0166 _usart_init::
0166 .dbline -1
0166 .dbline 33
0166 .dbline 34
0166 81E0 ldi R24,1
0168 8BB9 out 0xb,R24
016A .dbline 35
016A 8CE9 ldi R24,156
016C 8AB9 out 0xa,R24
016E .dbline 36
016E 86EB ldi R24,182
0170 80BD out 0x20,R24
0172 .dbline 37
0172 2224 clr R2
0174 20BC out 0x20,R2
0176 .dbline 38
0176 8FE2 ldi R24,47
0178 89B9 out 0x9,R24
017A .dbline -2
017A L29:
017A .dbline 0 ; func end
017A 0895 ret
017C .dbend
017C .dbfunc e crc8 _crc8 fc
017C ; crc -> R20
017C ; i -> R22
017C ; len -> R18
017C ; ptr -> R16,R17
.even
017C _crc8::
017C 0E940000 xcall push_gset2
0180 .dbline -1
0180 .dbline 42
0180 .dbline 44
0180 4427 clr R20
0182 20C0 xjmp L32
0184 L31:
0184 .dbline 46
0184 .dbline 47
0184 61E0 ldi R22,1
0186 1AC0 xjmp L37
0188 L34:
0188 .dbline 48
0188 .dbline 49
0188 40FF sbrs R20,0
018A 09C0 rjmp L38
018C .dbline 49
018C .dbline 49
018C 4695 lsr R20
018E .dbline 49
018E 8CE8 ldi R24,140
0190 90E0 ldi R25,0
0192 242E mov R2,R20
0194 3324 clr R3
0196 2826 eor R2,R24
0198 3926 eor R3,R25
019A 422D mov R20,R2
019C .dbline 49
019C 01C0 xjmp L39
019E L38:
019E .dbline 50
019E 4695 lsr R20
01A0 L39:
01A0 .dbline 51
01A0 F801 movw R30,R16
01A2 2080 ldd R2,z+0
01A4 2622 and R2,R22
01A6 39F0 breq L40
01A8 .dbline 51
01A8 8CE8 ldi R24,140
01AA 90E0 ldi R25,0
01AC 242E mov R2,R20
01AE 3324 clr R3
01B0 2826 eor R2,R24
01B2 3926 eor R3,R25
01B4 422D mov R20,R2
01B6 L40:
01B6 .dbline 52
01B6 L35:
01B6 .dbline 47
01B6 82E0 ldi R24,2
01B8 869F mul R24,R22
01BA 602D mov R22,R0
01BC L37:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -