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

📄 twimain.lis

📁 PTR8000无线通信模块的单片机控制程序
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 0044           ; //UART0 initialize
 0044           ; // desired baud rate: 9600
 0044           ; // actual: baud rate:9600 (0.0%)
 0044           ; // char size: 8 bit
 0044           ; // parity: Disabled
 0044           ; void uart0_init(void)
 0044           ; {
 0044                   .dbline 71
 0044           ;  UCSRB = 0x00; //disable while setting baud rate
 0044 2224              clr R2
 0046 2AB8              out 0xa,R2
 0048                   .dbline 72
 0048           ;  UCSRA = 0x00;
 0048 2BB8              out 0xb,R2
 004A                   .dbline 73
 004A           ;  UCSRC = BIT(URSEL) | 0x0E;
 004A 8EE8              ldi R24,142
 004C 80BD              out 0x20,R24
 004E                   .dbline 74
 004E           ;  UBRRL = 0x47; //set baud rate lo
 004E 87E4              ldi R24,71
 0050 89B9              out 0x9,R24
 0052                   .dbline 75
 0052           ;  UBRRH = 0x00; //set baud rate hi
 0052 20BC              out 0x20,R2
 0054                   .dbline 76
 0054           ;  UCSRB = 0x98;
 0054 88E9              ldi R24,152
 0056 8AB9              out 0xa,R24
 0058                   .dbline -2
 0058                   .dbline 77
 0058           ; }
 0058           L12:
 0058                   .dbline 0 ; func end
 0058 0895              ret
 005A                   .dbend
 005A                   .dbfunc e USART_Transmit _USART_Transmit fV
 005A           ;           data -> R16
                        .even
 005A           _USART_Transmit::
 005A                   .dbline -1
 005A                   .dbline 81
 005A           ; //********************串口程序函数实现部分**************************************
 005A           ; //******************************************************************************
 005A           ; void USART_Transmit( unsigned char data )
 005A           ; {
 005A           L14:
 005A                   .dbline 82
 005A           L15:
 005A                   .dbline 82
 005A           ;       while ( !( UCSRA & (1<<UDRE)));   // 等待发送缓冲器为空
 005A 5D9B              sbis 0xb,5
 005C FECF              rjmp L14
 005E                   .dbline 83
 005E           ;       UDR = data;       // 将数据放入缓冲器,发送数据
 005E 0CB9              out 0xc,R16
 0060                   .dbline -2
 0060                   .dbline 84
 0060           ; }
 0060           L13:
 0060                   .dbline 0 ; func end
 0060 0895              ret
 0062                   .dbsym r data 16 c
 0062                   .dbend
                        .area vector(rom, abs)
                        .org 22
 0016 31C0              rjmp _uart0_rx_isr
                        .area text(rom, con, rel)
 0062                   .dbfile E:\iccavr\无线+I2C\test1--sr\twimain.c
 0062                   .dbfunc e uart0_rx_isr _uart0_rx_isr fV
                        .even
 0062           _uart0_rx_isr::
 0062                   .dbline -1
 0062                   .dbline 88
 0062           ; 
 0062           ; #pragma interrupt_handler uart0_rx_isr:12
 0062           ; void uart0_rx_isr(void)
 0062           ; {
 0062                   .dbline -2
 0062                   .dbline 90
 0062           ;       //uart has received a character in UDR
 0062           ; }
 0062           L17:
 0062                   .dbline 0 ; func end
 0062 1895              reti
 0064                   .dbend
 0064                   .dbfunc e init_devices _init_devices fV
                        .even
 0064           _init_devices::
 0064                   .dbline -1
 0064                   .dbline 94
 0064           ; //****************************** 初始化外围 ************************************
 0064           ; //******************************************************************************
 0064           ; void init_devices(void)
 0064           ; {
 0064                   .dbline 96
 0064           ;  //stop errant interrupts until set up
 0064           ;  CLI(); //disable all interrupts
 0064 F894              cli
 0066                   .dbline 97
 0066           ;  port_init();
 0066 E3DF              rcall _port_init
 0068                   .dbline 98
 0068           ;  uart0_init();
 0068 EDDF              rcall _uart0_init
 006A                   .dbline 99
 006A           ;  MCUCR = 0x00;
 006A 2224              clr R2
 006C 25BE              out 0x35,R2
 006E                   .dbline 100
 006E           ;  GICR  = 0x00;
 006E 2BBE              out 0x3b,R2
 0070                   .dbline 101
 0070           ;  TIMSK = 0x00; //timer interrupt sources
 0070 29BE              out 0x39,R2
 0072                   .dbline 102
 0072           ;  SEI(); //re-enable interrupts
 0072 7894              sei
 0074                   .dbline -2
 0074                   .dbline 104
 0074           ;  //all peripherals are now initialized
 0074           ; }
 0074           L18:
 0074                   .dbline 0 ; func end
 0074 0895              ret
 0076                   .dbend
 0076                   .dbfunc e main _main fV
 0076           ;              i -> <dead>
                        .even
 0076           _main::
 0076                   .dbline -1
 0076                   .dbline 111
 0076           ; //****************************** 主函数  ***************************************
 0076           ; /*该程序工作于从收模式下,在基于中断的该模式下,cpu顺序接收来自主机的字符,并根
 0076           ; 据字符的值去置位PC0--PC3为低,PC0--PC3可以外接LED以显示操作的结果
 0076           ; */
 0076           ; //******************************************************************************
 0076           ; void main(void)
 0076           ; {
 0076                   .dbline 113
 0076           ;       int i;
 0076           ;       init_devices();
 0076 F6DF              rcall _init_devices
 0078                   .dbline 114
 0078           ;       Delay_Nms(2000);
 0078 00ED              ldi R16,2000
 007A 17E0              ldi R17,7
 007C CBDF              rcall _Delay_Nms
 007E 0FC0              rjmp L21
 0080           L20:
 0080                   .dbline 116
 0080           ;       while(1)
 0080           ;       {
 0080                   .dbline 117
 0080           ;               if(receive_data == 0x00)
 0080 20900000          lds R2,_receive_data
 0084 2220              tst R2
 0086 11F4              brne L23
 0088                   .dbline 118
 0088           ;               {
 0088                   .dbline 119
 0088           ;                       PORTC &= ~BIT(PC0);
 0088 A898              cbi 0x15,0
 008A                   .dbline 120
 008A           ;               }
 008A 09C0              rjmp L24
 008C           L23:
 008C                   .dbline 121
 008C           ;               else if(receive_data == 0x01)
 008C 80910000          lds R24,_receive_data
 0090 8130              cpi R24,1
 0092 11F4              brne L25
 0094                   .dbline 122
 0094           ;               {
 0094                   .dbline 123
 0094           ;                       PORTC &= ~BIT(PC1);
 0094 A998              cbi 0x15,1
 0096                   .dbline 124
 0096           ;               }
 0096 03C0              rjmp L26
 0098           L25:
 0098                   .dbline 126
 0098           ;               else
 0098           ;               PORTC |= 0X0f;
 0098 85B3              in R24,0x15
 009A 8F60              ori R24,15
 009C 85BB              out 0x15,R24
 009E           L26:
 009E           L24:
 009E                   .dbline 134
 009E           L21:
 009E                   .dbline 115
 009E F0CF              rjmp L20
 00A0           X0:
 00A0                   .dbline -2
 00A0                   .dbline 135
 00A0           ;               
 00A0           ;               
 00A0           ;               /* for(i = 0 ; i < num ; i ++)
 00A0           ;                {
 00A0           ;                       USART_Transmit( receive_data )  //给下位机发送接收到的数据,
 00A0           ;                       Delay_1ms();
 00A0           ;                }*/
 00A0           ;       }
 00A0           ; }
 00A0           L19:
 00A0                   .dbline 0 ; func end
 00A0 0895              ret
 00A2                   .dbsym l i 1 I
 00A2                   .dbend

⌨️ 快捷键说明

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