📄 ex_support.lis
字号:
0024 ; Time--;
0024 ; }
0024 ; }
0024 ;
0024 ; /***********************************************************
0024 ; * 函数说明:蜂鸣器鸣叫函数 *
0024 ; * 输入: 无 *
0024 ; * 输出: 无 *
0024 ; * 调用函数:无 *
0024 ; ***********************************************************/
0024 ; void Beep (unsigned int Time)
0024 ; {
0024 .dbline 156
0024 ; PORTB |= 0x01;
0024 289A sbi 0x5,0
0026 .dbline 157
0026 ; Delay_ms(Time);
0026 8A01 movw R16,R20
0028 EBDF rcall _Delay_ms
002A .dbline 158
002A ; PORTB &= 0xFE;
002A 85B1 in R24,0x5
002C 8E7F andi R24,254
002E 85B9 out 0x5,R24
0030 .dbline -2
0030 L9:
0030 00D0 rcall pop_gset1
0032 .dbline 0 ; func end
0032 0895 ret
0034 .dbsym r Time 20 i
0034 .dbend
0034 .dbfunc s Driver_INIT _Driver_INIT fV
.even
0034 _Driver_INIT:
0034 .dbline -1
0034 .dbline 168
0034 ; }
0034 ;
0034 ; /***********************************************************
0034 ; * 函数说明:软件驱动初始化函数 *
0034 ; * 输入: 无 *
0034 ; * 输出: 无 *
0034 ; * 调用函数:无 *
0034 ; ***********************************************************/
0034 ; static void Driver_INIT(void)
0034 ; {
0034 .dbline -2
0034 L10:
0034 .dbline 0 ; func end
0034 0895 ret
0036 .dbend
0036 .dbfunc e System_INIT _System_INIT fV
.even
0036 _System_INIT::
0036 .dbline -1
0036 .dbline 179
0036 ; //*在这里插入你的各类软件驱动初始化代码*//
0036 ; }
0036 ;
0036 ; /***********************************************************
0036 ; * 函数说明:系统初始化函数 *
0036 ; * 输入: 无 *
0036 ; * 输出: 无 *
0036 ; * 调用函数:Device_INIT() Driver_INIT() *
0036 ; ***********************************************************/
0036 ; void System_INIT(void)
0036 ; {
0036 .dbline 180
0036 ; CLI();
0036 F894 cli
0038 .dbline 182
0038 ;
0038 ; Device_INIT();
0038 00D0 rcall _Device_INIT
003A .dbline 183
003A ; Driver_INIT();
003A FCDF rcall _Driver_INIT
003C .dbline 187
003C ;
003C ; //*在这里插入你的系统环境变量初始化代码*//
003C ;
003C ; SEI();
003C 7894 sei
003E .dbline -2
003E L11:
003E .dbline 0 ; func end
003E 0895 ret
0040 .dbend
0040 .dbfunc e Insert_Timer0_OVF_ISR_Code _Insert_Timer0_OVF_ISR_Code fV
.even
0040 _Insert_Timer0_OVF_ISR_Code::
0040 .dbline -1
0040 .dbline 197
0040 ; }
0040 ;
0040 ; /***********************************************************
0040 ; * 函数说明:定时器0中断处理程序代码插入函数 *
0040 ; * 输入: 无 *
0040 ; * 输出: 无 *
0040 ; * 调用函数:无 *
0040 ; ***********************************************************/
0040 ; void Insert_Timer0_OVF_ISR_Code(void)
0040 ; {
0040 .dbline 198
0040 ; TCNT0 = 0x83; //重载定时器
0040 83E8 ldi R24,131
0042 86BD out 0x26,R24
0044 .dbline 200
0044 ;
0044 ; g_wSystemTimer++; //时标产生,以1秒为周期循环时标
0044 80910200 lds R24,_g_wSystemTimer
0048 90910300 lds R25,_g_wSystemTimer+1
004C 0196 adiw R24,1
004E 90930300 sts _g_wSystemTimer+1,R25
0052 80930200 sts _g_wSystemTimer,R24
0056 .dbline 202
0056 ;
0056 ; if (g_wSystemTimer >= TimeStampMax)
0056 883E cpi R24,232
0058 E3E0 ldi R30,3
005A 9E07 cpc R25,R30
005C 30F0 brlo L13
005E .dbline 203
005E ; g_wSystemTimer = 0;
005E 2224 clr R2
0060 3324 clr R3
0062 30920300 sts _g_wSystemTimer+1,R3
0066 20920200 sts _g_wSystemTimer,R2
006A L13:
006A .dbline 205
006A ;
006A ; DoTime = TRUE; //端口刷新与闪烁控制标志
006A 81E0 ldi R24,1
006C 80930400 sts _DoTime,R24
0070 .dbline -2
0070 L12:
0070 .dbline 0 ; func end
0070 0895 ret
0072 .dbend
0072 .dbfunc e Insert_Timer1_OVF_ISR_Code _Insert_Timer1_OVF_ISR_Code fV
.even
0072 _Insert_Timer1_OVF_ISR_Code::
0072 .dbline -1
0072 .dbline 215
0072 ; }
0072 ;
0072 ; /***********************************************************
0072 ; * 函数说明:定时器1中断处理程序代码插入函数 *
0072 ; * 输入: 无 *
0072 ; * 输出: 无 *
0072 ; * 调用函数:无 *
0072 ; ***********************************************************/
0072 ; void Insert_Timer1_OVF_ISR_Code(void)
0072 ; {
0072 .dbline 216
0072 ; TIMERSTOP;
0072 2224 clr R2
0074 20928100 sts 129,R2
0078 .dbline 217
0078 ; ShowTime = TRUE;
0078 81E0 ldi R24,1
007A 80930500 sts _ShowTime,R24
007E .dbline 218
007E ; Beep(10);
007E 0AE0 ldi R16,10
0080 10E0 ldi R17,0
0082 CEDF rcall _Beep
0084 .dbline -2
0084 L15:
0084 .dbline 0 ; func end
0084 0895 ret
0086 .dbend
0086 .dbfunc e Insert_Twi_Isr_Code _Insert_Twi_Isr_Code fV
0086 ; TWIStatus -> R16
.even
0086 _Insert_Twi_Isr_Code::
0086 .dbline -1
0086 .dbline 228
0086 ; }
0086 ;
0086 ; /***********************************************************
0086 ; * 函数说明:TWI中断处理程序代码插入函数 *
0086 ; * 输入: 无 *
0086 ; * 输出: 无 *
0086 ; * 调用函数:无 *
0086 ; ***********************************************************/
0086 ; void Insert_Twi_Isr_Code(void)
0086 ; {
0086 .dbline 231
0086 ; unsigned char TWIStatus;
0086 ;
0086 ; TWIStatus = TWSR&0xF8;
0086 0091B900 lds R16,185
008A 087F andi R16,248
008C .dbline 233
008C ;
008C ; TWCR &= ~(BIT(TWINT)|BIT(TWSTA)|BIT(TWSTO));
008C 8091BC00 lds R24,188
0090 8F74 andi R24,79
0092 8093BC00 sts 188,R24
0096 .dbline 235
0096 ;
0096 ; switch (TWIStatus)
0096 1127 clr R17
0098 0831 cpi R16,24
009A E0E0 ldi R30,0
009C 1E07 cpc R17,R30
009E D9F0 breq L21
00A0 88E1 ldi R24,24
00A2 90E0 ldi R25,0
00A4 8017 cp R24,R16
00A6 9107 cpc R25,R17
00A8 2CF0 brlt L25
00AA L24:
00AA 0830 cpi R16,8
00AC E0E0 ldi R30,0
00AE 1E07 cpc R17,R30
00B0 71F0 breq L20
00B2 31C0 rjmp L17
00B4 L25:
00B4 0036 cpi R16,96
00B6 E0E0 ldi R30,0
00B8 1E07 cpc R17,R30
00BA A9F1 breq L18
00BC 0036 cpi R16,96
00BE E0E0 ldi R30,0
00C0 1E07 cpc R17,R30
00C2 4CF1 brlt L17
00C4 L26:
00C4 0038 cpi R16,128
00C6 E0E0 ldi R30,0
00C8 1E07 cpc R17,R30
00CA A1F0 breq L23
00CC 24C0 rjmp L17
00CE X1:
00CE .dbline 236
00CE ; {
00CE L20:
00CE .dbline 238
00CE ; case SSend : //启动位已发送
00CE ; {
00CE .dbline 239
00CE ; TWDR = 0x00; //发送广播地址,写方向
00CE 2224 clr R2
00D0 2092BB00 sts 187,R2
00D4 .dbline 240
00D4 ; break;
00D4 28C0 rjmp L18
00D6 L21:
00D6 .dbline 244
00D6 ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -