📄 hd_support.lis
字号:
0086 8068 ori R24,128
0088 88BB out 0x18,R24
008A .dbline 137
008A ;
008A ; //SP027
008A ; DDR_PC0 = PDIR_OUT;_PC0 = HIGH;
008A 84B3 in R24,0x14
008C 8160 ori R24,1
008E 84BB out 0x14,R24
0090 .dbline 137
0090 85B3 in R24,0x15
0092 8160 ori R24,1
0094 85BB out 0x15,R24
0096 .dbline 138
0096 ; DDR_PC1 = PDIR_OUT;_PC1 = HIGH;
0096 84B3 in R24,0x14
0098 8260 ori R24,2
009A 84BB out 0x14,R24
009C .dbline 138
009C 85B3 in R24,0x15
009E 8260 ori R24,2
00A0 85BB out 0x15,R24
00A2 .dbline 141
00A2 ;
00A2 ; //蜂鸣器
00A2 ; DDR_PD0 = PDIR_IN; _PD0 = HIGH;
00A2 81B3 in R24,0x11
00A4 8E7F andi R24,254
00A6 81BB out 0x11,R24
00A8 .dbline 141
00A8 82B3 in R24,0x12
00AA 8160 ori R24,1
00AC 82BB out 0x12,R24
00AE .dbline 142
00AE ; DDR_PD1 = PDIR_OUT;_PD1 = HIGH;
00AE 81B3 in R24,0x11
00B0 8260 ori R24,2
00B2 81BB out 0x11,R24
00B4 .dbline 142
00B4 82B3 in R24,0x12
00B6 8260 ori R24,2
00B8 82BB out 0x12,R24
00BA .dbline -2
00BA L2:
00BA .dbline 0 ; func end
00BA 0895 ret
00BC .dbend
00BC .dbfunc s Timer0_INIT _Timer0_INIT fV
.even
00BC _Timer0_INIT:
00BC .dbline -1
00BC .dbline 153
00BC ; }
00BC ;
00BC ;
00BC ; /***********************************************************
00BC ; * 函数声明:定时器0初始化函数 *
00BC ; * 输入: 无 *
00BC ; * 输出: 无 *
00BC ; * 调用函数:无 *
00BC ; ***********************************************************/
00BC ; static void Timer0_INIT(void)
00BC ; {
00BC .dbline 154
00BC ; TCCR0 = 0x00; //stop
00BC 2224 clr R2
00BE 23BE out 0x33,R2
00C0 .dbline 155
00C0 ; TCNT0 = 0x64; //set count
00C0 84E6 ldi R24,100
00C2 82BF out 0x32,R24
00C4 .dbline 156
00C4 ; OCR0 = 0x9C; //set compare
00C4 8CE9 ldi R24,156
00C6 8CBF out 0x3c,R24
00C8 .dbline 157
00C8 ; TCCR0 = 0x03; //start timer
00C8 83E0 ldi R24,3
00CA 83BF out 0x33,R24
00CC .dbline -2
00CC L3:
00CC .dbline 0 ; func end
00CC 0895 ret
00CE .dbend
00CE .dbfunc e Timer0_OVF_ISR _Timer0_OVF_ISR fV
.even
00CE _Timer0_OVF_ISR::
00CE 0A92 st -y,R0
00D0 1A92 st -y,R1
00D2 2A92 st -y,R2
00D4 3A92 st -y,R3
00D6 4A92 st -y,R4
00D8 5A92 st -y,R5
00DA 6A92 st -y,R6
00DC 7A92 st -y,R7
00DE 8A92 st -y,R8
00E0 9A92 st -y,R9
00E2 0A93 st -y,R16
00E4 1A93 st -y,R17
00E6 2A93 st -y,R18
00E8 3A93 st -y,R19
00EA 8A93 st -y,R24
00EC 9A93 st -y,R25
00EE AA93 st -y,R26
00F0 BA93 st -y,R27
00F2 EA93 st -y,R30
00F4 FA93 st -y,R31
00F6 0FB6 in R0,0x3f
00F8 0A92 st -y,R0
00FA .dbline -1
00FA .dbline 167
00FA ; }
00FA ;
00FA ; /***********************************************************
00FA ; * 函数声明:定时器0溢出中断处理程序 *
00FA ; * 输入: 无 *
00FA ; * 输出: 无 *
00FA ; * 调用函数:INSERT_TIMER0_OVF_ISR_CODE *
00FA ; ***********************************************************/
00FA ; void Timer0_OVF_ISR(void)
00FA ; {
00FA .dbline 168
00FA ; TCNT0 = 0x64;
00FA 84E6 ldi R24,100
00FC 82BF out 0x32,R24
00FE .dbline 170
00FE ;
00FE ; INSERT_TIMER0_OVF_ISR_CODE
00FE 0E940000 xcall _Insert_Timer0_OVF_ISR_Code
0102 .dbline -2
0102 L4:
0102 .dbline 0 ; func end
0102 0990 ld R0,y+
0104 0FBE out 0x3f,R0
0106 F991 ld R31,y+
0108 E991 ld R30,y+
010A B991 ld R27,y+
010C A991 ld R26,y+
010E 9991 ld R25,y+
0110 8991 ld R24,y+
0112 3991 ld R19,y+
0114 2991 ld R18,y+
0116 1991 ld R17,y+
0118 0991 ld R16,y+
011A 9990 ld R9,y+
011C 8990 ld R8,y+
011E 7990 ld R7,y+
0120 6990 ld R6,y+
0122 5990 ld R5,y+
0124 4990 ld R4,y+
0126 3990 ld R3,y+
0128 2990 ld R2,y+
012A 1990 ld R1,y+
012C 0990 ld R0,y+
012E 1895 reti
0130 .dbend
0130 .dbfunc s USART0_INIT _USART0_INIT fV
.even
0130 _USART0_INIT:
0130 .dbline -1
0130 .dbline 183
0130 ; }
0130 ;
0130 ; /***********************************************************
0130 ; * 函数说明:串口0初始化函数 *
0130 ; * 输入: 无 *
0130 ; * 输出: 无 *
0130 ; * 调用函数:无 *
0130 ; * -------------------------------------------------------- *
0130 ; * [说明] *
0130 ; * 波特率: 38400,n,8,1 *
0130 ; ***********************************************************/
0130 ; static void USART0_INIT(void)
0130 ; {
0130 .dbline 184
0130 ; UCSRB = 0x00; //disable while setting baud rate
0130 2224 clr R2
0132 2AB8 out 0xa,R2
0134 .dbline 185
0134 ; UCSRA = 0x00;
0134 2BB8 out 0xb,R2
0136 .dbline 186
0136 ; UCSRC = BIT(URSEL) | 0x06;
0136 86E8 ldi R24,134
0138 80BD out 0x20,R24
013A .dbline 187
013A ; UBRRL = 0x0F; //set baud rate lo
013A 8FE0 ldi R24,15
013C 89B9 out 0x9,R24
013E .dbline 188
013E ; UBRRH = 0x00; //set baud rate hi
013E 20BC out 0x20,R2
0140 .dbline 189
0140 ; UCSRB = 0xD8;
0140 88ED ldi R24,216
0142 8AB9 out 0xa,R24
0144 .dbline -2
0144 L5:
0144 .dbline 0 ; func end
0144 0895 ret
0146 .dbend
0146 .dbfunc e USART0_RX_ISR _USART0_RX_ISR fV
0146 ; cTempUDR0 -> R16
.even
0146 _USART0_RX_ISR::
0146 0A93 st -y,R16
0148 0FB7 in R16,0x3f
014A 0A93 st -y,R16
014C .dbline -1
014C .dbline 199
014C ; }
014C ;
014C ; /***********************************************************
014C ; * 函数说明:串口接收完成中断处理函数 *
014C ; * 输入: 无 *
014C ; * 输出: 无 *
014C ; * 调用函数:INSERT_USART0_RX_ISR_CODE *
014C ; ***********************************************************/
014C ; void USART0_RX_ISR(void)
014C ; {
014C .dbline 201
014C ; #ifndef _USE_9BIT_MODEL
014C ; uint8 cTempUDR = UDR;
014C 0CB1 in R16,0xc
014E .dbline -2
014E L6:
014E .dbline 0 ; func end
014E 0991 ld R16,y+
0150 0FBF out 0x3f,R16
0152 0991 ld R16,y+
0154 1895 reti
0156 .dbsym r cTempUDR0 16 c
0156 .dbend
0156 .dbfunc e USART0_TX_ISR _USART0_TX_ISR fV
.even
0156 _USART0_TX_ISR::
0156 .dbline -1
0156 .dbline 214
0156 ; #endif
0156 ;
0156 ; INSERT_USART0_RX_ISR_CODE
0156 ; }
0156 ;
0156 ; /***********************************************************
0156 ; * 函数说明:串口发送完成中断处理函数 *
0156 ; * 输入: 无 *
0156 ; * 输出: 无 *
0156 ; * 调用函数:INSERT_USART0_TX_ISR_CODE *
0156 ; ***********************************************************/
0156 ; void USART0_TX_ISR(void)
0156 ; {
0156 .dbline -2
0156 L7:
0156 .dbline 0 ; func end
0156 1895 reti
0158 .dbend
0158 ; INSERT_USART0_TX_ISR_CODE
0158 ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -