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

📄 uart.lis

📁 PTR8000无线通信模块的单片机控制程序
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 0062           ; 
 0062           ; //*******************************************************************
 0062           ; 
 0062           ; //串口通讯用函数
 0062           ; 
 0062           ; /*    函数名:        Uart_Init
 0062           ;       功能说明:串口初始化函数,适用于所有CPU
 0062           ;                                       波特率9600,8位字节,无奇偶校验
 0062           ;       参数说明:无
 0062           ;       函数作者:Haibo YU
 0062           ;       版本号:        1.0
 0062           ;       创建时间:2005-12-02
 0062           ;       修改时间:
 0062           ;       修改内容:                              */
 0062           ; void Uart_Init(void)
 0062           ; {
 0062                   .dbline 162
 0062           ;       UCSRB = 0x00; //disable while setting baud rate
 0062 2224              clr R2
 0064 2AB8              out 0xa,R2
 0066                   .dbline 163
 0066           ;       UCSRA = 0x00;
 0066 2BB8              out 0xb,R2
 0068                   .dbline 164
 0068           ;       UCSRC = 0x86;
 0068 86E8              ldi R24,134
 006A 80BD              out 0x20,R24
 006C                   .dbline 165
 006C           ;       UBRRL = 0x47; //set baud rate lo
 006C 87E4              ldi R24,71
 006E 89B9              out 0x9,R24
 0070                   .dbline 166
 0070           ;       UBRRH = 0x00; //set baud rate hi
 0070 20BC              out 0x20,R2
 0072                   .dbline 167
 0072           ;       UCSRB = 0x98;
 0072 88E9              ldi R24,152
 0074 8AB9              out 0xa,R24
 0076                   .dbline -2
 0076                   .dbline 168
 0076           ; }
 0076           L16:
 0076                   .dbline 0 ; func end
 0076 0895              ret
 0078                   .dbend
 0078                   .dbfunc e Uart_Send _Uart_Send fV
 0078           ;              c -> R16
                        .even
 0078           _Uart_Send::
 0078                   .dbline -1
 0078                   .dbline 180
 0078           ; //********************************************************************
 0078           ; 
 0078           ; /*    函数名:        Uart_Send
 0078           ;       功能说明:通过查询方式,串口发送一个字节函数,适用于所有CPU                                     
 0078           ;       参数说明:c为所要发送的字节
 0078           ;       函数作者:Haibo YU
 0078           ;       版本号:        1.0
 0078           ;       创建时间:2005-12-02
 0078           ;       修改时间:
 0078           ;       修改内容:                              */
 0078           ; void Uart_Send(unsigned char c)
 0078           ; {
 0078           L18:
 0078                   .dbline 182
 0078           L19:
 0078                   .dbline 181
 0078           ;       while(!(UCSRA&(1<<UDRE)))
 0078 5D9B              sbis 0xb,5
 007A FECF              rjmp L18
 007C                   .dbline 183
 007C           ;               ;       //等待空闲
 007C           ;       UDR=c;  //发送数据
 007C 0CB9              out 0xc,R16
 007E                   .dbline -2
 007E                   .dbline 184
 007E           ; }
 007E           L17:
 007E                   .dbline 0 ; func end
 007E 0895              ret
 0080                   .dbsym r c 16 c
 0080                   .dbend
 0080                   .dbfunc e SPI_MasterInit _SPI_MasterInit fV
                        .even
 0080           _SPI_MasterInit::
 0080                   .dbline -1
 0080                   .dbline 203
 0080           ; 
 0080           ; 
 0080           ; //**********************************************************************
 0080           ; 
 0080           ; //SPI通讯用函数
 0080           ; 
 0080           ; /*    函数名:        SPI_MasterInit
 0080           ;       功能说明:SPI主机初始化函数。使能SPI,MSB在前,主模式
 0080           ;                                       起始上升沿,采样上升沿。16分频
 0080           ;       参数说明:      无
 0080           ;       返回值:        无
 0080           ;       函数作者:Haibo YU
 0080           ;       版本号:        1.0
 0080           ;       创建时间:2005-12-02
 0080           ;       修改时间:
 0080           ;       修改内容:                              */
 0080           ; 
 0080           ; void SPI_MasterInit(void)
 0080           ; {
 0080                   .dbline 204
 0080           ;       SPCR = 0x51;            //SPI控制寄存器初始化:SPI允许,MSB先发,主模式,16分频
 0080 81E5              ldi R24,81
 0082 8DB9              out 0xd,R24
 0084                   .dbline -2
 0084                   .dbline 205
 0084           ; }
 0084           L21:
 0084                   .dbline 0 ; func end
 0084 0895              ret
 0086                   .dbend
 0086                   .dbfunc e SPI_M_Send _SPI_M_Send fV
 0086           ;              c -> R16
                        .even
 0086           _SPI_M_Send::
 0086                   .dbline -1
 0086                   .dbline 218
 0086           ; //**********************************************************************
 0086           ; /*    函数名:        SPI_M_Send
 0086           ;       功能说明:SPI主机发送一个字节函数。
 0086           ;       参数说明:      c为要发送的字节
 0086           ;       返回值:        无
 0086           ;       函数作者:Haibo YU
 0086           ;       版本号:        1.0
 0086           ;       创建时间:2005-12-02
 0086           ;       修改时间:2005-12-05
 0086           ;       修改内容:      去掉SS信号控制语句      */
 0086           ; 
 0086           ; void SPI_M_Send(unsigned char c)
 0086           ; {
 0086                   .dbline 219
 0086           ;       SPDR = c;       //传送开始
 0086 0FB9              out 0xf,R16
 0088           L23:
 0088                   .dbline 221
 0088           L24:
 0088                   .dbline 220
 0088           ;       while(!(SPSR & 0X80)) 
 0088 779B              sbis 0xe,7
 008A FECF              rjmp L23
 008C                   .dbline -2
 008C                   .dbline 223
 008C           ;               ;       //查询SPIF标志
 008C           ;       
 008C           ; }
 008C           L22:
 008C                   .dbline 0 ; func end
 008C 0895              ret
 008E                   .dbsym r c 16 c
 008E                   .dbend
 008E                   .dbfunc e SPI_M_Recv _SPI_M_Recv fc
 008E           ;              c -> R16
                        .even
 008E           _SPI_M_Recv::
 008E                   .dbline -1
 008E                   .dbline 237
 008E           ; //************************************************************************
 008E           ; 
 008E           ; /*    函数名:        SPI_M_Recv
 008E           ;       功能说明:SPI主机方式接收一个字节函数。
 008E           ;       参数说明:任意无效字符
 008E           ;       返回值:        返回接收到的字节
 008E           ;       函数作者:Haibo YU
 008E           ;       版本号:        1.0
 008E           ;       创建时间:2005-12-06
 008E           ;       修改时间:
 008E           ;       修改内容:                              */
 008E           ; 
 008E           ; unsigned char SPI_M_Recv(unsigned char c)
 008E           ; {
 008E                   .dbline 238
 008E           ;       SPDR = c;       //传送开始
 008E 0FB9              out 0xf,R16
 0090           L27:
 0090                   .dbline 240
 0090           L28:
 0090                   .dbline 239
 0090           ;       while(!(SPSR & 0X80)) 
 0090 779B              sbis 0xe,7
 0092 FECF              rjmp L27
 0094                   .dbline 241
 0094           ;               ;       //查询SPIF标志
 0094           ;       return SPDR;    //返回接收的字符
 0094 0FB1              in R16,0xf
 0096                   .dbline -2
 0096           L26:
 0096                   .dbline 0 ; func end
 0096 0895              ret
 0098                   .dbsym r c 16 c
 0098                   .dbend
 0098                   .dbfunc e PTR8_Standby _PTR8_Standby fV
                        .even
 0098           _PTR8_Standby::
 0098                   .dbline -1
 0098                   .dbline 258
 0098           ; }
 0098           ; //*************************************************************************
 0098           ; 
 0098           ; //***************************PTR8000无线模块用函数*****************
 0098           ; 
 0098           ; /*    函数名:        PTR8_Standby
 0098           ;       功能说明:将PTR8置为待机状态。SET TRX_CE = 0
 0098           ;       参数说明:无
 0098           ;       返回值:        无
 0098           ;       函数作者:Haibo YU
 0098           ;       版本号:        1.0
 0098           ;       创建时间:2005-12-23
 0098           ;       修改时间:
 0098           ;       修改内容:                              */
 0098           ; 
 0098           ; void PTR8_Standby(void)
 0098           ; {
 0098                   .dbline 259
 0098           ;       PORTC &= ~BIT(PC5);     //TRX_CE = 0
 0098 AD98              cbi 0x15,5
 009A                   .dbline -2
 009A                   .dbline 260
 009A           ; }
 009A           L30:
 009A                   .dbline 0 ; func end
 009A 0895              ret
 009C                   .dbend
 009C                   .dbfunc e PTR8_TREN _PTR8_TREN fV
                        .even
 009C           _PTR8_TREN::
 009C                   .dbline -1
 009C                   .dbline 274
 009C           ; //**************************************************************************
 009C           ; 
 009C           ; /*    函数名:        PTR8_TREN
 009C           ;       功能说明:将PTR8置为工作状态。SET TRX_CE = 1
 009C           ;       参数说明:无
 009C           ;       返回值:        无
 009C           ;       函数作者:Haibo YU
 009C           ;       版本号:        1.0
 009C           ;       创建时间:2005-12-23
 009C           ;       修改时间:
 009C           ;       修改内容:                              */
 009C           ; 
 009C           ; void PTR8_TREN(void)
 009C           ; {
 009C                   .dbline 275
 009C           ;       PORTC |= BIT(PC5);      //TRX_CE = 1
 009C AD9A              sbi 0x15,5
 009E                   .dbline -2
 009E                   .dbline 276
 009E           ; }
 009E           L31:
 009E                   .dbline 0 ; func end
 009E 0895              ret
 00A0                   .dbend
 00A0                   .dbfunc e PTR8_TX _PTR8_TX fV
                        .even
 00A0           _PTR8_TX::
 00A0                   .dbline -1
 00A0                   .dbline 290
 00A0           ; //***************************************************************************
 00A0           ; 
 00A0           ; /*    函数名:        PTR8_TX
 00A0           ;       功能说明:将PTR8置为发送状态。
 00A0           ;       参数说明:无
 00A0           ;       返回值:        无
 00A0           ;       函数作者:Haibo YU
 00A0           ;       版本号:        1.0
 00A0           ;       创建时间:2005-12-23
 00A0           ;       修改时间:
 00A0           ;       修改内容:                              */
 00A0           ; 
 00A0           ; void PTR8_TX(void)
 00A0           ; {
 00A0                   .dbline 291
 00A0           ;       PORTC |= BIT(PC4);      //TX_EN = 1
 00A0 AC9A              sbi 0x15,4
 00A2                   .dbline -2
 00A2                   .dbline 292
 00A2           ; }
 00A2           L32:
 00A2                   .dbline 0 ; func end
 00A2 0895              ret
 00A4                   .dbend
 00A4                   .dbfunc e PTR8_RX _PTR8_RX fV
                        .even
 00A4           _PTR8_RX::
 00A4                   .dbline -1
 00A4                   .dbline 306
 00A4           ; //***************************************************************************
 00A4           ; 
 00A4           ; /*    函数名:        PTR8_RX
 00A4           ;       功能说明:将PTR8置为接收状态。
 00A4           ;       参数说明:无
 00A4           ;       返回值:        无
 00A4           ;       函数作者:Haibo YU
 00A4           ;       版本号:        1.0
 00A4           ;       创建时间:2005-12-23
 00A4           ;       修改时间:
 00A4           ;       修改内容:                              */
 00A4           ; 
 00A4           ; void PTR8_RX(void)
 00A4           ; {
 00A4                   .dbline 307
 00A4           ;       PORTC &= ~BIT(PC4);     //TX_EN = 0
 00A4 AC98              cbi 0x15,4
 00A6                   .dbline -2
 00A6                   .dbline 308
 00A6           ; }
 00A6           L33:
 00A6                   .dbline 0 ; func end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -