📄 dianzhen.s
字号:
.module dianzhen.c
.area data(ram, con, rel)
_tabP0::
.blkb 2
.area idata
.byte 0,'A
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 34,20
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 8,20
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 34,'A
.area data(ram, con, rel)
.dbfile E:\zh\avr\8515板\dianzhen\dianzhen.c
.dbsym e tabP0 _tabP0 A[8:8]c
_tabP2::
.blkb 2
.area idata
.byte 127,191
.area data(ram, con, rel)
.dbfile E:\zh\avr\8515板\dianzhen\dianzhen.c
.blkb 2
.area idata
.byte 223,239
.area data(ram, con, rel)
.dbfile E:\zh\avr\8515板\dianzhen\dianzhen.c
.blkb 2
.area idata
.byte 247,251
.area data(ram, con, rel)
.dbfile E:\zh\avr\8515板\dianzhen\dianzhen.c
.blkb 2
.area idata
.byte 253,254
.area data(ram, con, rel)
.dbfile E:\zh\avr\8515板\dianzhen\dianzhen.c
.dbsym e tabP2 _tabP2 A[8:8]c
.area text(rom, con, rel)
.dbfile E:\zh\avr\8515板\dianzhen\dianzhen.c
.dbfunc e delay_1ms _delay_1ms fV
; i -> R16
.even
_delay_1ms::
.dbline -1
.dbline 22
; //8*8点阵
; #include <io8515v.h>
; #include<macros.h>
; #define uchar unsigned char
; #define uint unsigned int
; /*菱形码
; unsigned char tabP0[]={0x00,0x08,0x14,0x22,0x41,0x22,0x14,0x08};
; unsigned char tabP2[]={0x7F,0xBF,0x0DF,0x0EF,0x0F7,0x0FB,0x0FD,0x0FE};
; */
; /*圈形码
; unsigned char tabP0[]={0x00,0x3c,0x42,0x42,0x42,0x42,0x3c,0x00};
; unsigned char tabP2[]={0x7F,0xBF,0x0DF,0x0EF,0x0F7,0x0FB,0x0FD,0x0FE};
; */
; /*心形码
; unsigned char tabP0[]={0x30,0x48,0x44,0x22,0x44,0x48,0x30,0x00};
; unsigned char tabP2[]={0x7F,0xBF,0x0DF,0x0EF,0x0F7,0x0FB,0x0FD,0x0FE};
; */
; //叉形码
; unsigned char tabP0[]={0x00,0x41,0x22,0x14,0x08,0x14,0x22,0x41};
; unsigned char tabP2[]={0x7F,0xBF,0x0DF,0x0EF,0x0F7,0x0FB,0x0FD,0x0FE};
; void delay_1ms()
; {
.dbline 24
clr R16
rjmp L5
L2:
.dbline 24
L3:
.dbline 24
inc R16
L5:
.dbline 24
; uchar i;
; for(i=0;i<140;i++);
cpi R16,140
brlo L2
.dbline -2
L1:
.dbline 0 ; func end
ret
.dbsym r i 16 c
.dbend
.dbfunc e delay_nms _delay_nms fV
; i -> R20
; n -> R22
.even
_delay_nms::
rcall push_gset2
mov R22,R16
.dbline -1
.dbline 27
; }
; void delay_nms(uchar n)
; {
.dbline 29
; uchar i;
; for(i=0;i<n;i++)
clr R20
rjmp L10
L7:
.dbline 30
rcall _delay_1ms
L8:
.dbline 29
inc R20
L10:
.dbline 29
cp R20,R22
brlo L7
.dbline -2
L6:
rcall pop_gset2
.dbline 0 ; func end
ret
.dbsym r i 20 c
.dbsym r n 22 c
.dbend
.dbfunc e m8515_init _m8515_init fV
.even
_m8515_init::
.dbline -1
.dbline 33
; delay_1ms();
; }
; void m8515_init()
; {
.dbline 34
; DDRA=0XFF;
ldi R24,255
out 0x1a,R24
.dbline 35
; PORTA=0X00;
clr R2
out 0x1b,R2
.dbline 36
; DDRB=0X00;
out 0x17,R2
.dbline 37
; PORTB=0XFF;
out 0x18,R24
.dbline 38
; DDRC=0XFF;
out 0x14,R24
.dbline 39
; PORTC=0X00;
out 0x15,R2
.dbline 40
; DDRD=0X00;
out 0x11,R2
.dbline 41
; PORTD=0XFF;
out 0x12,R24
.dbline -2
L11:
.dbline 0 ; func end
ret
.dbend
.dbfunc e main _main fV
; i -> R20,R21
.even
_main::
.dbline -1
.dbline 44
; }
; void main()
; {
.dbline 46
; unsigned int i;
; m8515_init();
rcall _m8515_init
rjmp L14
L13:
.dbline 47
; while(1){
.dbline 48
; for(i=0;i<8;i++)
clr R20
clr R21
rjmp L19
L16:
.dbline 49
.dbline 50
clr R2
out 0x1b,R2
.dbline 51
ldi R24,<_tabP2
ldi R25,>_tabP2
movw R30,R20
add R30,R24
adc R31,R25
ldd R2,z+0
out 0x15,R2
.dbline 52
ldi R16,1
rcall _delay_nms
.dbline 53
ldi R24,<_tabP0
ldi R25,>_tabP0
movw R30,R20
add R30,R24
adc R31,R25
ldd R2,z+0
out 0x1b,R2
.dbline 54
ldi R16,1
rcall _delay_nms
.dbline 55
L17:
.dbline 48
subi R20,255 ; offset = 1
sbci R21,255
L19:
.dbline 48
cpi R20,8
ldi R30,0
cpc R21,R30
brlo L16
.dbline 55
L14:
.dbline 47
rjmp L13
X0:
.dbline -2
L12:
.dbline 0 ; func end
ret
.dbsym r i 20 i
.dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -