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

📄 hd_support.lis

📁 《深入浅出AVR单片机——从ATmega48/88/168开始》的实例程序源代码
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 0010 85B9              out 0x5,R24
 0012                   .dbline 112
 0012           ;     PORTC = 0b11111111;
 0012 88B9              out 0x8,R24
 0014                   .dbline 113
 0014           ;     PORTD = 0b11111111;
 0014 8BB9              out 0xb,R24
 0016                   .dbline 115
 0016           ;     
 0016           ;     DDRB = 0b00000000;
 0016 2224              clr R2
 0018 24B8              out 0x4,R2
 001A                   .dbline 116
 001A           ;     DDRC = 0b00100000;                  //PC5端口设置为输出状态
 001A 80E2              ldi R24,32
 001C 87B9              out 0x7,R24
 001E                   .dbline 117
 001E           ;     DDRD = 0b00100000;                  //PD5[OC0B]端口设置为输出状态
 001E 8AB9              out 0xa,R24
 0020                   .dbline -2
 0020           L2:
 0020                   .dbline 0 ; func end
 0020 0895              ret
 0022                   .dbend
 0022                   .dbfunc e Timer0_INIT _Timer0_INIT fV
                        .even
 0022           _Timer0_INIT::
 0022                   .dbline -1
 0022                   .dbline 127
 0022           ; }
 0022           ; 
 0022           ; /***********************************************************
 0022           ; *   函数声明:定时器0初始化函数                            *
 0022           ; *   输入:    无                                           *
 0022           ; *   输出:    无                                           *
 0022           ; *   调用函数:无                                           *
 0022           ; ***********************************************************/
 0022           ; void Timer0_INIT(void)
 0022           ; {
 0022                   .dbline 130
 0022           ;     //*在这里粘贴从代码生成向导中生成的初始化代码*//
 0022           ;     //*要求为1K的溢出中断                        *//
 0022           ;     TCCR0B = 0x00;          //1kHz PWM模式
 0022 2224              clr R2
 0024 25BC              out 0x25,R2
 0026                   .dbline 131
 0026           ;     TCCR0A = 0x23;          //OC0B端口在比较匹配时清零, 在计数值达到TOP时置位
 0026 83E2              ldi R24,35
 0028 84BD              out 0x24,R24
 002A                   .dbline 132
 002A           ;     TCNT0 = 0x00;
 002A 26BC              out 0x26,R2
 002C                   .dbline 133
 002C           ;     OCR0A = 0x83;           //计数TOP值
 002C 83E8              ldi R24,131
 002E 87BD              out 0x27,R24
 0030                   .dbline 134
 0030           ;     OCR0B = 0x00;           //比较匹配初始值
 0030 28BC              out 0x28,R2
 0032                   .dbline 135
 0032           ;     TCCR0B = 0x0A;          //WGM02...00 = 111, 8分频, 快速PWM模式OCR0A作为TOP
 0032 8AE0              ldi R24,10
 0034 85BD              out 0x25,R24
 0036                   .dbline -2
 0036           L3:
 0036                   .dbline 0 ; func end
 0036 0895              ret
 0038                   .dbend
 0038                   .dbfunc e Timer0_OVF_ISR _Timer0_OVF_ISR fV
                        .even
 0038           _Timer0_OVF_ISR::
 0038                   .dbline -1
 0038                   .dbline 145
 0038           ; }
 0038           ; 
 0038           ; /***********************************************************
 0038           ; *   函数声明:定时器0溢出中断处理程序                      *
 0038           ; *   输入:    无                                           *
 0038           ; *   输出:    无                                           *
 0038           ; *   调用函数:INSERT_TIMER0_OVF_ISR_CODE                   *
 0038           ; ***********************************************************/
 0038           ; void Timer0_OVF_ISR(void)
 0038           ; {
 0038                   .dbline -2
 0038           L4:
 0038                   .dbline 0 ; func end
 0038 1895              reti
 003A                   .dbend
 003A                   .dbfunc e Timer1_INIT _Timer1_INIT fV
                        .even
 003A           _Timer1_INIT::
 003A                   .dbline -1
 003A                   .dbline 157
 003A           ;     //*这里要添加对定时计数器重新设置计数底数的代码*//
 003A           ;       INSERT_TIMER0_OVF_ISR_CODE
 003A           ; }
 003A           ; 
 003A           ; /***********************************************************
 003A           ; *   函数声明:定时器1初始化函数                            *
 003A           ; *   输入:    无                                           *
 003A           ; *   输出:    无                                           *
 003A           ; *   调用函数:无                                           *
 003A           ; ***********************************************************/
 003A           ; void Timer1_INIT(void)
 003A           ; {
 003A                   .dbline 160
 003A           ;     //*在这里粘贴从代码生成向导中生成的初始化代码*//
 003A           ;     //*要求为20Hz的溢出中断                      *//
 003A           ;     TCCR1B = 0x00;
 003A 2224              clr R2
 003C 20928100          sts 129,R2
 0040                   .dbline 161
 0040           ;     TCNT1H = 0xFF;
 0040 8FEF              ldi R24,255
 0042 80938500          sts 133,R24
 0046                   .dbline 162
 0046           ;     TCNT1L = 0x3D;
 0046 8DE3              ldi R24,61
 0048 80938400          sts 132,R24
 004C                   .dbline 163
 004C           ;     TCCR1A = 0x00;
 004C 20928000          sts 128,R2
 0050                   .dbline 164
 0050           ;     TCCR1B = 0x04;
 0050 84E0              ldi R24,4
 0052 80938100          sts 129,R24
 0056                   .dbline -2
 0056           L5:
 0056                   .dbline 0 ; func end
 0056 0895              ret
 0058                   .dbend
 0058                   .dbfunc e Timer1_OVF_ISR _Timer1_OVF_ISR fV
                        .even
 0058           _Timer1_OVF_ISR::
 0058 00D0              rcall push_lset
 005A                   .dbline -1
 005A                   .dbline 174
 005A           ; }
 005A           ; 
 005A           ; /***********************************************************
 005A           ; *   函数声明:定时器1溢出中断处理程序                      *
 005A           ; *   输入:    无                                           *
 005A           ; *   输出:    无                                           *
 005A           ; *   调用函数:INSERT_TIMER1_OVF_ISR_CODE                   *
 005A           ; ***********************************************************/
 005A           ; void Timer1_OVF_ISR(void)
 005A           ; {
 005A                   .dbline 176
 005A           ;     //*这里要添加对定时计数器重新设置计数底数的代码*//
 005A           ;     INSERT_TIMER1_OVF_ISR_CODE
 005A 7894              sei
 005C                   .dbline 176
 005C 00D0              rcall _Insert_Timer1_OVF_ISR_Code
 005E                   .dbline -2
 005E           L6:
 005E 00D0              rcall pop_lset
 0060                   .dbline 0 ; func end
 0060 1895              reti
 0062                   .dbend

⌨️ 快捷键说明

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