📄 12864bk.lst
字号:
Interrupt Vectors
00000 940C 003F JMP __start|__text_start
Program Code (text area)
__start|__text_start:
0003F E5CF LDI R28,0x5F
00040 E0D4 LDI R29,4
00041 BFCD OUT 0x3D,R28
00042 BFDE OUT 0x3E,R29
00043 51CE SUBI R28,0x1E
00044 40D0 SBCI R29,0
00045 EA0A LDI R16,0xAA
00046 8308 ST Y,R16
00047 2400 CLR R0
00048 E8E9 LDI R30,0x89
00049 E0F0 LDI R31,0
0004A E010 LDI R17,0
0004B 38E9 CPI R30,0x89
0004C 07F1 CPC R31,R17
0004D F011 BEQ 0x0050
0004E 9201 ST Z+,R0
0004F CFFB RJMP 0x004B
00050 8300 ST Z,R16
00051 E5E4 LDI R30,0x54
00052 E0F0 LDI R31,0
00053 E6A0 LDI R26,0x60
00054 E0B0 LDI R27,0
00055 E010 LDI R17,0
00056 E000 LDI R16,0
00057 BF0B OUT 0x3B,R16
00058 37ED CPI R30,0x7D
00059 07F1 CPC R31,R17
0005A F021 BEQ 0x005F
0005B 95C8 LPM
0005C 9631 ADIW R30,1
0005D 920D ST X+,R0
0005E CFF9 RJMP 0x0058
0005F 940E 008F CALL _main
_exit:
00061 CFFF RJMP _exit
_delay:
i --> R20
j --> R22
ms --> R16
00062 940E 00F2 CALL push_xgsetF000
FILE: E:\AVR自编程序\11avr实验板\191286~1\12864并口.c
(0001) #include <iom16v.h>
(0002) #include <macros.h>
(0003) #define uchar unsigned char
(0004) #define uint unsigned int
(0005)
(0006) //#pragma data:code
(0007)
(0008) const uchar table[]="I LIKE AVR !";
(0009) const uchar table1[]="5 XUE DIANZI ";
(0010) const uchar table2[]="我爱单片机 ";
(0011)
(0012) void delay(uint ms)
(0013) {
(0014) uint i,j;
(0015) for(i=0;i<ms;i++)
00064 2744 CLR R20
00065 2755 CLR R21
00066 C00B RJMP 0x0072
(0016) {
(0017) for(j=0;j<1141;j++);
00067 2766 CLR R22
00068 2777 CLR R23
00069 C002 RJMP 0x006C
0006A 5F6F SUBI R22,0xFF
0006B 4F7F SBCI R23,0xFF
0006C 3765 CPI R22,0x75
0006D E0E4 LDI R30,4
0006E 077E CPC R23,R30
0006F F3D0 BCS 0x006A
00070 5F4F SUBI R20,0xFF
00071 4F5F SBCI R21,0xFF
00072 1740 CP R20,R16
00073 0751 CPC R21,R17
00074 F390 BCS 0x0067
00075 940C 00F7 JMP pop_xgsetF000
_write_com:
com --> R10
00077 92AA ST -Y,R10
00078 2EA0 MOV R10,R16
(0018) }
(0019) }
(0020)
(0021)
(0022) void write_com(uchar com)
(0023) {
(0024) PORTC&=~BIT(5);
00079 98AD CBI 0x15,5
(0025) PORTC&=~BIT(6);
0007A 98AE CBI 0x15,6
(0026) PORTA=com;
0007B BAAB OUT 0x1B,R10
(0027) PORTC|=BIT(7);
0007C 9AAF SBI 0x15,7
(0028) delay(1);
0007D E001 LDI R16,1
0007E E010 LDI R17,0
0007F DFE2 RCALL _delay
(0029) PORTC&=~BIT(7);
00080 98AF CBI 0x15,7
00081 90A9 LD R10,Y+
00082 9508 RET
_write_dat:
dat --> R10
00083 92AA ST -Y,R10
00084 2EA0 MOV R10,R16
(0030) }
(0031)
(0032) void write_dat(uchar dat)
(0033) {
(0034) PORTC|=BIT(5);
00085 9AAD SBI 0x15,5
(0035) PORTC&=~BIT(6);
00086 98AE CBI 0x15,6
(0036) PORTA=dat;
00087 BAAB OUT 0x1B,R10
(0037) PORTC|=BIT(7);
00088 9AAF SBI 0x15,7
(0038) delay(1);
00089 E001 LDI R16,1
0008A E010 LDI R17,0
0008B DFD6 RCALL _delay
(0039) PORTC&=~BIT(7);
0008C 98AF CBI 0x15,7
0008D 90A9 LD R10,Y+
0008E 9508 RET
(0040) }
(0041) void main()
(0042) {
(0043) uchar i;
(0044) DDRA=0XFF;
_main:
i --> R20
0008F EF8F LDI R24,0xFF
00090 BB8A OUT 0x1A,R24
(0045) DDRC|=BIT(5)|BIT(6)|BIT(7)|BIT(4)|BIT(2);
00091 B384 IN R24,0x14
00092 6F84 ORI R24,0xF4
00093 BB84 OUT 0x14,R24
(0046) PORTC&=~BIT(7);
00094 98AF CBI 0x15,7
(0047) PORTC|=BIT(4);
00095 9AAC SBI 0x15,4
(0048) PORTC|=BIT(2);
00096 9AAA SBI 0x15,2
(0049)
(0050) write_com(0X38);
00097 E308 LDI R16,0x38
00098 DFDE RCALL _write_com
(0051) delay(5);
00099 E005 LDI R16,5
0009A E010 LDI R17,0
0009B DFC6 RCALL _delay
(0052) write_com(0X01);
0009C E001 LDI R16,1
0009D DFD9 RCALL _write_com
(0053) delay(5);
0009E E005 LDI R16,5
0009F E010 LDI R17,0
000A0 DFC1 RCALL _delay
(0054) write_com(0X0C);
000A1 E00C LDI R16,0xC
000A2 DFD4 RCALL _write_com
(0055) delay(5);
000A3 E005 LDI R16,5
000A4 E010 LDI R17,0
000A5 DFBC RCALL _delay
(0056) write_com(0X06);
000A6 E006 LDI R16,6
000A7 DFCF RCALL _write_com
(0057) delay(5);
000A8 E005 LDI R16,5
000A9 E010 LDI R17,0
000AA DFB7 RCALL _delay
(0058) write_com(0X80+0X10);
000AB E900 LDI R16,0x90
000AC DFCA RCALL _write_com
(0059) delay(5);
000AD E005 LDI R16,5
000AE E010 LDI R17,0
000AF DFB2 RCALL _delay
(0060) for(i=0;i<12;i++)
000B0 2744 CLR R20
000B1 C00C RJMP 0x00BE
(0061) {
(0062) write_dat(table[i]);
000B2 E680 LDI R24,0x60
000B3 E090 LDI R25,0
000B4 2FE4 MOV R30,R20
000B5 27FF CLR R31
000B6 0FE8 ADD R30,R24
000B7 1FF9 ADC R31,R25
000B8 8100 LD R16,Z
000B9 DFC9 RCALL _write_dat
(0063) delay(5);
000BA E005 LDI R16,5
000BB E010 LDI R17,0
000BC DFA5 RCALL _delay
000BD 9543 INC R20
000BE 304C CPI R20,0xC
000BF F390 BCS 0x00B2
(0064) }
(0065) write_com(0X80+0X50);
000C0 ED00 LDI R16,0xD0
000C1 DFB5 RCALL _write_com
(0066) delay(5);
000C2 E005 LDI R16,5
000C3 E010 LDI R17,0
000C4 DF9D RCALL _delay
(0067) for(i=0;i<13;i++)
000C5 2744 CLR R20
000C6 C00C RJMP 0x00D3
(0068) {
(0069) write_dat(table1[i]);
000C7 E68D LDI R24,0x6D
000C8 E090 LDI R25,0
000C9 2FE4 MOV R30,R20
000CA 27FF CLR R31
000CB 0FE8 ADD R30,R24
000CC 1FF9 ADC R31,R25
000CD 8100 LD R16,Z
000CE DFB4 RCALL _write_dat
(0070) delay(5);
000CF E005 LDI R16,5
000D0 E010 LDI R17,0
000D1 DF90 RCALL _delay
000D2 9543 INC R20
000D3 304D CPI R20,0xD
000D4 F390 BCS 0x00C7
(0071) }
(0072) for(i=0;i<16;i++)
000D5 2744 CLR R20
000D6 C006 RJMP 0x00DD
(0073) {
(0074) write_com(0X18);
000D7 E108 LDI R16,0x18
000D8 DF9E RCALL _write_com
(0075) delay(500);
000D9 EF04 LDI R16,0xF4
000DA E011 LDI R17,1
000DB DF86 RCALL _delay
000DC 9543 INC R20
000DD 3140 CPI R20,0x10
000DE F3C0 BCS 0x00D7
(0076) }
(0077) write_com(0X80);
000DF E800 LDI R16,0x80
000E0 DF96 RCALL _write_com
(0078) for(i=0;i<13;i++)
000E1 2744 CLR R20
000E2 C00C RJMP 0x00EF
(0079) {
(0080) write_dat(table2[i]);
000E3 E78B LDI R24,0x7B
000E4 E090 LDI R25,0
000E5 2FE4 MOV R30,R20
000E6 27FF CLR R31
000E7 0FE8 ADD R30,R24
000E8 1FF9 ADC R31,R25
000E9 8100 LD R16,Z
000EA DF98 RCALL _write_dat
(0081) delay(5);
FILE: <library>
000EB E005 LDI R16,5
000EC E010 LDI R17,0
000ED DF74 RCALL _delay
000EE 9543 INC R20
000EF 304D CPI R20,0xD
000F0 F390 BCS 0x00E3
000F1 9508 RET
push_xgsetF000:
000F2 937A ST -Y,R23
000F3 936A ST -Y,R22
000F4 935A ST -Y,R21
000F5 934A ST -Y,R20
000F6 9508 RET
pop_xgsetF000:
000F7 9149 LD R20,Y+
000F8 9159 LD R21,Y+
000F9 9169 LD R22,Y+
000FA 9179 LD R23,Y+
000FB 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -