📄 1.s
字号:
.module _1.c
.area data(ram, con, rel)
_disp::
.blkb 2
.area idata
.byte 192,249
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 164,176
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 153,146
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 130,248
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 128,144
.area data(ram, con, rel)
.dbfile E:\MYAVRW~1\SPI˫~2\1.c
.dbsym e disp _disp A[10:10]c
.area text(rom, con, rel)
.dbfile E:\MYAVRW~1\SPI˫~2\1.c
.dbfunc e delayms _delayms fV
; a -> R16
.even
_delayms::
.dbline -1
.dbline 6
; #include < iom16v.h>
; #include <macros.h>
; #include "lcd1602.h"
; unsigned char disp[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
; void delayms(void)
; {
.dbline 8
; char a;
; for(a=0;a<141;a++)
clr R16
xjmp L5
L2:
.dbline 9
L3:
.dbline 8
inc R16
L5:
.dbline 8
cpi R16,141
brlo L2
.dbline -2
L1:
.dbline 0 ; func end
ret
.dbsym r a 16 c
.dbend
.dbfunc e delay _delay fV
; b -> R20,R21
; a -> R22,R23
.even
_delay::
xcall push_gset2
movw R22,R16
.dbline -1
.dbline 12
; ;
; }
; void delay(int a)
; {
.dbline 14
; int b;
; for(b=0;b<a;b++)
clr R20
clr R21
xjmp L10
L7:
.dbline 15
xcall _delayms
L8:
.dbline 14
subi R20,255 ; offset = 1
sbci R21,255
L10:
.dbline 14
cp R20,R22
cpc R21,R23
brlt L7
.dbline -2
L6:
xcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r b 20 I
.dbsym r a 22 I
.dbend
.dbfunc e Spi_init _Spi_init fV
.even
_Spi_init::
.dbline -1
.dbline 18
; delayms();
; }
; void Spi_init()
; {
.dbline 19
; DDRB|=(1<<6);
sbi 0x17,6
.dbline 20
; SPCR=0xE3;
ldi R24,227
out 0xd,R24
.dbline 21
; SPSR=0x00;
clr R2
out 0xe,R2
.dbline -2
L11:
.dbline 0 ; func end
ret
.dbend
.dbfunc e main _main fV
; str -> R20,R21
.even
_main::
sbiw R28,2
.dbline -1
.dbline 25
; }
;
; void main()
; {
.dbline 26
; char *str="receive data :";
ldi R20,<L13
ldi R21,>L13
.dbline 28
;
; DDRA=0xFF;
ldi R24,255
out 0x1a,R24
.dbline 29
; PORTA=0x00;
clr R2
out 0x1b,R2
.dbline 30
; DDRB=0xFF;
out 0x17,R24
.dbline 31
; PORTB=0x00;
out 0x18,R2
.dbline 32
; DDRC=0x00;
out 0x14,R2
.dbline 33
; PORTC=0x00;
out 0x15,R2
.dbline 34
; DDRD=0x00;
out 0x11,R2
.dbline 35
; PORTD=0x00;
out 0x12,R2
.dbline 38
;
;
; SEI();
sei
.dbline 40
;
; Spi_init();
xcall _Spi_init
.dbline 42
;
; LCD_init();
xcall _LCD_init
.dbline 43
; LCD_write_str(0,0,str);
std y+1,R21
std y+0,R20
clr R18
clr R16
xcall _LCD_write_str
L14:
.dbline 47
L15:
.dbline 47
xjmp L14
X0:
.dbline -2
L12:
adiw R28,2
.dbline 0 ; func end
ret
.dbsym r str 20 pc
.dbend
.area vector(rom, abs)
.org 40
jmp _in
.area text(rom, con, rel)
.dbfile E:\MYAVRW~1\SPI˫~2\1.c
.dbfunc e in _in fV
; temp -> y+1
.even
_in::
xcall push_lset
sbiw R28,4
.dbline -1
.dbline 54
;
;
;
; while(1);
;
; }
;
;
; #pragma interrupt_handler in:11
; void in()
; {
.dbline 58
; char temp[3];
;
;
; temp[2]= (SPDR /100)%10+'0';
ldi R17,100
in R16,0xf
xcall div8u
ldi R17,10
xcall mod8u
mov R24,R16
subi R24,208 ; addi 48
std y+3,R24
.dbline 59
; temp[1] = (SPDR /10) %10+'0';
ldi R17,10
in R16,0xf
xcall div8u
ldi R17,10
xcall mod8u
mov R24,R16
subi R24,208 ; addi 48
std y+2,R24
.dbline 60
; temp[0] = (SPDR % 10)+'0';
ldi R17,10
in R16,0xf
xcall mod8u
mov R24,R16
subi R24,208 ; addi 48
std y+1,R24
.dbline 63
;
;
; LCD_write_char(11,1,temp[2]);
ldd R2,y+3
std y+0,R2
ldi R18,1
ldi R16,11
xcall _LCD_write_char
.dbline 65
;
; LCD_write_char(12,1,temp[1]);
ldd R2,y+2
std y+0,R2
ldi R18,1
ldi R16,12
xcall _LCD_write_char
.dbline 67
;
; LCD_write_char(13,1,temp[0]);
ldd R2,y+1
std y+0,R2
ldi R18,1
ldi R16,13
xcall _LCD_write_char
.dbline -2
L17:
adiw R28,4
xcall pop_lset
.dbline 0 ; func end
reti
.dbsym l temp 1 A[3:3]c
.dbend
.area data(ram, con, rel)
.dbfile E:\MYAVRW~1\SPI˫~2\1.c
L13:
.blkb 15
.area idata
.byte 'r,'e,'c,'e,'i,'v,'e,32,'d,'a,'t,'a,32,58,0
.area data(ram, con, rel)
.dbfile E:\MYAVRW~1\SPI˫~2\1.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -