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

📄 twimain.lis

📁 PTR8000无线通信模块的单片机控制程序
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 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 + -