📄 02-8a-2.lst
字号:
__start:
__text_start:
001A EFCF LDI R28,0xFF
001B E0D2 LDI R29,2
001C BFCD OUT 0x3D,R28
001D BFDE OUT 0x3E,R29
001E 51C0 SUBI R28,0x10
001F 40D0 SBCI R29,0
0020 EA0A LDI R16,0xAA
0021 8308 STD Y+0,R16
0022 2400 CLR R0
0023 E0E0 LDI R30,0
0024 E0F1 LDI R31,1
0025 E011 LDI R17,1
0026 30E0 CPI R30,0
0027 07F1 CPC R31,R17
0028 F011 BEQ 0x002B
0029 9201 ST R0,Z+
002A CFFB RJMP 0x0026
002B 8300 STD Z+0,R16
002C E3E4 LDI R30,0x34
002D E0F0 LDI R31,0
002E E0A0 LDI R26,0
002F E0B1 LDI R27,1
0030 E010 LDI R17,0
0031 33E4 CPI R30,0x34
0032 07F1 CPC R31,R17
0033 F021 BEQ 0x0038
0034 95C8 LPM
0035 9631 ADIW R30,1
0036 920D ST R0,X+
0037 CFF9 RJMP 0x0031
0038 D008 RCALL _main
_exit:
0039 CFFF RJMP _exit
FILE: D:\xij\demo\demo_diy02-8a\1\C语言\02-8A-2\2.c
(0001) #include "iom48v.h"
(0002)
(0003) void port_init()
(0004) {
(0005) PORTC=0XFF;DDRC=0XFF;//设置PC为输出
_port_init:
003A EF8F LDI R24,0xFF
003B B988 OUT 0x08,R24
003C B987 OUT 0x07,R24
(0006) PORTB=0XFF;DDRB=0XFE;//设置PB0输入,其它输出
003D B985 OUT 0x05,R24
003E EF8E LDI R24,0xFE
003F B984 OUT 0x04,R24
0040 9508 RET
(0007) }
(0008)
(0009) void main()
(0010) {
(0011) unsigned char i;
(0012) port_init(); //端口初始化
_main:
i --> R20
0041 DFF8 RCALL _port_init
0042 C008 RJMP 0x004B
(0013) while(1){
(0014) i=PINB&0x01; //读出PB0口状态
0043 B143 IN R20,0x03
0044 7041 ANDI R20,1
(0015) if(i==0)
0045 F419 BNE 0x0049
(0016) PORTC=0xfE;
0046 EF8E LDI R24,0xFE
0047 B988 OUT 0x08,R24
0048 C002 RJMP 0x004B
(0017) else
(0018) PORTC=0XFF;
FILE: <library>
0049 EF8F LDI R24,0xFF
004A B988 OUT 0x08,R24
004B CFF7 RJMP 0x0043
004C 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -