📄 dianzhen.lst
字号:
__text_start:
__start:
0019 E5CF LDI R28,0x5F
001A E0D2 LDI R29,2
001B BFCD OUT 0x3D,R28
001C BFDE OUT 0x3E,R29
001D 51C0 SUBI R28,0x10
001E 40D0 SBCI R29,0
001F EA0A LDI R16,0xAA
0020 8308 STD Y+0,R16
0021 2400 CLR R0
0022 E7E0 LDI R30,0x70
0023 E0F0 LDI R31,0
0024 E010 LDI R17,0
0025 37E0 CPI R30,0x70
0026 07F1 CPC R31,R17
0027 F011 BEQ 0x002A
0028 9201 ST R0,Z+
0029 CFFB RJMP 0x0025
002A 8300 STD Z+0,R16
002B E2E2 LDI R30,0x22
002C E0F0 LDI R31,0
002D E6A0 LDI R26,0x60
002E E0B0 LDI R27,0
002F E010 LDI R17,0
0030 33E2 CPI R30,0x32
0031 07F1 CPC R31,R17
0032 F021 BEQ 0x0037
0033 95C8 LPM
0034 9631 ADIW R30,1
0035 920D ST R0,X+
0036 CFF9 RJMP 0x0030
0037 D01C RCALL _main
_exit:
0038 CFFF RJMP _exit
FILE: E:\zh\avr\8515板\dianzhen\dianzhen.c
(0001) //8*8点阵
(0002) #include <io8515v.h>
(0003) #include<macros.h>
(0004) #define uchar unsigned char
(0005) #define uint unsigned int
(0006) /*菱形码
(0007) unsigned char tabP0[]={0x00,0x08,0x14,0x22,0x41,0x22,0x14,0x08};
(0008) unsigned char tabP2[]={0x7F,0xBF,0x0DF,0x0EF,0x0F7,0x0FB,0x0FD,0x0FE};
(0009) */
(0010) /*圈形码
(0011) unsigned char tabP0[]={0x00,0x3c,0x42,0x42,0x42,0x42,0x3c,0x00};
(0012) unsigned char tabP2[]={0x7F,0xBF,0x0DF,0x0EF,0x0F7,0x0FB,0x0FD,0x0FE};
(0013) */
(0014) /*心形码
(0015) unsigned char tabP0[]={0x30,0x48,0x44,0x22,0x44,0x48,0x30,0x00};
(0016) unsigned char tabP2[]={0x7F,0xBF,0x0DF,0x0EF,0x0F7,0x0FB,0x0FD,0x0FE};
(0017) */
(0018) //叉形码
(0019) unsigned char tabP0[]={0x00,0x41,0x22,0x14,0x08,0x14,0x22,0x41};
(0020) unsigned char tabP2[]={0x7F,0xBF,0x0DF,0x0EF,0x0F7,0x0FB,0x0FD,0x0FE};
(0021) void delay_1ms()
(0022) {
(0023) uchar i;
(0024) for(i=0;i<140;i++);
_delay_1ms:
i --> R16
0039 2700 CLR R16
003A C001 RJMP 0x003C
003B 9503 INC R16
003C 380C CPI R16,0x8C
003D F3E8 BCS 0x003B
003E 9508 RET
_delay_nms:
i --> R20
n --> R22
003F D03D RCALL push_gset2
0040 2F60 MOV R22,R16
(0025) }
(0026) void delay_nms(uchar n)
(0027) {
(0028) uchar i;
(0029) for(i=0;i<n;i++)
0041 2744 CLR R20
0042 C002 RJMP 0x0045
(0030) delay_1ms();
0043 DFF5 RCALL _delay_1ms
0044 9543 INC R20
0045 1746 CP R20,R22
0046 F3E0 BCS 0x0043
0047 D02D RCALL pop_gset2
0048 9508 RET
(0031) }
(0032) void m8515_init()
(0033) {
(0034) DDRA=0XFF;
_m8515_init:
0049 EF8F LDI R24,0xFF
004A BB8A OUT 0x1A,R24
(0035) PORTA=0X00;
004B 2422 CLR R2
004C BA2B OUT 0x1B,R2
(0036) DDRB=0X00;
004D BA27 OUT 0x17,R2
(0037) PORTB=0XFF;
004E BB88 OUT 0x18,R24
(0038) DDRC=0XFF;
004F BB84 OUT 0x14,R24
(0039) PORTC=0X00;
0050 BA25 OUT 0x15,R2
(0040) DDRD=0X00;
0051 BA21 OUT 0x11,R2
(0041) PORTD=0XFF;
0052 BB82 OUT 0x12,R24
0053 9508 RET
(0042) }
(0043) void main()
(0044) {
(0045) unsigned int i;
(0046) m8515_init();
_main:
i --> R20
0054 DFF4 RCALL _m8515_init
0055 C01D RJMP 0x0073
(0047) while(1){
(0048) for(i=0;i<8;i++)
0056 2744 CLR R20
0057 2755 CLR R21
0058 C016 RJMP 0x006F
(0049) {
(0050) PORTA=0;
0059 2422 CLR R2
005A BA2B OUT 0x1B,R2
(0051) PORTC=tabP2[i];
005B E688 LDI R24,0x68
005C E090 LDI R25,0
005D 01FA MOVW R30,R20
005E 0FE8 ADD R30,R24
005F 1FF9 ADC R31,R25
0060 8020 LDD R2,Z+0
0061 BA25 OUT 0x15,R2
(0052) delay_nms(1);
0062 E001 LDI R16,1
0063 DFDB RCALL _delay_nms
(0053) PORTA=tabP0[i];
0064 E680 LDI R24,0x60
0065 E090 LDI R25,0
0066 01FA MOVW R30,R20
0067 0FE8 ADD R30,R24
0068 1FF9 ADC R31,R25
0069 8020 LDD R2,Z+0
006A BA2B OUT 0x1B,R2
(0054) delay_nms(1);
FILE: <library>
006B E001 LDI R16,1
006C DFD2 RCALL _delay_nms
006D 5F4F SUBI R20,0xFF
006E 4F5F SBCI R21,0xFF
006F 3048 CPI R20,0x8
0070 E0E0 LDI R30,0
0071 075E CPC R21,R30
0072 F330 BCS 0x0059
0073 CFE2 RJMP 0x0056
0074 9508 RET
pop_gset2:
0075 E0E2 LDI R30,2
0076 C00C RJMP pop
push_gset5:
0077 92FA ST R15,-Y
0078 92EA ST R14,-Y
push_gset4:
0079 92DA ST R13,-Y
007A 92CA ST R12,-Y
push_gset3:
007B 92BA ST R11,-Y
007C 92AA ST R10,-Y
push_gset2:
007D 937A ST R23,-Y
007E 936A ST R22,-Y
push_gset1:
007F 935A ST R21,-Y
0080 934A ST R20,-Y
0081 9508 RET
pop_gset1:
0082 E0E1 LDI R30,1
pop:
0083 9149 LD R20,Y+
0084 9159 LD R21,Y+
0085 FDE0 SBRC R30,0
0086 9508 RET
0087 9169 LD R22,Y+
0088 9179 LD R23,Y+
0089 FDE1 SBRC R30,1
008A 9508 RET
008B 90A9 LD R10,Y+
008C 90B9 LD R11,Y+
008D FDE2 SBRC R30,2
008E 9508 RET
008F 90C9 LD R12,Y+
0090 90D9 LD R13,Y+
0091 FDE3 SBRC R30,3
0092 9508 RET
0093 90E9 LD R14,Y+
0094 90F9 LD R15,Y+
0095 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -