📄 main.lst
字号:
__start:
__text_start:
0000 CFFF RJMP __start
0001 E0D2 LDI R29,2
0002 BFCD OUT 0x3D,R28
0003 BFDE OUT 0x3E,R29
0004 51C0 SUBI R28,0x10
0005 40D0 SBCI R29,0
0006 EA0A LDI R16,0xAA
0007 8308 STD Y+0,R16
0008 2400 CLR R0
0009 E6E0 LDI R30,0x60
000A E0F0 LDI R31,0
000B E010 LDI R17,0
000C 36E0 CPI R30,0x60
000D 07F1 CPC R31,R17
000E F011 BEQ 0x0011
000F 9201 ST R0,Z+
0010 CFFB RJMP 0x000C
0011 C023 RJMP _twi_isr
0012 E0E0 LDI R30,0
0013 E0F0 LDI R31,0
0014 E6A0 LDI R26,0x60
0015 E0B0 LDI R27,0
0016 E010 LDI R17,0
0017 30E0 CPI R30,0
0018 07F1 CPC R31,R17
0019 F021 BEQ 0x001E
001A 95C8 LPM
001B 9631 ADIW R30,1
001C 920D ST R0,X+
001D CFF9 RJMP 0x0017
001E D020 RCALL _main
_exit:
001F CFFF RJMP _exit
FILE: F:\工程文件\程序\学习板例程\24C04\main.c
(0001) //ICC-AVR application builder : 2006-11-30 20:32:45
(0002) // Target : M16
(0003) // Crystal: 6.0000Mhz
(0004) //designed by solo 2006,11,30
(0005) //I2C test
(0006)
(0007) #include <iom16v.h>
(0008) #include <macros.h>
(0009)
(0010) void port_init(void)
(0011) {
(0012) PORTA = 0xFF;
_port_init:
0020 EF8F LDI R24,0xFF
0021 BB8B OUT 0x1B,R24
(0013) DDRA = 0xFF;
0022 BB8A OUT 0x1A,R24
(0014) PORTB = 0xFF;
0023 BB88 OUT 0x18,R24
(0015) DDRB = 0xFF;
0024 BB87 OUT 0x17,R24
(0016) PORTC = 0xFF; //m103 output only
0025 BB85 OUT 0x15,R24
(0017) DDRC = 0xFF;
0026 BB84 OUT 0x14,R24
(0018) PORTD = 0xFF;
0027 BB82 OUT 0x12,R24
(0019) DDRD = 0xFF;
0028 BB81 OUT 0x11,R24
(0020) }
0029 9508 RET
(0021)
(0022) //TWI initialisation
(0023) // bit rate:8
(0024) void twi_init(void)
(0025) {
(0026) TWCR= 0X00; //disable twi
_twi_init:
002A 2422 CLR R2
002B BE26 OUT 0x36,R2
(0027) TWBR= 0x08; //set bit rate
002C E088 LDI R24,0x8
002D B980 OUT 0x00,R24
(0028) TWSR= 0x01; //set prescale
002E E081 LDI R24,1
002F B981 OUT 0x01,R24
(0029) TWAR= 0x03; //set slave address
0030 E083 LDI R24,3
0031 B982 OUT 0x02,R24
(0030) TWCR= 0x45; //enable twi
0032 E485 LDI R24,0x45
0033 BF86 OUT 0x36,R24
(0031) }
0034 9508 RET
(0032)
(0033) #pragma interrupt_handler twi_isr:18
(0034) void twi_isr(void)
(0035) {
(0036) //twi event
(0037) }
_twi_isr:
0035 9518 RETI
(0038)
(0039) //call this routine to initialise all peripherals
(0040) void init_devices(void)
(0041) {
(0042) //stop errant interrupts until set up
(0043) CLI(); //disable all interrupts
_init_devices:
0036 94F8 BCLR 7
(0044) port_init();
0037 DFE8 RCALL _port_init
(0045) twi_init();
0038 DFF1 RCALL _twi_init
(0046)
(0047) MCUCR = 0x00;
0039 2422 CLR R2
003A BE25 OUT 0x35,R2
(0048) GICR = 0x00;
003B BE2B OUT 0x3B,R2
(0049) TIMSK = 0x00; //timer interrupt sources
003C BE29 OUT 0x39,R2
(0050) SEI(); //re-enable interrupts
003D 9478 BSET 7
(0051) //all peripherals are now initialised
(0052) }
003E 9508 RET
(0053)
(0054) //
(0055) void main(void)
(0056) {
(0057) init_devices();
(0058) //insert your functional code here...
(0059) }
FILE: <library>
_main:
003F CFF6 RJMP _init_devices
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -