📄 glint_iny13.lis
字号:
.module glint_iny13.c
.area text(rom, con, rel)
0000 .dbfile E:\iccavr代码\实验19_杜邦线使用_iny13\glint_iny13.c
0000 .dbfunc e DelaymS _DelaymS fV
0000 ; j -> R20,R21
0000 ; i -> R22,R23
0000 ; time -> R16,R17
.even
0000 _DelaymS::
0000 00D0 rcall push_gset2
0002 .dbline -1
0002 .dbline 24
0002 ; //******************************************************************************
0002 ; // *
0002 ; // FileName : glint_iny13.c ICCAVR V6.31A编译 *
0002 ; // Function : 入门实验,LED闪烁实验 *
0002 ; // Date : 2006-07-30 *
0002 ; // Version : 1.0 *
0002 ; // *
0002 ; // Author : 开关电源 hongtusy@163.com *
0002 ; // Company : 中国电子信息技术咨询网 http://www.itsn.cn *
0002 ; // *
0002 ; //***************************描述与记事*****************************************
0002 ; //实验板的AVR程序,借助杜邦线实验ATtiny13驱动共阳LED灯闪烁。
0002 ; //接线定义:PB接共阳8位LED灯。SW2-6和SW6-2合上。SW3-6/8为系统复位端。
0002 ; //记事:本程序旨在对AVR实验板的杜邦线使用的理解的理解与演示,程序适合初学者使用。
0002 ; //使用芯片:ATtiny13 系统时钟:默认片内9.6MHz
0002 ; // LED的输入端PC口,因为13没有PC口。将杜邦线一端插在SW1后的插针上,
0002 ; // 另一端插在扩展插座JP2的PB口上。
0002 ; //记事:注意此时需要使用原配的实验套件"双公插针",事先将插针插在扩展插座上。
0002 ; //******************************************************************************
0002 ; #include <iot13v.h> //头文件,ATMEGA8535单片机的寄存器定义
0002 ;
0002 ; //***************************延时函数**********************//
0002 ; void DelaymS(unsigned int time)
0002 ; {
0002 .dbline 26
0002 ; unsigned int i,j;
0002 ; for(j=0;j<time;j++)
0002 4427 clr R20
0004 5527 clr R21
0006 0BC0 rjmp L5
0008 L2:
0008 .dbline 27
0008 ; {
0008 .dbline 28
0008 ; for(i=0;i<500;i++)
0008 6627 clr R22
000A 7727 clr R23
000C 02C0 rjmp L9
000E L6:
000E .dbline 29
000E L7:
000E .dbline 28
000E 6F5F subi R22,255 ; offset = 1
0010 7F4F sbci R23,255
0012 L9:
0012 .dbline 28
0012 643F cpi R22,244
0014 E1E0 ldi R30,1
0016 7E07 cpc R23,R30
0018 D0F3 brlo L6
001A .dbline 30
001A L3:
001A .dbline 26
001A 4F5F subi R20,255 ; offset = 1
001C 5F4F sbci R21,255
001E L5:
001E .dbline 26
001E 4017 cp R20,R16
0020 5107 cpc R21,R17
0022 90F3 brlo L2
0024 .dbline -2
0024 L1:
0024 00D0 rcall pop_gset2
0026 .dbline 0 ; func end
0026 0895 ret
0028 .dbsym r j 20 i
0028 .dbsym r i 22 i
0028 .dbsym r time 16 i
0028 .dbend
0028 .dbfunc e main _main fV
.even
0028 _main::
0028 .dbline -1
0028 .dbline 34
0028 ; ;
0028 ; }
0028 ; }
0028 ; //************************主程序开始**********************//
0028 ; void main(void)
0028 ; {
0028 .dbline 35
0028 ; DDRB=0xff; //I/O口初始化
0028 8FEF ldi R24,255
002A 87BB out 0x17,R24
002C 0AC0 rjmp L12
002E L11:
002E .dbline 37
002E .dbline 38
002E 2224 clr R2
0030 28BA out 0x18,R2
0032 .dbline 39
0032 04E6 ldi R16,100
0034 10E0 ldi R17,0
0036 E4DF rcall _DelaymS
0038 .dbline 40
0038 8FEF ldi R24,255
003A 88BB out 0x18,R24
003C .dbline 41
003C 04E6 ldi R16,100
003E 10E0 ldi R17,0
0040 DFDF rcall _DelaymS
0042 .dbline 42
0042 L12:
0042 .dbline 36
0042 F5CF rjmp L11
0044 X0:
0044 .dbline -2
0044 L10:
0044 .dbline 0 ; func end
0044 0895 ret
0046 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -