📄 glint_iny13.lst
字号:
__start:
__text_start:
0010 E9CF LDI R28,0x9F
0011 E0D0 LDI R29,0
0012 BFCD OUT 0x3D,R28
0013 BFDE OUT 0x3E,R29
0014 51C0 SUBI R28,0x10
0015 40D0 SBCI R29,0
0016 EA0A LDI R16,0xAA
0017 8308 STD Y+0,R16
0018 2400 CLR R0
0019 E6E0 LDI R30,0x60
001A E0F0 LDI R31,0
001B E010 LDI R17,0
001C 36E0 CPI R30,0x60
001D 07F1 CPC R31,R17
001E F011 BEQ 0x0021
001F 9201 ST R0,Z+
0020 CFFB RJMP 0x001C
0021 8300 STD Z+0,R16
0022 E2E0 LDI R30,0x20
0023 E0F0 LDI R31,0
0024 E6A0 LDI R26,0x60
0025 E0B0 LDI R27,0
0026 E010 LDI R17,0
0027 32E0 CPI R30,0x20
0028 07F1 CPC R31,R17
0029 F021 BEQ 0x002E
002A 95C8 LPM
002B 9631 ADIW R30,1
002C 920D ST R0,X+
002D CFF9 RJMP 0x0027
002E D015 RCALL _main
_exit:
002F CFFF RJMP _exit
_DelaymS:
j --> R20
i --> R22
time --> R16
0030 D02A RCALL push_gset2
FILE: E:\iccavr代码\实验19_杜邦线使用_iny13\glint_iny13.c
(0001) //******************************************************************************
(0002) // *
(0003) // FileName : glint_iny13.c ICCAVR V6.31A编译 *
(0004) // Function : 入门实验,LED闪烁实验 *
(0005) // Date : 2006-07-30 *
(0006) // Version : 1.0 *
(0007) // *
(0008) // Author : 开关电源 hongtusy@163.com *
(0009) // Company : 中国电子信息技术咨询网 http://www.itsn.cn *
(0010) // *
(0011) //***************************描述与记事*****************************************
(0012) //实验板的AVR程序,借助杜邦线实验ATtiny13驱动共阳LED灯闪烁。
(0013) //接线定义:PB接共阳8位LED灯。SW2-6和SW6-2合上。SW3-6/8为系统复位端。
(0014) //记事:本程序旨在对AVR实验板的杜邦线使用的理解的理解与演示,程序适合初学者使用。
(0015) //使用芯片:ATtiny13 系统时钟:默认片内9.6MHz
(0016) // LED的输入端PC口,因为13没有PC口。将杜邦线一端插在SW1后的插针上,
(0017) // 另一端插在扩展插座JP2的PB口上。
(0018) //记事:注意此时需要使用原配的实验套件"双公插针",事先将插针插在扩展插座上。
(0019) //******************************************************************************
(0020) #include <iot13v.h> //头文件,ATMEGA8535单片机的寄存器定义
(0021)
(0022) //***************************延时函数**********************//
(0023) void DelaymS(unsigned int time)
(0024) {
(0025) unsigned int i,j;
(0026) for(j=0;j<time;j++)
0031 2744 CLR R20
0032 2755 CLR R21
0033 C00B RJMP 0x003F
(0027) {
(0028) for(i=0;i<500;i++)
0034 2766 CLR R22
0035 2777 CLR R23
0036 C002 RJMP 0x0039
0037 5F6F SUBI R22,0xFF
0038 4F7F SBCI R23,0xFF
0039 3F64 CPI R22,0xF4
003A E0E1 LDI R30,1
003B 077E CPC R23,R30
003C F3D0 BCS 0x0037
003D 5F4F SUBI R20,0xFF
003E 4F5F SBCI R21,0xFF
003F 1740 CP R20,R16
0040 0751 CPC R21,R17
0041 F390 BCS 0x0034
0042 D010 RCALL pop_gset2
0043 9508 RET
(0029) ;
(0030) }
(0031) }
(0032) //************************主程序开始**********************//
(0033) void main(void)
(0034) {
(0035) DDRB=0xff; //I/O口初始化
_main:
0044 EF8F LDI R24,0xFF
0045 BB87 OUT 0x17,R24
0046 C00A RJMP 0x0051
(0036) while(1) //程序无条件循环执行
(0037) {
(0038) PORTB=0x00; //灯亮
0047 2422 CLR R2
0048 BA28 OUT 0x18,R2
(0039) DelaymS(100);
0049 E604 LDI R16,0x64
004A E010 LDI R17,0
004B DFE4 RCALL _DelaymS
(0040) PORTB=0xff;
004C EF8F LDI R24,0xFF
004D BB88 OUT 0x18,R24
(0041) DelaymS(100);
FILE: <library>
004E E604 LDI R16,0x64
004F E010 LDI R17,0
0050 DFDF RCALL _DelaymS
0051 CFF5 RJMP 0x0047
0052 9508 RET
pop_gset2:
0053 E0E2 LDI R30,2
0054 C00C RJMP pop
push_gset5:
0055 92FA ST R15,-Y
0056 92EA ST R14,-Y
push_gset4:
0057 92DA ST R13,-Y
0058 92CA ST R12,-Y
push_gset3:
0059 92BA ST R11,-Y
005A 92AA ST R10,-Y
push_gset2:
005B 937A ST R23,-Y
005C 936A ST R22,-Y
push_gset1:
005D 935A ST R21,-Y
005E 934A ST R20,-Y
005F 9508 RET
pop_gset1:
0060 E0E1 LDI R30,1
pop:
0061 9149 LD R20,Y+
0062 9159 LD R21,Y+
0063 FDE0 SBRC R30,0
0064 9508 RET
0065 9169 LD R22,Y+
0066 9179 LD R23,Y+
0067 FDE1 SBRC R30,1
0068 9508 RET
0069 90A9 LD R10,Y+
006A 90B9 LD R11,Y+
006B FDE2 SBRC R30,2
006C 9508 RET
006D 90C9 LD R12,Y+
006E 90D9 LD R13,Y+
006F FDE3 SBRC R30,3
0070 9508 RET
0071 90E9 LD R14,Y+
0072 90F9 LD R15,Y+
0073 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -