main.lis

来自「meg16 的所有功能实例」· LIS 代码 · 共 218 行

LIS
218
字号
                        .module main.c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\LED跑马灯实验\main.c
 0000                   .dbfunc e Delay_us _Delay_us fV
 0000           ;           time -> R16,R17
                        .even
 0000           _Delay_us::
 0000                   .dbline -1
 0000                   .dbline 43
 0000           ; /****************************************Copyright (c)**************************************************
 0000           ; **                               ADEmbed Development Co.,LTD.                                    
 0000           ; **                                 http://www.adembed.com
 0000           ; **--------------File Info-------------------------------------------------------------------------------
 0000           ; ** File name:                 main.c
 0000           ; ** Last modified Date:  2008-12-13
 0000           ; ** Last Version:              1.0
 0000           ; ** Descriptions:              LED Test.
 0000           ; ** 
 0000           ; **------------------------------------------------------------------------------------------------------
 0000           ; ** Created by:                        junbolu
 0000           ; ** Created date:              2008-12-13
 0000           ; ** Version:                           1.0
 0000           ; ** Descriptions:              
 0000           ; **
 0000           ; **------------------------------------------------------------------------------------------------------
 0000           ; ** Modified by:
 0000           ; ** Modified date:
 0000           ; ** Version:
 0000           ; ** Descriptions:
 0000           ; **
 0000           ; **------------------------------------------------------------------------------------------------------
 0000           ; **ICC-AVR application builder : 2008-12-13
 0000           ; **Target : M16
 0000           ; **Crystal: 7.3728Mhz
 0000           ; **PA0~PA7口接8位LED指示灯的使能端(低电平使能)
 0000           ; **
 0000           ; **描述:8位LED指示灯点亮,并且让他们循环闪烁。
 0000           ; **      学习单片机的简单程序,如果你才学习单片机,一定要好好掌握。
 0000           ; **
 0000           ; **涉及知识点:
 0000           ; **          DO输出
 0000           ; **          for 循环的应用
 0000           ; **                    软件延时函数的编写
 0000           ; *******************************************************************************************************/
 0000           ; 
 0000           ; #include<iom16v.h>
 0000           ; #include<macros.h>
 0000           ; 
 0000           ; unsigned char DISP_NUM;               //电亮的位数,一共8位
 0000           ; 
 0000           ; void Delay_us(unsigned int time)
 0000           ; {
 0000           L2:
 0000                   .dbline 44
 0000           L3:
 0000                   .dbline 44
 0000           ; while(time--);
 0000 1801              movw R2,R16
 0002 0150              subi R16,1
 0004 1040              sbci R17,0
 0006 2220              tst R2
 0008 D9F7              brne L2
 000A 3320              tst R3
 000C C9F7              brne L2
 000E           X0:
 000E                   .dbline -2
 000E           L1:
 000E                   .dbline 0 ; func end
 000E 0895              ret
 0010                   .dbsym r time 16 i
 0010                   .dbend
 0010                   .dbfunc e Delay_ms _Delay_ms fV
 0010           ;           time -> R20,R21
                        .even
 0010           _Delay_ms::
 0010 0E940000          xcall push_gset1
 0014 A801              movw R20,R16
 0016                   .dbline -1
 0016                   .dbline 48
 0016           ; }
 0016           ; 
 0016           ; void Delay_ms(unsigned int time)
 0016           ; {
 0016 03C0              xjmp L7
 0018           L6:
 0018                   .dbline 50
 0018                   .dbline 51
 0018 08EE              ldi R16,1000
 001A 13E0              ldi R17,3
 001C F1DF              xcall _Delay_us
 001E                   .dbline 52
 001E           L7:
 001E                   .dbline 49
 001E           ; while(time--)
 001E 1A01              movw R2,R20
 0020 4150              subi R20,1
 0022 5040              sbci R21,0
 0024 2220              tst R2
 0026 C1F7              brne L6
 0028 3320              tst R3
 002A B1F7              brne L6
 002C           X1:
 002C                   .dbline -2
 002C           L5:
 002C 0E940000          xcall pop_gset1
 0030                   .dbline 0 ; func end
 0030 0895              ret
 0032                   .dbsym r time 20 i
 0032                   .dbend
 0032                   .dbfunc e main _main fV
                        .even
 0032           _main::
 0032                   .dbline -1
 0032                   .dbline 56
 0032           ;       {
 0032           ;       Delay_us(1000);
 0032           ;       }
 0032           ; }
 0032           ; 
 0032           ; void main(void)
 0032           ; {
 0032                   .dbline 58
 0032           ;  //初始化端口
 0032           ;  DDRA=0XFF;                   //设置PA端口为输出                                                      
 0032 8FEF              ldi R24,255
 0034 8ABB              out 0x1a,R24
 0036                   .dbline 59
 0036           ;  PORTA=0XFF;          //设置PA端口为高电平
 0036 8BBB              out 0x1b,R24
 0038                   .dbline 62
 0038           ;  
 0038           ;  //开始演示
 0038           ;  for(;;)
 0038           L10:
 0038                   .dbline 63
 0038           ;  {
 0038                   .dbline 64
 0038           ;  PORTA=0X00;          //全部点亮
 0038 2224              clr R2
 003A 2BBA              out 0x1b,R2
 003C                   .dbline 65
 003C           ;  Delay_ms(200);       //延时0.2s
 003C 08EC              ldi R16,200
 003E 10E0              ldi R17,0
 0040 E7DF              xcall _Delay_ms
 0042                   .dbline 66
 0042           ;  PORTA=0XFF;          //全部熄灭
 0042 8FEF              ldi R24,255
 0044 8BBB              out 0x1b,R24
 0046                   .dbline 67
 0046           ;  Delay_ms(200);       //延时0.2s
 0046 08EC              ldi R16,200
 0048 10E0              ldi R17,0
 004A E2DF              xcall _Delay_ms
 004C                   .dbline 68
 004C           ;  PORTA=0X00;          //全部点亮
 004C 2224              clr R2
 004E 2BBA              out 0x1b,R2
 0050                   .dbline 69
 0050           ;  Delay_ms(200);       //延时0.2s
 0050 08EC              ldi R16,200
 0052 10E0              ldi R17,0
 0054 DDDF              xcall _Delay_ms
 0056                   .dbline 70
 0056           ;  PORTA=0XFF;          //全部熄灭
 0056 8FEF              ldi R24,255
 0058 8BBB              out 0x1b,R24
 005A                   .dbline 71
 005A           ;  Delay_ms(1000);      //延时1s
 005A 08EE              ldi R16,1000
 005C 13E0              ldi R17,3
 005E D8DF              xcall _Delay_ms
 0060                   .dbline 73
 0060           ;  
 0060           ;  for(DISP_NUM=0;DISP_NUM<8;DISP_NUM++)        //循环熄灭
 0060 2224              clr R2
 0062 20920000          sts _DISP_NUM,R2
 0066 10C0              xjmp L17
 0068           L14:
 0068                   .dbline 74
 0068                   .dbline 75
 0068 10910000          lds R17,_DISP_NUM
 006C 01E0              ldi R16,1
 006E 0E940000          xcall lsl8
 0072 202E              mov R2,R16
 0074 2094              com R2
 0076 2BBA              out 0x1b,R2
 0078                   .dbline 76
 0078 08EC              ldi R16,200
 007A 10E0              ldi R17,0
 007C C9DF              xcall _Delay_ms
 007E                   .dbline 77
 007E           L15:
 007E                   .dbline 73
 007E 80910000          lds R24,_DISP_NUM
 0082 8F5F              subi R24,255    ; addi 1
 0084 80930000          sts _DISP_NUM,R24
 0088           L17:
 0088                   .dbline 73
 0088 80910000          lds R24,_DISP_NUM
 008C 8830              cpi R24,8
 008E 60F3              brlo L14
 0090                   .dbline 78
 0090                   .dbline 62
 0090                   .dbline 62
 0090 D3CF              xjmp L10
 0092           X2:
 0092                   .dbline -2
 0092           L9:
 0092                   .dbline 0 ; func end
 0092 0895              ret
 0094                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile E:\MYWORK~1\开发设计\EasyAVR\程序范例\Mega16程序包\完成整理\LED跑马灯实验\main.c
 0000           _DISP_NUM::
 0000                   .blkb 1
 0001                   .dbsym e DISP_NUM _DISP_NUM c

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?