📄 hd_support.lis
字号:
00A4 .dbline 165
00A4 ; }
00A4 ;
00A4 ; /***********************************************************
00A4 ; * 函数声明:定时器0初始化函数 *
00A4 ; * 输入: 无 *
00A4 ; * 输出: 无 *
00A4 ; * 调用函数:无 *
00A4 ; ***********************************************************/
00A4 ; static void Timer0_INIT(void)
00A4 ; {
00A4 .dbline 166
00A4 ; TCCR0B = 0x00; //stop
00A4 2224 clr R2
00A6 25BC out 0x25,R2
00A8 .dbline 167
00A8 ; TCNT0 = 0xB2; //set count
00A8 82EB ldi R24,178
00AA 86BD out 0x26,R24
00AC .dbline 168
00AC ; TCCR0A = 0x00;
00AC 24BC out 0x24,R2
00AE .dbline 169
00AE ; TCCR0B = 0x04; //start timer
00AE 84E0 ldi R24,4
00B0 85BD out 0x25,R24
00B2 .dbline -2
00B2 L3:
00B2 .dbline 0 ; func end
00B2 0895 ret
00B4 .dbend
00B4 .dbfunc e Timer0_OVF_ISR _Timer0_OVF_ISR fV
.even
00B4 _Timer0_OVF_ISR::
00B4 0A92 st -y,R0
00B6 1A92 st -y,R1
00B8 2A92 st -y,R2
00BA 3A92 st -y,R3
00BC 4A92 st -y,R4
00BE 5A92 st -y,R5
00C0 6A92 st -y,R6
00C2 7A92 st -y,R7
00C4 8A92 st -y,R8
00C6 9A92 st -y,R9
00C8 0A93 st -y,R16
00CA 1A93 st -y,R17
00CC 2A93 st -y,R18
00CE 3A93 st -y,R19
00D0 8A93 st -y,R24
00D2 9A93 st -y,R25
00D4 AA93 st -y,R26
00D6 BA93 st -y,R27
00D8 EA93 st -y,R30
00DA FA93 st -y,R31
00DC 0FB6 in R0,0x3f
00DE 0A92 st -y,R0
00E0 .dbline -1
00E0 .dbline 179
00E0 ; }
00E0 ;
00E0 ; /***********************************************************
00E0 ; * 函数声明:定时器0溢出中断处理程序 *
00E0 ; * 输入: 无 *
00E0 ; * 输出: 无 *
00E0 ; * 调用函数:INSERT_TIMER0_OVF_ISR_CODE *
00E0 ; ***********************************************************/
00E0 ; void Timer0_OVF_ISR(void)
00E0 ; {
00E0 .dbline 180
00E0 ; TCNT0 = 0xB2;
00E0 82EB ldi R24,178
00E2 86BD out 0x26,R24
00E4 .dbline 181
00E4 ; INSERT_TIMER0_OVF_ISR_CODE
00E4 7894 sei
00E6 .dbline 181
00E6 00D0 rcall _Insert_Timer0_OVF_ISR_Code
00E8 .dbline -2
00E8 L4:
00E8 .dbline 0 ; func end
00E8 0990 ld R0,y+
00EA 0FBE out 0x3f,R0
00EC F991 ld R31,y+
00EE E991 ld R30,y+
00F0 B991 ld R27,y+
00F2 A991 ld R26,y+
00F4 9991 ld R25,y+
00F6 8991 ld R24,y+
00F8 3991 ld R19,y+
00FA 2991 ld R18,y+
00FC 1991 ld R17,y+
00FE 0991 ld R16,y+
0100 9990 ld R9,y+
0102 8990 ld R8,y+
0104 7990 ld R7,y+
0106 6990 ld R6,y+
0108 5990 ld R5,y+
010A 4990 ld R4,y+
010C 3990 ld R3,y+
010E 2990 ld R2,y+
0110 1990 ld R1,y+
0112 0990 ld R0,y+
0114 1895 reti
0116 .dbend
0116 .dbfunc s USART0_INIT _USART0_INIT fV
.even
0116 _USART0_INIT:
0116 .dbline -1
0116 .dbline 194
0116 ; }
0116 ;
0116 ; /***********************************************************
0116 ; * 函数说明:USART0初始化函数 *
0116 ; * 输入: 无 *
0116 ; * 输出: 无 *
0116 ; * 调用函数:无 *
0116 ; * -------------------------------------------------------- *
0116 ; * [说明] *
0116 ; * 波特率: 19200,n,8,1 *
0116 ; ***********************************************************/
0116 ; static void USART0_INIT(void)
0116 ; {
0116 .dbline 195
0116 ; UCSR0B = 0x00; //disable while setting baud rate
0116 2224 clr R2
0118 2092C100 sts 193,R2
011C .dbline 196
011C ; UCSR0A = 0x00;
011C 2092C000 sts 192,R2
0120 .dbline 197
0120 ; UCSR0C = 0x06;
0120 86E0 ldi R24,6
0122 8093C200 sts 194,R24
0126 .dbline 198
0126 ; UBRR0L = 0x40; //set baud rate lo
0126 80E4 ldi R24,64
0128 8093C400 sts 196,R24
012C .dbline 199
012C ; UBRR0H = 0x00; //set baud rate hi
012C 2092C500 sts 197,R2
0130 .dbline 200
0130 ; UCSR0B = 0xD8;
0130 88ED ldi R24,216
0132 8093C100 sts 193,R24
0136 .dbline -2
0136 L5:
0136 .dbline 0 ; func end
0136 0895 ret
0138 .dbend
0138 .dbfunc e USART0_RX_ISR _USART0_RX_ISR fV
0138 ; cTempUDR0 -> R10
.even
0138 _USART0_RX_ISR::
0138 0A92 st -y,R0
013A 1A92 st -y,R1
013C 2A92 st -y,R2
013E 3A92 st -y,R3
0140 4A92 st -y,R4
0142 5A92 st -y,R5
0144 6A92 st -y,R6
0146 7A92 st -y,R7
0148 8A92 st -y,R8
014A 9A92 st -y,R9
014C 0A93 st -y,R16
014E 1A93 st -y,R17
0150 2A93 st -y,R18
0152 3A93 st -y,R19
0154 8A93 st -y,R24
0156 9A93 st -y,R25
0158 AA93 st -y,R26
015A BA93 st -y,R27
015C EA93 st -y,R30
015E FA93 st -y,R31
0160 0FB6 in R0,0x3f
0162 0A92 st -y,R0
0164 AA92 st -y,R10
0166 .dbline -1
0166 .dbline 210
0166 ; }
0166 ;
0166 ; /***********************************************************
0166 ; * 函数说明:串口接收完成中断处理函数 *
0166 ; * 输入: 无 *
0166 ; * 输出: 无 *
0166 ; * 调用函数:INSERT_USART0_RX_ISR_CODE *
0166 ; ***********************************************************/
0166 ; void USART0_RX_ISR(void)
0166 ; {
0166 .dbline 212
0166 ; #ifndef _USE_9BIT_MODEL
0166 ; uint8 cTempUDR = UDR0;
0166 A090C600 lds R10,198
016A .dbline 215
016A ; #endif
016A ;
016A ; INSERT_USART0_RX_ISR_CODE
016A 7894 sei
016C .dbline 215
016C 0A2D mov R16,R10
016E 00D0 rcall _UARTaddDataToRxBuff
0170 .dbline 215
0170 .dbline -2
0170 L6:
0170 .dbline 0 ; func end
0170 A990 ld R10,y+
0172 0990 ld R0,y+
0174 0FBE out 0x3f,R0
0176 F991 ld R31,y+
0178 E991 ld R30,y+
017A B991 ld R27,y+
017C A991 ld R26,y+
017E 9991 ld R25,y+
0180 8991 ld R24,y+
0182 3991 ld R19,y+
0184 2991 ld R18,y+
0186 1991 ld R17,y+
0188 0991 ld R16,y+
018A 9990 ld R9,y+
018C 8990 ld R8,y+
018E 7990 ld R7,y+
0190 6990 ld R6,y+
0192 5990 ld R5,y+
0194 4990 ld R4,y+
0196 3990 ld R3,y+
0198 2990 ld R2,y+
019A 1990 ld R1,y+
019C 0990 ld R0,y+
019E 1895 reti
01A0 .dbsym r cTempUDR0 10 c
01A0 .dbend
01A0 .dbfunc e USART0_TX_ISR _USART0_TX_ISR fV
01A0 ; cTransmitByte -> y+0
.even
01A0 _USART0_TX_ISR::
01A0 0A92 st -y,R0
01A2 1A92 st -y,R1
01A4 2A92 st -y,R2
01A6 3A92 st -y,R3
01A8 4A92 st -y,R4
01AA 5A92 st -y,R5
01AC 6A92 st -y,R6
01AE 7A92 st -y,R7
01B0 8A92 st -y,R8
01B2 9A92 st -y,R9
01B4 0A93 st -y,R16
01B6 1A93 st -y,R17
01B8 2A93 st -y,R18
01BA 3A93 st -y,R19
01BC 8A93 st -y,R24
01BE 9A93 st -y,R25
01C0 AA93 st -y,R26
01C2 BA93 st -y,R27
01C4 EA93 st -y,R30
01C6 FA93 st -y,R31
01C8 0FB6 in R0,0x3f
01CA 0A92 st -y,R0
01CC 2197 sbiw R28,1
01CE .dbline -1
01CE .dbline 225
01CE ; }
01CE ;
01CE ; /***********************************************************
01CE ; * 函数说明:串口发送完成中断处理函数 *
01CE ; * 输入: 无 *
01CE ; * 输出: 无 *
01CE ; * 调用函数:INSERT_USART0_TX_ISR_CODE *
01CE ; ***********************************************************/
01CE ; void USART0_TX_ISR(void)
01CE ; {
01CE .dbline 226
01CE ; INSERT_USART0_TX_ISR_CODE
01CE 7894 sei
01D0 .dbline 226
01D0 .dbline 226
01D0 2224 clr R2
01D2 2882 std y+0,R2
01D4 .dbline 226
01D4 8E01 movw R16,R28
01D6 00D0 rcall _UARTgetDataFromTxBuff
01D8 0023 tst R16
01DA 21F4 brne L8
01DC X0:
01DC .dbline 226
01DC .dbline 226
01DC 81E0 ldi R24,1
01DE 80930000 sts _g_bIfSerialTransmitCompleted,R24
01E2 .dbline 226
01E2 06C0 rjmp L9
01E4 L8:
01E4 .dbline 226
01E4 .dbline 226
01E4 2224 clr R2
01E6 20920000 sts _g_bIfSerialTransmitCompleted,R2
01EA .dbline 226
01EA 2880 ldd R2,y+0
01EC 2092C600 sts 198,R2
01F0 .dbline 226
01F0 L9:
01F0 .dbline 226
01F0 .dbline 226
01F0 .dbline -2
01F0 L7:
01F0 .dbline 0 ; func end
01F0 2196 adiw R28,1
01F2 0990 ld R0,y+
01F4 0FBE out 0x3f,R0
01F6 F991 ld R31,y+
01F8 E991 ld R30,y+
01FA B991 ld R27,y+
01FC A991 ld R26,y+
01FE 9991 ld R25,y+
0200 8991 ld R24,y+
0202 3991 ld R19,y+
0204 2991 ld R18,y+
0206 1991 ld R17,y+
0208 0991 ld R16,y+
020A 9990 ld R9,y+
020C 8990 ld R8,y+
020E 7990 ld R7,y+
0210 6990 ld R6,y+
0212 5990 ld R5,y+
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -