📄 hd_support.lis
字号:
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 + -