⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 训练项目十一:led及拨码开关的综合实验.lis

📁 长沙理工自己的实验程序
💻 LIS
字号:
                        .module _训练项目十一:LED及拨码开关的综合实验.c
                        .area text(rom, con, rel)
                ;   uidelay_time -> R20,R21
                ;         uitime -> R16,R17
                        .even
 0000           _Delay::
 0000 4A93              st -y,R20
 0002 5A93              st -y,R21
 0004           ; /*******************************************Copyright(c)*******************************************
 0004           ; **                           ChangSha University of Science & Technology                   
 0004           ; **
 0004           ; **                                     http://www.csust.com                                       
 0004           ; **
 0004           ; **-------File Info---------------------------------------------------------------------------------
 0004           ; ** File Name:                        LED及拨码开关的综合试实验
 0004           ; ** Latest modified Date:             2008.7.26
 0004           ; ** Latest Version:
 0004           ; ** Description:                      通过控制方向寄存器来控制输出电平的高低,进而实现交互闪烁灯              
 0004           ; **                            
 0004           ; **-------------------------------------------------------------------------------------------------
 0004           ; ** Created By:
 0004           ; ** Created date:
 0004           ; ** Version:
 0004           ; ** Descriptions:
 0004           ; **
 0004           ; **-------------------------------------------------------------------------------------------------
 0004           ; ** Modified by:                      congdongliang
 0004           ; ** Modified date:                    2008.7.26
 0004           ; ** Version:
 0004           ; ** Description:                      根据《代码规范》修改了部分变量命名及程序格式,使程序更规范
 0004           ; **                            
 0004           ; **************************************************************************************************/             
 0004           ; 
 0004           ; #include "iom128v.h"
 0004           ; 
 0004           ; /**************************************************************************************************
 0004           ; ** Function name:                    Delay
 0004           ; ** Description:                      延时程序
 0004           ; ** input parameters:         
 0004           ; ** output parameters:         
 0004           ; ** Returned value:            
 0004           ; ** Created by:
 0004           ; ** Created Date:
 0004           ; **-------------------------------------------------------------------------------------------------
 0004           ; ** Modified by:                      congdongliang
 0004           ; ** Modified date:                    2008.7.26
 0004           ; **-------------------------------------------------------------------------------------------------
 0004           ; **************************************************************************************************/
 0004           ; 
 0004           ; void Delay (unsigned int  uitime)
 0004           ; {                    
 0004           ;     unsigned int uidelay_time;
 0004           ;            
 0004           ;     for(uidelay_time=0; uidelay_time<uitime; uidelay_time++);
 0004 4427              clr R20
 0006 5527              clr R21
 0008 02C0              xjmp L5
 000A           L2:
 000A           L3:
 000A 4F5F              subi R20,255  ; offset = 1
 000C 5F4F              sbci R21,255
 000E           L5:
 000E 4017              cp R20,R16
 0010 5107              cpc R21,R17
 0012 D8F3              brlo L2
 0014           X0:
 0014           L1:
 0014                   .dbline 0 ; func end
 0014 5991              ld R21,y+
 0016 4991              ld R20,y+
 0018 0895              ret
                        .even
 001A           _main::
 001A           ;        
 001A           ; }
 001A           ; 
 001A           ; /**************************************************************************************************
 001A           ; ** Function name:                    main
 001A           ; ** Description:                      通过控制寄存器来控制PA口输出电平的高低,来实现两个LED灯的交互
 001A           ; **                                   闪烁                    
 001A           ; ** input parameters:                 
 001A           ; ** output parameters:               
 001A           ; **
 001A           ; ** Returned value:
 001A           ; ** Created by:
 001A           ; ** Created Date:
 001A           ; **-------------------------------------------------------------------------------------------------
 001A           ; ** Modified by:                      congdongliang
 001A           ; ** Modified date:                    2008.7.26
 001A           ; **-------------------------------------------------------------------------------------------------
 001A           ; **************************************************************************************************/
 001A           ; void main ()
 001A           ; {
 001A           ;     DDRA = 0xFF;              
 001A 8FEF              ldi R24,255
 001C 8ABB              out 0x1a,R24
 001E           ;     PORTA= 0xFF;  
 001E 8BBB              out 0x1b,R24
 0020           ;     DDRB = 0x00;
 0020 2224              clr R2
 0022 27BA              out 0x17,R2
 0024           ;     PORTB= 0xFF;                     /* 定义PA口、PB口的数据方向寄存器,以及对其数据寄存器初始化 */
 0024 88BB              out 0x18,R24
 0026           ;        
 0026           ;     for(;;){
 0026           L7:
 0026           ;         if((PINB & 0x01) == 0) {
 0026 B099              sbic 0x16,0
 0028 3BC0              rjmp L11
 002A           X1:
 002A           ; 	        PORTA = 0xFD;            /* 判断PB0的状态,若为0,则执行LED交互闪烁                  */
 002A 8DEF              ldi R24,253
 002C 8BBB              out 0x1b,R24
 002E           ;           
 002E           ;             Delay(6000);
 002E 00E7              ldi R16,6000
 0030 17E1              ldi R17,23
 0032 E6DF              xcall _Delay
 0034           ;               Delay(6000);         
 0034 00E7              ldi R16,6000
 0036 17E1              ldi R17,23
 0038 E3DF              xcall _Delay
 003A           ;             Delay(6000); 
 003A 00E7              ldi R16,6000
 003C 17E1              ldi R17,23
 003E E0DF              xcall _Delay
 0040           ;             Delay(6000); 
 0040 00E7              ldi R16,6000
 0042 17E1              ldi R17,23
 0044 DDDF              xcall _Delay
 0046           ;               Delay(6000);          
 0046 00E7              ldi R16,6000
 0048 17E1              ldi R17,23
 004A DADF              xcall _Delay
 004C           ;             Delay(6000); 
 004C 00E7              ldi R16,6000
 004E 17E1              ldi R17,23
 0050 D7DF              xcall _Delay
 0052           ;             Delay(6000); 
 0052 00E7              ldi R16,6000
 0054 17E1              ldi R17,23
 0056 D4DF              xcall _Delay
 0058           ;             Delay(6000);         
 0058 00E7              ldi R16,6000
 005A 17E1              ldi R17,23
 005C D1DF              xcall _Delay
 005E           ;             Delay(6000);
 005E 00E7              ldi R16,6000
 0060 17E1              ldi R17,23
 0062 CEDF              xcall _Delay
 0064           ;          
 0064           ;             PORTA = 0xFB;
 0064 8BEF              ldi R24,251
 0066 8BBB              out 0x1b,R24
 0068           ;                    
 0068           ;             Delay(6000); 
 0068 00E7              ldi R16,6000
 006A 17E1              ldi R17,23
 006C C9DF              xcall _Delay
 006E           ;               Delay(6000);         
 006E 00E7              ldi R16,6000
 0070 17E1              ldi R17,23
 0072 C6DF              xcall _Delay
 0074           ;             Delay(6000); 
 0074 00E7              ldi R16,6000
 0076 17E1              ldi R17,23
 0078 C3DF              xcall _Delay
 007A           ;             Delay(6000); 
 007A 00E7              ldi R16,6000
 007C 17E1              ldi R17,23
 007E C0DF              xcall _Delay
 0080           ;               Delay(6000);          
 0080 00E7              ldi R16,6000
 0082 17E1              ldi R17,23
 0084 BDDF              xcall _Delay
 0086           ;             Delay(6000);
 0086 00E7              ldi R16,6000
 0088 17E1              ldi R17,23
 008A BADF              xcall _Delay
 008C           ;             Delay(6000); 
 008C 00E7              ldi R16,6000
 008E 17E1              ldi R17,23
 0090 B7DF              xcall _Delay
 0092           ;               Delay(6000);         
 0092 00E7              ldi R16,6000
 0094 17E1              ldi R17,23
 0096 B4DF              xcall _Delay
 0098           ;             Delay(6000);
 0098 00E7              ldi R16,6000
 009A 17E1              ldi R17,23
 009C B1DF              xcall _Delay
 009E           ;         }else{ 
 009E C3CF              xjmp L7
 00A0           L11:
 00A0           ;                        
 00A0           ;             PORTA = 0xFF;            /* PB0为1时,PA口输出全为1,LED全部不亮                     */         
 00A0 8FEF              ldi R24,255
 00A2 8BBB              out 0x1b,R24
 00A4           ;         }
 00A4           ;       }
 00A4 C0CF              xjmp L7
 00A6           X2:
 00A6           L6:
 00A6                   .dbline 0 ; func end
 00A6 0895              ret
 00A8           ; }
 00A8           ; /**************************************************************************************************
 00A8           ;   END FILE
 00A8           ; **************************************************************************************************/
 00A8           ; 

⌨️ 快捷键说明

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