📄 twimain.lis
字号:
0046 11F4 brne L13
0048 .dbline 136
0048 ; PORTB &= ~BIT(PB1);
0048 C198 cbi 0x18,1
004A 01C0 rjmp L14
004C L13:
004C .dbline 138
004C C19A sbi 0x18,1
004E L14:
004E .dbline -2
004E .dbline 139
004E ; else
004E ; PORTB |= BIT(PB1);
004E ; }
004E L12:
004E .dbline 0 ; func end
004E 0895 ret
0050 .dbsym r i 16 c
0050 .dbend
0050 .dbfunc e Uart_Init _Uart_Init fV
.even
0050 _Uart_Init::
0050 .dbline -1
0050 .dbline 155
0050 ;
0050 ; //*******************************************************************
0050 ;
0050 ; //串口通讯用函数
0050 ;
0050 ; /* 函数名: Uart_Init
0050 ; 功能说明:串口初始化函数,适用于所有CPU
0050 ; 波特率9600,8位字节,无奇偶校验
0050 ; 参数说明:无
0050 ; 函数作者:Haibo YU
0050 ; 版本号: 1.0
0050 ; 创建时间:2005-12-02
0050 ; 修改时间:
0050 ; 修改内容: */
0050 ; void Uart_Init(void)
0050 ; {
0050 .dbline 156
0050 ; UCSRB = 0x00; //disable while setting baud rate
0050 2224 clr R2
0052 2AB8 out 0xa,R2
0054 .dbline 157
0054 ; UCSRA = 0x00;
0054 2BB8 out 0xb,R2
0056 .dbline 158
0056 ; UCSRC = 0x86;
0056 86E8 ldi R24,134
0058 80BD out 0x20,R24
005A .dbline 159
005A ; UBRRL = 0x47; //set baud rate lo
005A 87E4 ldi R24,71
005C 89B9 out 0x9,R24
005E .dbline 160
005E ; UBRRH = 0x00; //set baud rate hi
005E 20BC out 0x20,R2
0060 .dbline 161
0060 ; UCSRB = 0x98;
0060 88E9 ldi R24,152
0062 8AB9 out 0xa,R24
0064 .dbline -2
0064 .dbline 162
0064 ; }
0064 L15:
0064 .dbline 0 ; func end
0064 0895 ret
0066 .dbend
0066 .dbfunc e Uart_Send _Uart_Send fV
0066 ; c -> R16
.even
0066 _Uart_Send::
0066 .dbline -1
0066 .dbline 174
0066 ; //********************************************************************
0066 ;
0066 ; /* 函数名: Uart_Send
0066 ; 功能说明:通过查询方式,串口发送一个字节函数,适用于所有CPU
0066 ; 参数说明:c为所要发送的字节
0066 ; 函数作者:Haibo YU
0066 ; 版本号: 1.0
0066 ; 创建时间:2005-12-02
0066 ; 修改时间:
0066 ; 修改内容: */
0066 ; void Uart_Send(unsigned char c)
0066 ; {
0066 L17:
0066 .dbline 176
0066 L18:
0066 .dbline 175
0066 ; while(!(UCSRA&(1<<UDRE)))
0066 5D9B sbis 0xb,5
0068 FECF rjmp L17
006A .dbline 177
006A ; ; //等待空闲
006A ; UDR=c; //发送数据
006A 0CB9 out 0xc,R16
006C .dbline -2
006C .dbline 178
006C ; }
006C L16:
006C .dbline 0 ; func end
006C 0895 ret
006E .dbsym r c 16 c
006E .dbend
.area vector(rom, abs)
.org 22
0016 37C0 rjmp _uart0_rx_isr
.area text(rom, con, rel)
006E .dbfile E:\iccavr\无线+I2C\test1--mt\twimain.c
006E .dbfunc e uart0_rx_isr _uart0_rx_isr fV
.even
006E _uart0_rx_isr::
006E 00D0 rcall push_lset
0070 .dbline -1
0070 .dbline 182
0070 ; /*接收中断函数*/
0070 ; #pragma interrupt_handler uart0_rx_isr:12
0070 ; void uart0_rx_isr(void)
0070 ; {
0070 .dbline 183
0070 ; Recv = UDR;
0070 2CB0 in R2,0xc
0072 20920000 sts _Recv,R2
0076 .dbline 184
0076 ; Uart_Send(Recv);//接收到的数据立即通过串口返回
0076 022D mov R16,R2
0078 F6DF rcall _Uart_Send
007A .dbline -2
007A .dbline 186
007A ;
007A ; }
007A L20:
007A 00D0 rcall pop_lset
007C .dbline 0 ; func end
007C 1895 reti
007E .dbend
007E .dbfunc e SPI_MasterInit _SPI_MasterInit fV
.even
007E _SPI_MasterInit::
007E .dbline -1
007E .dbline 203
007E ; //**********************************************************************
007E ;
007E ; //SPI通讯用函数
007E ;
007E ; /* 函数名: SPI_MasterInit
007E ; 功能说明:SPI主机初始化函数。使能SPI,MSB在前,主模式
007E ; 起始上升沿,采样上升沿。16分频
007E ; 参数说明: 无
007E ; 返回值: 无
007E ; 函数作者:Haibo YU
007E ; 版本号: 1.0
007E ; 创建时间:2005-12-02
007E ; 修改时间:
007E ; 修改内容: */
007E ;
007E ; void SPI_MasterInit(void)
007E ; {
007E .dbline 204
007E ; SPCR = 0x51; //SPI控制寄存器初始化:SPI允许,MSB先发,主模式,16分频
007E 81E5 ldi R24,81
0080 8DB9 out 0xd,R24
0082 .dbline -2
0082 .dbline 205
0082 ; }
0082 L21:
0082 .dbline 0 ; func end
0082 0895 ret
0084 .dbend
0084 .dbfunc e SPI_M_Send _SPI_M_Send fV
0084 ; c -> R16
.even
0084 _SPI_M_Send::
0084 .dbline -1
0084 .dbline 218
0084 ; //**********************************************************************
0084 ; /* 函数名: SPI_M_Send
0084 ; 功能说明:SPI主机发送一个字节函数。
0084 ; 参数说明: c为要发送的字节
0084 ; 返回值: 无
0084 ; 函数作者:Haibo YU
0084 ; 版本号: 1.0
0084 ; 创建时间:2005-12-02
0084 ; 修改时间:2005-12-05
0084 ; 修改内容: 去掉SS信号控制语句 */
0084 ;
0084 ; void SPI_M_Send(unsigned char c)
0084 ; {
0084 .dbline 219
0084 ; SPDR = c; //传送开始
0084 0FB9 out 0xf,R16
0086 L23:
0086 .dbline 221
0086 L24:
0086 .dbline 220
0086 ; while(!(SPSR & 0X80))
0086 779B sbis 0xe,7
0088 FECF rjmp L23
008A .dbline -2
008A .dbline 223
008A ; ; //查询SPIF标志
008A ;
008A ; }
008A L22:
008A .dbline 0 ; func end
008A 0895 ret
008C .dbsym r c 16 c
008C .dbend
008C .dbfunc e SPI_M_Recv _SPI_M_Recv fc
008C ; c -> R16
.even
008C _SPI_M_Recv::
008C .dbline -1
008C .dbline 237
008C ; //************************************************************************
008C ;
008C ; /* 函数名: SPI_M_Recv
008C ; 功能说明:SPI主机方式接收一个字节函数。
008C ; 参数说明:任意无效字符
008C ; 返回值: 返回接收到的字节
008C ; 函数作者:Haibo YU
008C ; 版本号: 1.0
008C ; 创建时间:2005-12-06
008C ; 修改时间:
008C ; 修改内容: */
008C ;
008C ; unsigned char SPI_M_Recv(unsigned char c)
008C ; {
008C .dbline 238
008C ; SPDR = c; //传送开始
008C 0FB9 out 0xf,R16
008E L27:
008E .dbline 240
008E L28:
008E .dbline 239
008E ; while(!(SPSR & 0X80))
008E 779B sbis 0xe,7
0090 FECF rjmp L27
0092 .dbline 241
0092 ; ; //查询SPIF标志
0092 ; return SPDR; //返回接收的字符
0092 0FB1 in R16,0xf
0094 .dbline -2
0094 L26:
0094 .dbline 0 ; func end
0094 0895 ret
0096 .dbsym r c 16 c
0096 .dbend
0096 .dbfunc e PTR8_Standby _PTR8_Standby fV
.even
0096 _PTR8_Standby::
0096 .dbline -1
0096 .dbline 258
0096 ; }
0096 ; //*************************************************************************
0096 ;
0096 ; //***************************PTR8000无线模块用函数*****************
0096 ;
0096 ; /* 函数名: PTR8_Standby
0096 ; 功能说明:将PTR8置为待机状态。SET TRX_CE = 0
0096 ; 参数说明:无
0096 ; 返回值: 无
0096 ; 函数作者:Haibo YU
0096 ; 版本号: 1.0
0096 ; 创建时间:2005-12-23
0096 ; 修改时间:
0096 ; 修改内容: */
0096 ;
0096 ; void PTR8_Standby(void)
0096 ; {
0096 .dbline 259
0096 ; PORTD &= ~BIT(PD1); //TRX_CE = 0
0096 9198 cbi 0x12,1
0098 .dbline -2
0098 .dbline 260
0098 ; }
0098 L30:
0098 .dbline 0 ; func end
0098 0895 ret
009A .dbend
009A .dbfunc e PTR8_TREN _PTR8_TREN fV
.even
009A _PTR8_TREN::
009A .dbline -1
009A .dbline 274
009A ; //**************************************************************************
009A ;
009A ; /* 函数名: PTR8_TREN
009A ; 功能说明:将PTR8置为工作状态。SET TRX_CE = 1
009A ; 参数说明:无
009A ; 返回值: 无
009A ; 函数作者:Haibo YU
009A ; 版本号: 1.0
009A ; 创建时间:2005-12-23
009A ; 修改时间:
009A ; 修改内容: */
009A ;
009A ; void PTR8_TREN(void)
009A ; {
009A .dbline 275
009A ; PORTD |= BIT(PD1); //TRX_CE = 1
009A 919A sbi 0x12,1
009C .dbline -2
009C .dbline 276
009C ; }
009C L31:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -