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

📄 hd_support.lis

📁 《深入浅出AVR单片机——从ATmega48/88/168开始》的实例程序源代码
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 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 + -