?? main.lss
字號:
1a06: 0f 91 pop r16
1a08: ff 90 pop r15
1a0a: ef 90 pop r14
1a0c: df 90 pop r13
1a0e: cf 90 pop r12
1a10: 08 95 ret
00001a12 <lcd_init>:
}
}
void lcd_init(void)
{
CRDDR|=(1<<RES)|(1<<A0)|(1<<CS);
1a12: 84 b3 in r24, 0x14 ; 20
1a14: 88 63 ori r24, 0x38 ; 56
1a16: 84 bb out 0x14, r24 ; 20
DATADDR|=(1<<SCL)|(1<<SDA);
1a18: 87 b3 in r24, 0x17 ; 23
1a1a: 88 62 ori r24, 0x28 ; 40
1a1c: 87 bb out 0x17, r24 ; 23
CRPORT&=~(1<<RES);
1a1e: ac 98 cbi 0x15, 4 ; 21
CRPORT|=(1<<RES);
1a20: ac 9a sbi 0x15, 4 ; 21
DDRB |= (1 << 2);
1a22: ba 9a sbi 0x17, 2 ; 23
SPCR=(1<<SPE)|(1<<MSTR)|(1<<CPHA)|(1<<CPOL);
1a24: 8c e5 ldi r24, 0x5C ; 92
1a26: 8d b9 out 0x0d, r24 ; 13
SPSR = (1<<SPI2X); // 設置SPI時鐘倍速
1a28: 81 e0 ldi r24, 0x01 ; 1
1a2a: 8e b9 out 0x0e, r24 ; 14
put_char(0xa2,0);
1a2c: 60 e0 ldi r22, 0x00 ; 0
1a2e: 82 ea ldi r24, 0xA2 ; 162
1a30: 15 df rcall .-470 ; 0x185c
put_char(0b01000000,0);
1a32: 60 e0 ldi r22, 0x00 ; 0
1a34: 80 e4 ldi r24, 0x40 ; 64
1a36: 12 df rcall .-476 ; 0x185c
put_char(0b10100001,0);//地址反轉
1a38: 60 e0 ldi r22, 0x00 ; 0
1a3a: 81 ea ldi r24, 0xA1 ; 161
1a3c: 0f df rcall .-482 ; 0x185c
put_char(0b11001000,0);
1a3e: 60 e0 ldi r22, 0x00 ; 0
1a40: 88 ec ldi r24, 0xC8 ; 200
1a42: 0c df rcall .-488 ; 0x185c
put_char(0b11111000,0);
1a44: 60 e0 ldi r22, 0x00 ; 0
1a46: 88 ef ldi r24, 0xF8 ; 248
1a48: 09 df rcall .-494 ; 0x185c
put_char(0x26,0);
1a4a: 60 e0 ldi r22, 0x00 ; 0
1a4c: 86 e2 ldi r24, 0x26 ; 38
1a4e: 06 df rcall .-500 ; 0x185c
put_char(0b10000001,0);
1a50: 60 e0 ldi r22, 0x00 ; 0
1a52: 81 e8 ldi r24, 0x81 ; 129
1a54: 03 df rcall .-506 ; 0x185c
put_char(16,0);
1a56: 60 e0 ldi r22, 0x00 ; 0
1a58: 80 e1 ldi r24, 0x10 ; 16
1a5a: 00 df rcall .-512 ; 0x185c
put_char(0b00101100,0);
1a5c: 60 e0 ldi r22, 0x00 ; 0
1a5e: 8c e2 ldi r24, 0x2C ; 44
1a60: fd de rcall .-518 ; 0x185c
put_char(0b00101110,0);
1a62: 60 e0 ldi r22, 0x00 ; 0
1a64: 8e e2 ldi r24, 0x2E ; 46
1a66: fa de rcall .-524 ; 0x185c
put_char(0b00101111,0);
1a68: 60 e0 ldi r22, 0x00 ; 0
1a6a: 8f e2 ldi r24, 0x2F ; 47
1a6c: f7 de rcall .-530 ; 0x185c
puta(0xff,0xff);
1a6e: 6f ef ldi r22, 0xFF ; 255
1a70: 86 2f mov r24, r22
1a72: 00 df rcall .-512 ; 0x1874
put_char(0b10101110,0);
1a74: 60 e0 ldi r22, 0x00 ; 0
1a76: 8e ea ldi r24, 0xAE ; 174
1a78: f1 de rcall .-542 ; 0x185c
put_char(0b11111000,0);
1a7a: 60 e0 ldi r22, 0x00 ; 0
1a7c: 88 ef ldi r24, 0xF8 ; 248
1a7e: ee de rcall .-548 ; 0x185c
put_char(0b0,0);
1a80: 60 e0 ldi r22, 0x00 ; 0
1a82: 86 2f mov r24, r22
1a84: eb de rcall .-554 ; 0x185c
1a86: 08 95 ret
00001a88 <__vector_1>:
unsigned int DataIn=0;
unsigned char DataInCount=0,DataReady=0;
int CurrentRTC,SaveRTC,RTC=0;
SIGNAL(SIG_INTERRUPT0)
{
1a88: 1f 92 push r1
1a8a: 0f 92 push r0
1a8c: 0f b6 in r0, 0x3f ; 63
1a8e: 0f 92 push r0
1a90: 11 24 eor r1, r1
1a92: 2f 93 push r18
1a94: 3f 93 push r19
1a96: 4f 93 push r20
1a98: 8f 93 push r24
1a9a: 9f 93 push r25
if(DataReady)
1a9c: 80 91 62 00 lds r24, 0x0062
1aa0: 20 91 60 00 lds r18, 0x0060
1aa4: 30 91 61 00 lds r19, 0x0061
1aa8: 88 23 and r24, r24
1aaa: 41 f0 breq .+16 ; 0x1abc
{
DataInCount=0;
1aac: 10 92 63 00 sts 0x0063, r1
SaveRTC=((RTC&0xff)<<8)+TCCR0;
1ab0: 92 2f mov r25, r18
1ab2: 88 27 eor r24, r24
1ab4: 23 b7 in r18, 0x33 ; 51
1ab6: 82 0f add r24, r18
1ab8: 91 1d adc r25, r1
1aba: 56 c0 rjmp .+172 ; 0x1b68
}
/*else if(DataInCount==16)
{
DataInCount=0;
SaveRTC=((RTC&0xff)<<8)+TCCR0;
}*/
else
{
CurrentRTC=((RTC&0xFF)<<8)+TCCR0;
1abc: 92 2f mov r25, r18
1abe: 88 27 eor r24, r24
1ac0: 23 b7 in r18, 0x33 ; 51
1ac2: 82 0f add r24, r18
1ac4: 91 1d adc r25, r1
1ac6: 90 93 67 00 sts 0x0067, r25
1aca: 80 93 66 00 sts 0x0066, r24
if((SaveRTC=CurrentRTC-SaveRTC)<0) SaveRTC=0-SaveRTC;
1ace: 20 91 68 00 lds r18, 0x0068
1ad2: 30 91 69 00 lds r19, 0x0069
1ad6: 82 1b sub r24, r18
1ad8: 93 0b sbc r25, r19
1ada: 90 93 69 00 sts 0x0069, r25
1ade: 80 93 68 00 sts 0x0068, r24
1ae2: 97 ff sbrs r25, 7
1ae4: 07 c0 rjmp .+14 ; 0x1af4
1ae6: 90 95 com r25
1ae8: 81 95 neg r24
1aea: 9f 4f sbci r25, 0xFF ; 255
1aec: 90 93 69 00 sts 0x0069, r25
1af0: 80 93 68 00 sts 0x0068, r24
if((SaveRTC>1000)&&(SaveRTC<1500))
1af4: 20 91 68 00 lds r18, 0x0068
1af8: 30 91 69 00 lds r19, 0x0069
1afc: c9 01 movw r24, r18
1afe: 89 5e subi r24, 0xE9 ; 233
1b00: 93 40 sbci r25, 0x03 ; 3
1b02: 83 5f subi r24, 0xF3 ; 243
1b04: 91 40 sbci r25, 0x01 ; 1
1b06: 38 f4 brcc .+14 ; 0x1b16
{
DataIn=DataIn>>1;
1b08: 80 91 64 00 lds r24, 0x0064
1b0c: 90 91 65 00 lds r25, 0x0065
1b10: 96 95 lsr r25
1b12: 87 95 ror r24
1b14: 0e c0 rjmp .+28 ; 0x1b32
DataInCount++;
}
else if((SaveRTC>2000)&&(SaveRTC<2500))
1b16: c9 01 movw r24, r18
1b18: 81 5d subi r24, 0xD1 ; 209
1b1a: 97 40 sbci r25, 0x07 ; 7
1b1c: 83 5f subi r24, 0xF3 ; 243
1b1e: 91 40 sbci r25, 0x01 ; 1
1b20: 90 f4 brcc .+36 ; 0x1b46
{
DataIn=(DataIn>>1)+32768;
1b22: 80 91 64 00 lds r24, 0x0064
1b26: 90 91 65 00 lds r25, 0x0065
1b2a: 96 95 lsr r25
1b2c: 87 95 ror r24
1b2e: 80 50 subi r24, 0x00 ; 0
1b30: 90 48 sbci r25, 0x80 ; 128
1b32: 90 93 65 00 sts 0x0065, r25
1b36: 80 93 64 00 sts 0x0064, r24
DataInCount++;
1b3a: 80 91 63 00 lds r24, 0x0063
1b3e: 8f 5f subi r24, 0xFF ; 255
1b40: 80 93 63 00 sts 0x0063, r24
1b44: 0d c0 rjmp .+26 ; 0x1b60
}
else if((SaveRTC>3000)&&DataInCount==16) DataReady=1;
1b46: 29 5b subi r18, 0xB9 ; 185
1b48: 3b 40 sbci r19, 0x0B ; 11
1b4a: 44 f0 brlt .+16 ; 0x1b5c
1b4c: 80 91 63 00 lds r24, 0x0063
1b50: 80 31 cpi r24, 0x10 ; 16
1b52: 21 f4 brne .+8 ; 0x1b5c
1b54: 81 e0 ldi r24, 0x01 ; 1
1b56: 80 93 62 00 sts 0x0062, r24
1b5a: 02 c0 rjmp .+4 ; 0x1b60
else DataInCount=0;
1b5c: 10 92 63 00 sts 0x0063, r1
SaveRTC=CurrentRTC;
1b60: 80 91 66 00 lds r24, 0x0066
1b64: 90 91 67 00 lds r25, 0x0067
1b68: 90 93 69 00 sts 0x0069, r25
1b6c: 80 93 68 00 sts 0x0068, r24
1b70: 9f 91 pop r25
1b72: 8f 91 pop r24
1b74: 4f 91 pop r20
1b76: 3f 91 pop r19
1b78: 2f 91 pop r18
1b7a: 0f 90 pop r0
1b7c: 0f be out 0x3f, r0 ; 63
1b7e: 0f 90 pop r0
1b80: 1f 90 pop r1
1b82: 18 95 reti
00001b84 <init_int0>:
}
}
void init_int0(void)
{
MCUCR|=(1<<ISC01);//下降沿觸發中斷
1b84: 85 b7 in r24, 0x35 ; 53
1b86: 82 60 ori r24, 0x02 ; 2
1b88: 85 bf out 0x35, r24 ; 53
GICR|=(1<<INT0);//開局部中斷
1b8a: 8b b7 in r24, 0x3b ; 59
1b8c: 80 64 ori r24, 0x40 ; 64
1b8e: 8b bf out 0x3b, r24 ; 59
1b90: 08 95 ret
00001b92 <init_tc1_pwm>:
void init_tc1_pwm(void)
{
OCR1AL=OCR1BL=125;
1b92: 8d e7 ldi r24, 0x7D ; 125
1b94: 88 bd out 0x28, r24 ; 40
1b96: 88 b5 in r24, 0x28 ; 40
1b98: 8a bd out 0x2a, r24 ; 42
PORTB|=(1<<PB1)|(1<<PB2);
1b9a: 88 b3 in r24, 0x18 ; 24
1b9c: 86 60 ori r24, 0x06 ; 6
1b9e: 88 bb out 0x18, r24 ; 24
TCCR1A|=(1<<COM1A1)|(1<<COM1B1)|(1<<COM1A0)|(1<<COM1B0)|(1<<WGM10);//上升沿匹配清零8位相位可調PWM
1ba0: 8f b5 in r24, 0x2f ; 47
1ba2: 81 6f ori r24, 0xF1 ; 241
1ba4: 8f bd out 0x2f, r24 ; 47
TCCR1B|=(1<<CS10);//系統時鐘
1ba6: 8e b5 in r24, 0x2e ; 46
1ba8: 81 60 ori r24, 0x01 ; 1
1baa: 8e bd out 0x2e, r24 ; 46
1bac: 08 95 ret
00001bae <init_timer0_OVF>:
//#include <stdio.h>
//#include <LCD1602.h>
void init_timer0_OVF(void)
{
TCCR0|=(1<<CS01); //分頻比8,T/C0分辨率為8/8=1uS,溢出值256uS
1bae: 83 b7 in r24, 0x33 ; 51
1bb0: 82 60 ori r24, 0x02 ; 2
1bb2: 83 bf out 0x33, r24 ; 51
TIFR|=1<<TOV0; //TC0溢出中斷
1bb4: 88 b7 in r24, 0x38 ; 56
1bb6: 81 60 ori r24, 0x01 ; 1
1bb8: 88 bf out 0x38, r24 ; 56
TIMSK|=1<<TOIE0;
1bba: 89 b7 in r24, 0x39 ; 57
1bbc: 81 60 ori r24, 0x01 ; 1
1bbe: 89 bf out 0x39, r24 ; 57
1bc0: 08 95 ret
00001bc2 <__vector_9>:
}
SIGNAL(SIG_OVERFLOW0)
{
1bc2: 1f 92 push r1
1bc4: 0f 92 push r0
1bc6: 0f b6 in r0, 0x3f ; 63
1bc8: 0f 92 push r0
1bca: 11 24 eor r1, r1
1bcc: 8f 93 push r24
1bce: 9f 93 push r25
RTC++;
1bd0: 80 91 60 00 lds r24, 0x0060
1bd4: 90 91 61 00 lds r25, 0x0061
1bd8: 01 96 adiw r24, 0x01 ; 1
1bda: 90 93 61 00 sts 0x0061, r25
1bde: 80 93 60 00 sts 0x0060, r24
1be2: 9f 91 pop r25
1be4: 8f 91 pop r24
1be6: 0f 90 pop r0
1be8: 0f be out 0x3f, r0 ; 63
1bea: 0f 90 pop r0
1bec: 1f 90 pop r1
1bee: 18 95 reti
00001bf0 <main>:
}
int main(void)
{
1bf0: cf e5 ldi r28, 0x5F ; 95
1bf2: d4 e0 ldi r29, 0x04 ; 4
1bf4: de bf out 0x3e, r29 ; 62
1bf6: cd bf out 0x3d, r28 ; 61
unsigned int sign=0;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -