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

📄 horselight.lis

📁 protues_atmeg8学习之:LED篇源代码
💻 LIS
字号:
                        .module HorseLight.c
                        .area text(rom, con, rel)
 0000                   .dbfile F:\Learn\AVR\Pro_Mega8\LED\Horse_Light\HorseLight.c
 0000                   .dbfunc e delay_1ms _delay_1ms fV
 0000           ;              i -> R16,R17
                        .even
 0000           _delay_1ms::
 0000                   .dbline -1
 0000                   .dbline 13
 0000           ; /******************************************/
 0000           ; //文件名:HorseLight.c
 0000           ; //功能: LED的控制
 0000           ; //作者:  young
 0000           ; //时间: 2006.10.1
 0000           ; //目标MCU:ATmega8   
 0000           ; //晶振:  8MHZ
 0000           ; /******************************************/
 0000           ; #include <iom8v.h>
 0000           ; 
 0000           ; //延时1MS
 0000           ; void delay_1ms(void)
 0000           ; { 
 0000                   .dbline 15
 0000           ;     unsigned int i;
 0000           ;     for(i=1;i<(unsigned int)(1144-2);i++)
 0000 01E0              ldi R16,1
 0002 10E0              ldi R17,0
 0004 02C0              rjmp L5
 0006           L2:
 0006                   .dbline 16
 0006           L3:
 0006                   .dbline 15
 0006 0F5F              subi R16,255  ; offset = 1
 0008 1F4F              sbci R17,255
 000A           L5:
 000A                   .dbline 15
 000A 0637              cpi R16,118
 000C E4E0              ldi R30,4
 000E 1E07              cpc R17,R30
 0010 D0F3              brlo L2
 0012                   .dbline -2
 0012                   .dbline 17
 0012           ;     ;
 0012           ; }
 0012           L1:
 0012                   .dbline 0 ; func end
 0012 0895              ret
 0014                   .dbsym r i 16 i
 0014                   .dbend
 0014                   .dbfunc e delay_ms _delay_ms fV
 0014           ;              i -> R20,R21
 0014           ;              n -> R22,R23
                        .even
 0014           _delay_ms::
 0014 00D0              rcall push_gset2
 0016 B801              movw R22,R16
 0018                   .dbline -1
 0018                   .dbline 21
 0018           ; 
 0018           ; //延时nMS
 0018           ; void delay_ms(unsigned int n)
 0018           ; {
 0018                   .dbline 22
 0018           ;     unsigned int i=0;
 0018 4427              clr R20
 001A 5527              clr R21
 001C 03C0              rjmp L8
 001E           L7:
 001E                   .dbline 24
 001E                   .dbline 25
 001E F0DF              rcall _delay_1ms
 0020                   .dbline 26
 0020 4F5F              subi R20,255  ; offset = 1
 0022 5F4F              sbci R21,255
 0024                   .dbline 27
 0024           L8:
 0024                   .dbline 23
 0024           ;     while(i<n)
 0024 4617              cp R20,R22
 0026 5707              cpc R21,R23
 0028 D0F3              brlo L7
 002A                   .dbline -2
 002A                   .dbline 28
 002A           ;     {
 002A           ;           delay_1ms();
 002A           ;         i++;
 002A           ;     }
 002A           ; } 
 002A           L6:
 002A 00D0              rcall pop_gset2
 002C                   .dbline 0 ; func end
 002C 0895              ret
 002E                   .dbsym r i 20 i
 002E                   .dbsym r n 22 i
 002E                   .dbend
 002E                   .dbfunc e main _main fV
 002E           ;              i -> R20
                        .even
 002E           _main::
 002E                   .dbline -1
 002E                   .dbline 32
 002E           ; 
 002E           ; //主函数,依次顺序打开LED
 002E           ; void main()
 002E           ; {
 002E                   .dbline 34
 002E           ;       unsigned char i;
 002E           ;       DDRD=0xFF;      //设置D口为输出模式
 002E 8FEF              ldi R24,255
 0030 81BB              out 0x11,R24
 0032                   .dbline 35
 0032           ;       PORTD=0xFF;     //置高电平
 0032 82BB              out 0x12,R24
 0034 0EC0              rjmp L12
 0036           L11:
 0036                   .dbline 38
 0036           ;    
 0036           ;       while (1)
 0036           ;       {      
 0036                   .dbline 39
 0036           ;         for(i=0;i<8;i++) //顺序打开LED
 0036 4427              clr R20
 0038 0AC0              rjmp L17
 003A           L14:
 003A                   .dbline 40
 003A                   .dbline 41
 003A 01E0              ldi R16,1
 003C 142F              mov R17,R20
 003E 00D0              rcall lsl8
 0040 202E              mov R2,R16
 0042 2094              com R2
 0044 22BA              out 0x12,R2
 0046                   .dbline 42
 0046 08EC              ldi R16,200
 0048 10E0              ldi R17,0
 004A E4DF              rcall _delay_ms
 004C                   .dbline 43
 004C           L15:
 004C                   .dbline 39
 004C 4395              inc R20
 004E           L17:
 004E                   .dbline 39
 004E 4830              cpi R20,8
 0050 A0F3              brlo L14
 0052                   .dbline 44
 0052           L12:
 0052                   .dbline 37
 0052 F1CF              rjmp L11
 0054           X0:
 0054                   .dbline -2
 0054                   .dbline 45
 0054           ;       {
 0054           ;           PORTD=~(1<<i);
 0054           ;           delay_ms(200);
 0054           ;       }                
 0054           ;      }
 0054           ; }
 0054           L10:
 0054                   .dbline 0 ; func end
 0054 0895              ret
 0056                   .dbsym r i 20 c
 0056                   .dbend

⌨️ 快捷键说明

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