📄 hd_support.lis
字号:
002E 2224 clr R2
0030 25BC out 0x25,R2
0032 .dbline 138
0032 ; TCNT0 = 0x83; //计数初值
0032 83E8 ldi R24,131
0034 86BD out 0x26,R24
0036 .dbline 139
0036 ; TCCR0A = 0x00;
0036 24BC out 0x24,R2
0038 .dbline 140
0038 ; TCCR0B = 0x02; //8分频
0038 82E0 ldi R24,2
003A 85BD out 0x25,R24
003C .dbline -2
003C L3:
003C .dbline 0 ; func end
003C 0895 ret
003E .dbend
003E .dbfunc e Timer0_OVF_ISR _Timer0_OVF_ISR fV
.even
003E _Timer0_OVF_ISR::
003E 00D0 rcall push_lset
0040 .dbline -1
0040 .dbline 150
0040 ; }
0040 ;
0040 ; /***********************************************************
0040 ; * 函数声明:定时器0溢出中断处理程序 *
0040 ; * 输入: 无 *
0040 ; * 输出: 无 *
0040 ; * 调用函数:INSERT_TIMER0_OVF_ISR_CODE *
0040 ; ***********************************************************/
0040 ; void Timer0_OVF_ISR(void)
0040 ; {
0040 .dbline 152
0040 ; //*这里要添加对定时计数器重新设置计数底数的代码*//
0040 ; INSERT_TIMER0_OVF_ISR_CODE
0040 7894 sei
0042 .dbline 152
0042 00D0 rcall _Insert_Timer0_OVF_ISR_Code
0044 .dbline -2
0044 L4:
0044 00D0 rcall pop_lset
0046 .dbline 0 ; func end
0046 1895 reti
0048 .dbend
0048 .dbfunc s Timer1_INIT _Timer1_INIT fV
.even
0048 _Timer1_INIT:
0048 .dbline -1
0048 .dbline 162
0048 ; }
0048 ;
0048 ; /***********************************************************
0048 ; * 函数声明:定时器1初始化函数 *
0048 ; * 输入: 无 *
0048 ; * 输出: 无 *
0048 ; * 调用函数:无 *
0048 ; ***********************************************************/
0048 ; static void Timer1_INIT(void)
0048 ; {
0048 .dbline 165
0048 ; //*在这里粘贴从代码生成向导中生成的初始化代码*//
0048 ; //*要求为3S的溢出中断 *//
0048 ; TCCR1B = 0x00;
0048 2224 clr R2
004A 20928100 sts 129,R2
004E .dbline 166
004E ; TCNT1H = 0xCD;
004E 8DEC ldi R24,205
0050 80938500 sts 133,R24
0054 .dbline 167
0054 ; TCNT1L = 0x24;
0054 84E2 ldi R24,36
0056 80938400 sts 132,R24
005A .dbline 168
005A ; TCCR1A = 0x00;
005A 20928000 sts 128,R2
005E .dbline -2
005E L5:
005E .dbline 0 ; func end
005E 0895 ret
0060 .dbend
0060 .dbfunc e Timer1_OVF_ISR _Timer1_OVF_ISR fV
.even
0060 _Timer1_OVF_ISR::
0060 00D0 rcall push_lset
0062 .dbline -1
0062 .dbline 178
0062 ; }
0062 ;
0062 ; /***********************************************************
0062 ; * 函数声明:定时器0溢出中断处理程序 *
0062 ; * 输入: 无 *
0062 ; * 输出: 无 *
0062 ; * 调用函数:INSERT_TIMER1_OVF_ISR_CODE *
0062 ; ***********************************************************/
0062 ; void Timer1_OVF_ISR(void)
0062 ; {
0062 .dbline 180
0062 ; //*这里要添加对定时计数器重新设置计数底数的代码*//
0062 ; INSERT_TIMER1_OVF_ISR_CODE
0062 7894 sei
0064 .dbline 180
0064 00D0 rcall _Insert_Timer1_OVF_ISR_Code
0066 .dbline -2
0066 L6:
0066 00D0 rcall pop_lset
0068 .dbline 0 ; func end
0068 1895 reti
006A .dbend
006A .dbfunc s TWI_INIT _TWI_INIT fV
.even
006A _TWI_INIT:
006A .dbline -1
006A .dbline 190
006A ; }
006A ;
006A ; /***********************************************************
006A ; * 函数声明:TWI初始化函数 *
006A ; * 输入: 无 *
006A ; * 输出: 无 *
006A ; * 调用函数:无 *
006A ; ***********************************************************/
006A ; static void TWI_INIT(void)
006A ; {
006A .dbline 192
006A ; //这里粘贴从代码生成向导中获得的初始化代码
006A ; TWCR= 0x00; //初始化之前关闭TWI
006A 2224 clr R2
006C 2092BC00 sts 188,R2
0070 .dbline 193
0070 ; TWBR= 0xC8; //设置时钟位速率,TWI位速率为2.4k
0070 88EC ldi R24,200
0072 8093B800 sts 184,R24
0076 .dbline 194
0076 ; TWSR= 0x00; //设置预分频比为1
0076 2092B900 sts 185,R2
007A .dbline 195
007A ; TWAR= 0xF0; //当主机接收从机返回时间数据时的TWI从机地址
007A 80EF ldi R24,240
007C 8093BA00 sts 186,R24
0080 .dbline 196
0080 ; TWCR= 0x45; //允许应答,使能TWI,使能TWI中断
0080 85E4 ldi R24,69
0082 8093BC00 sts 188,R24
0086 .dbline -2
0086 L7:
0086 .dbline 0 ; func end
0086 0895 ret
0088 .dbend
0088 .dbfunc e TWI_ISR _TWI_ISR fV
.even
0088 _TWI_ISR::
0088 00D0 rcall push_lset
008A .dbline -1
008A .dbline 206
008A ; }
008A ;
008A ; /***********************************************************
008A ; * 函数声明:TWI事件中断处理程序 *
008A ; * 输入: 无 *
008A ; * 输出: 无 *
008A ; * 调用函数:INSERT_TWI_ISR_CODE *
008A ; ***********************************************************/
008A ; void TWI_ISR(void)
008A ; {
008A .dbline 207
008A ; INSERT_TWI_ISR_CODE
008A 00D0 rcall _Insert_Twi_Isr_Code
008C .dbline -2
008C L8:
008C 00D0 rcall pop_lset
008E .dbline 0 ; func end
008E 1895 reti
0090 .dbend
0090 .dbfunc s SPI_INIT _SPI_INIT fV
.even
0090 _SPI_INIT:
0090 .dbline -1
0090 .dbline 217
0090 ; }
0090 ;
0090 ; /***********************************************************
0090 ; * 函数声明:SPI初始化函数 *
0090 ; * 输入: 无 *
0090 ; * 输出: 无 *
0090 ; * 调用函数:无 *
0090 ; ***********************************************************/
0090 ; static void SPI_INIT(void)
0090 ; {
0090 .dbline 218
0090 ; SPCR = 0x7D; //禁止SPI中断,使能SPI模块,LSB先传送,选择主机模式,空闲时时钟为高,时钟结束沿采样,时钟频率64分频
0090 8DE7 ldi R24,125
0092 8CBD out 0x2c,R24
0094 .dbline 219
0094 ; SPSR = 0x00; //不使用SPI倍速
0094 2224 clr R2
0096 2DBC out 0x2d,R2
0098 .dbline -2
0098 L9:
0098 .dbline 0 ; func end
0098 0895 ret
009A .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -