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

📄 8515intr.lis

📁 AVR单片机例程
💻 LIS
字号:
                         .module .8515intr.c
                         .area vector(rom, abs)
                         .org 12
 000C 0FC0              rjmp _timer
                         .area data(ram, con, rel)
 0000                 _led_image::
 0000                   .blkb 1
                         .area idata
 0000 FF                .byte 255
                         .area data(ram, con, rel)
 0001                   .dbfile D:\ICC-AVR\examples.sl\interrupt\8515intr.c
 0001                   .dbsym s led_image _led_image c
                         .area text(rom, con, rel)
 0000                   .dbfile D:\ICC-AVR\examples.sl\interrupt\8515intr.c
 0000                   .dbfunc s main _main fI
                         .even
 0000                 _main::
 0000                   .dbline 9{
                       ; #include <io8515.h>
                       ; #pragma interrupt_handler timer:TOV1
                       ; 
                       ; char led_image = 0xFF;  // 关闭全部LED
                       ; /***************************************
                       ;           主程序入口
                       ; ***************************************/
                       ; void main()
                       ; {
 0000                   .dbline 13
                       ; /***************************
                       ;    初始化8515寄存器
                       ; ***************************/
                       ;         DDRB = 0xFF;
 0000 8FEF              ldi R24,255
 0002 87BB              out 0x17,R24
 0004                   .dbline 14
                       ;         PORTB = 0x00;
 0004 2224              clr R2
 0006 28BA              out 0x18,R2
 0008                   .dbline 15
                       ;         TCCR1A=0;
 0008 2FBC              out 0x2f,R2
 000A                   .dbline 16
                       ;         TCCR1B = 0x00;          // 停止定时器1
 000A 2EBC              out 0x2e,R2
 000C                   .dbline 17
                       ;         TCNT1H = 0x00;          // 清除定时器1
 000C 2DBC              out 0x2d,R2
 000E                   .dbline 18
                       ;         TCNT1L = 0x00;
 000E 2CBC              out 0x2c,R2
 0010                   .dbline 19
                       ;         TIMSK=0x80;           // 开放定时器1溢出中断
 0010 80E8              ldi R24,128
 0012 89BF              out 0x39,R24
 0014                   .dbline 20
                       ;         SREG|=0x80;
 0014 7894              bset 7
 0016                   .dbline 21
                       ;         TCCR1B =0x03;          // 启动定时器1 预分频比例64
 0016 83E0              ldi R24,3
 0018 8EBD              out 0x2e,R24
 001A                 L2:
 001A                   .dbline 23
 001A                 L3:
 001A                   .dbline 22
                       ;         while (1)
 001A FFCF              rjmp L2
 001C                 X0:
 001C                   .dbline 24}
                       ;     ;
                       ; }
 001C                 L1:
 001C 0895              ret
 001E                   .dbfunc s timer _timer fI
                         .even
 001E                 _timer::
 001E 2A92              st -y,R2
 0020 8A93              st -y,R24
 0022 9A93              st -y,R25
 0024 2FB6              in R2,0x3f
 0026 2A92              st -y,R2
 0028                   .dbline 29{
                       ; /*************************************
                       ;    在定时器中断中改变LED的显示状态
                       ; *************************************/
                       ; void timer()
                       ; {
 0028                   .dbline 30
                       ;  PORTB = ++led_image;
 0028 80910000          lds R24,_led_image
 002C 8F5F              subi R24,255    ; addi 1
 002E 282E              mov R2,R24
 0030 20920000          sts _led_image,R2
 0034 28BA              out 0x18,R2
 0036                   .dbline 31
                       ;  PORTC=~PORTC;
 0036 25B2              in R2,0x15
 0038 2094              com R2
 003A 25BA              out 0x15,R2
 003C                   .dbline 32}
                       ; }
 003C                 L5:
 003C 2990              ld R2,y+
 003E 2FBE              out 0x3f,R2
 0040 9991              ld R25,y+
 0042 8991              ld R24,y+
 0044 2990              ld R2,y+
 0046 1895              reti

⌨️ 快捷键说明

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