📄 ac8-3.lst
字号:
__start:
__text_start:
002F E5CF LDI R28,0x5F
0030 E0D4 LDI R29,4
0031 BFCD OUT 0x3D,R28
0032 BFDE OUT 0x3E,R29
0033 51C0 SUBI R28,0x10
0034 40D0 SBCI R29,0
0035 EA0A LDI R16,0xAA
0036 8308 STD Y+0,R16
0037 2400 CLR R0
0038 E6E0 LDI R30,0x60
0039 E0F0 LDI R31,0
003A E010 LDI R17,0
003B 36E2 CPI R30,0x62
003C 07F1 CPC R31,R17
003D F011 BEQ 0x0040
003E 9201 ST R0,Z+
003F CFFB RJMP 0x003B
0040 8300 STD Z+0,R16
0041 E5EE LDI R30,0x5E
0042 E0F0 LDI R31,0
0043 E6A0 LDI R26,0x60
0044 E0B0 LDI R27,0
0045 E010 LDI R17,0
0046 35EE CPI R30,0x5E
0047 07F1 CPC R31,R17
0048 F021 BEQ 0x004D
0049 95C8 LPM
004A 9631 ADIW R30,1
004B 920D ST R0,X+
004C CFF9 RJMP 0x0046
004D 940E0066 CALL _main
_exit:
004F CFFF RJMP _exit
_delay_ms:
i --> R20
j --> R22
k --> R16
0050 940E00B7 CALL push_gset2
FILE: d:\MYDOCU~1\ac8-3\ac8-3.c
(0001) #include<iom16v.h>
(0002) #define uchar unsigned char
(0003) #define uint unsigned int
(0004)
(0005) uchar const SEG7[10]={0x3f,0x06,0x5b,
(0006) 0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f};
(0007) #define ALM_ON (PORTB=PORTB&0xfe)
(0008) uchar alm_flag1,alm_flag2;
(0009) //*************************************************
(0010) void delay_ms(uint k)
(0011) {
(0012) uint i,j;
(0013) for(i=0;i<k;i++)
0052 2744 CLR R20
0053 2755 CLR R21
0054 C00B RJMP 0x0060
(0014) {
(0015) for(j=0;j<1140;j++)
0055 2766 CLR R22
0056 2777 CLR R23
0057 C002 RJMP 0x005A
0058 5F6F SUBI R22,0xFF
0059 4F7F SBCI R23,0xFF
005A 3764 CPI R22,0x74
005B E0E4 LDI R30,4
005C 077E CPC R23,R30
005D F3D0 BCS 0x0058
005E 5F4F SUBI R20,0xFF
005F 4F5F SBCI R21,0xFF
0060 1740 CP R20,R16
0061 0751 CPC R21,R17
0062 F390 BCS 0x0055
0063 940E00AE CALL pop_gset2
0065 9508 RET
(0016) ;
(0017) }
(0018) }
(0019) //=============================
(0020) void main(void)
(0021) {
(0022) DDRA=0xff;
_main:
0066 EF8F LDI R24,0xFF
0067 BB8A OUT 0x1A,R24
(0023) DDRC=0xff;
0068 BB84 OUT 0x14,R24
(0024) PORTA=0x00;
0069 2422 CLR R2
006A BA2B OUT 0x1B,R2
(0025) PORTC=0xff;
006B BB85 OUT 0x15,R24
(0026) PORTB=0xff;
006C BB88 OUT 0x18,R24
(0027) DDRB=0xff;
006D BB87 OUT 0x17,R24
(0028) PORTD=0xff;
006E BB82 OUT 0x12,R24
(0029) DDRD = 0xf3;
006F EF83 LDI R24,0xF3
0070 BB81 OUT 0x11,R24
(0030) MCUCR = 0x0A;
0071 E08A LDI R24,0xA
0072 BF85 OUT 0x35,R24
(0031) GICR = 0xC0;
0073 EC80 LDI R24,0xC0
0074 BF8B OUT 0x3B,R24
(0032) SREG=0x80;
0075 E880 LDI R24,0x80
0076 BF8F OUT 0x3F,R24
0077 C020 RJMP 0x0098
(0033) while(1)
(0034) {
(0035) if(alm_flag1==1)
0078 91800061 LDS R24,alm_flag1
007A 3081 CPI R24,1
007B F461 BNE 0x0088
(0036) {PORTA=SEG7[1];
007C E5E5 LDI R30,0x55
007D E0F0 LDI R31,0
007E 91E4 LPM R30,0(Z)
007F BBEB OUT 0x1B,R30
(0037) PORTC=0xfe;
0080 EF8E LDI R24,0xFE
0081 BB85 OUT 0x15,R24
(0038) ALM_ON;
0082 B388 IN R24,0x18
0083 7F8E ANDI R24,0xFE
0084 BB88 OUT 0x18,R24
(0039) delay_ms(2000);
0085 ED00 LDI R16,0xD0
0086 E017 LDI R17,7
0087 DFC8 RCALL _delay_ms
(0040) }
(0041) if(alm_flag2==1)
0088 91800060 LDS R24,alm_flag2
008A 3081 CPI R24,1
008B F461 BNE 0x0098
(0042) {PORTA=SEG7[2];
008C E5E6 LDI R30,0x56
008D E0F0 LDI R31,0
008E 91E4 LPM R30,0(Z)
008F BBEB OUT 0x1B,R30
(0043) PORTC=0xfe;
0090 EF8E LDI R24,0xFE
0091 BB85 OUT 0x15,R24
(0044) ALM_ON;
0092 B388 IN R24,0x18
0093 7F8E ANDI R24,0xFE
0094 BB88 OUT 0x18,R24
(0045) delay_ms(2000);
0095 ED00 LDI R16,0xD0
0096 E017 LDI R17,7
0097 DFB8 RCALL _delay_ms
0098 CFDF RJMP 0x0078
0099 9508 RET
_int0_isr:
009A 938A ST R24,-Y
009B B78F IN R24,0x3F
009C 938A ST R24,-Y
(0046) }
(0047) }
(0048) }
(0049) //**************************************************
(0050) #pragma interrupt_handler int0_isr:2
(0051) void int0_isr(void)
(0052) {
(0053) alm_flag1=1;
009D E081 LDI R24,1
009E 93800061 STS alm_flag1,R24
00A0 9189 LD R24,Y+
00A1 BF8F OUT 0x3F,R24
00A2 9189 LD R24,Y+
00A3 9518 RETI
_int1_isr:
00A4 938A ST R24,-Y
00A5 B78F IN R24,0x3F
00A6 938A ST R24,-Y
(0054) }
(0055) //****************************************
(0056) #pragma interrupt_handler int1_isr:3
(0057) void int1_isr(void)
(0058) {
(0059) alm_flag2=1;
FILE: <library>
00A7 E081 LDI R24,1
00A8 93800060 STS alm_flag2,R24
00AA 9189 LD R24,Y+
00AB BF8F OUT 0x3F,R24
00AC 9189 LD R24,Y+
00AD 9518 RETI
pop_gset2:
00AE E0E2 LDI R30,2
00AF 940C00BD JMP pop
push_gset5:
00B1 92FA ST R15,-Y
00B2 92EA ST R14,-Y
push_gset4:
00B3 92DA ST R13,-Y
00B4 92CA ST R12,-Y
push_gset3:
00B5 92BA ST R11,-Y
00B6 92AA ST R10,-Y
push_gset2:
00B7 937A ST R23,-Y
00B8 936A ST R22,-Y
push_gset1:
00B9 935A ST R21,-Y
00BA 934A ST R20,-Y
00BB 9508 RET
pop_gset1:
00BC E0E1 LDI R30,1
pop:
00BD 9149 LD R20,Y+
00BE 9159 LD R21,Y+
00BF FDE0 SBRC R30,0
00C0 9508 RET
00C1 9169 LD R22,Y+
00C2 9179 LD R23,Y+
00C3 FDE1 SBRC R30,1
00C4 9508 RET
00C5 90A9 LD R10,Y+
00C6 90B9 LD R11,Y+
00C7 FDE2 SBRC R30,2
00C8 9508 RET
00C9 90C9 LD R12,Y+
00CA 90D9 LD R13,Y+
00CB FDE3 SBRC R30,3
00CC 9508 RET
00CD 90E9 LD R14,Y+
00CE 90F9 LD R15,Y+
00CF 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -