📄 uart.lis
字号:
00A6 0895 ret
00A8 .dbend
00A8 .dbfunc e Init_PTR8_CR _Init_PTR8_CR fV
.even
00A8 _Init_PTR8_CR::
00A8 .dbline -1
00A8 .dbline 312
00A8 ; //*****************************************************************************
00A8 ;
00A8 ; void Init_PTR8_CR(void)
00A8 ; {
00A8 .dbline 313
00A8 ; PORTB &= ~BIT(PB2); //SS SET LOW, Write Configuration register Start
00A8 C298 cbi 0x18,2
00AA .dbline 314
00AA ; SPI_M_Send(WC); //Wirte Configuration Register,Start From 0000
00AA 0027 clr R16
00AC ECDF rcall _SPI_M_Send
00AE .dbline 315
00AE ; SPI_M_Send(RC0); //Write CH_NO [7 : 0]
00AE 00910000 lds R16,_RC0
00B2 E9DF rcall _SPI_M_Send
00B4 .dbline 316
00B4 ; SPI_M_Send(RC1); //Write Byte 2
00B4 00910100 lds R16,_RC1
00B8 E6DF rcall _SPI_M_Send
00BA .dbline 317
00BA ; SPI_M_Send(0x44);
00BA 04E4 ldi R16,68
00BC E4DF rcall _SPI_M_Send
00BE .dbline 318
00BE ; SPI_M_Send(0x01); //RX payload = 1 byte
00BE 01E0 ldi R16,1
00C0 E2DF rcall _SPI_M_Send
00C2 .dbline 319
00C2 ; SPI_M_Send(0x01); //TX payload = 1 byte
00C2 01E0 ldi R16,1
00C4 E0DF rcall _SPI_M_Send
00C6 .dbline 320
00C6 ; SPI_M_Send(Add);
00C6 00910200 lds R16,_Add
00CA DDDF rcall _SPI_M_Send
00CC .dbline 321
00CC ; SPI_M_Send(Add);
00CC 00910200 lds R16,_Add
00D0 DADF rcall _SPI_M_Send
00D2 .dbline 322
00D2 ; SPI_M_Send(Add);
00D2 00910200 lds R16,_Add
00D6 D7DF rcall _SPI_M_Send
00D8 .dbline 323
00D8 ; SPI_M_Send(Add);
00D8 00910200 lds R16,_Add
00DC D4DF rcall _SPI_M_Send
00DE .dbline 324
00DE ; SPI_M_Send(0x58);
00DE 08E5 ldi R16,88
00E0 D2DF rcall _SPI_M_Send
00E2 .dbline 325
00E2 ; PORTB |= BIT(PB2); //SS set HIGH,Write Configuration Register Finish
00E2 C29A sbi 0x18,2
00E4 .dbline -2
00E4 .dbline 327
00E4 ;
00E4 ; }
00E4 L34:
00E4 .dbline 0 ; func end
00E4 0895 ret
00E6 .dbend
00E6 .dbfunc e Init_Device _Init_Device fV
.even
00E6 _Init_Device::
00E6 .dbline -1
00E6 .dbline 340
00E6 ; //************************************************************************************
00E6 ; /* 函数名: Init_Device
00E6 ; 功能说明:初始化设备。LED亮一下,蜂鸣器叫一声,初始化串口
00E6 ; 参数说明:无
00E6 ; 返回值: 无
00E6 ; 函数作者:Haibo YU
00E6 ; 版本号: 1.0
00E6 ; 创建时间:2005-12-23
00E6 ; 修改时间:
00E6 ; 修改内容: */
00E6 ;
00E6 ; void Init_Device(void)
00E6 ; {
00E6 .dbline 342
00E6 ; //stop errant interrupts until set up
00E6 ; CLI(); //disable all interrupts
00E6 F894 cli
00E8 .dbline 344
00E8 ;
00E8 ; init_port(); //初始化各控制端口
00E8 93DF rcall _init_port
00EA .dbline 345
00EA ; LED(0); //LED全亮
00EA 0027 clr R16
00EC B4DF rcall _LED
00EE .dbline 346
00EE ; Uart_Init(); //串口初始化
00EE B9DF rcall _Uart_Init
00F0 .dbline 347
00F0 ; SPI_MasterInit();//SPI Master Init
00F0 C7DF rcall _SPI_MasterInit
00F2 .dbline 348
00F2 ; MCUCR = 0x00;
00F2 2224 clr R2
00F4 25BE out 0x35,R2
00F6 .dbline 349
00F6 ; GICR = 0x00;
00F6 2BBE out 0x3b,R2
00F8 .dbline 350
00F8 ; TIMSK = 0x00; //timer interrupt sources
00F8 29BE out 0x39,R2
00FA .dbline 352
00FA ;
00FA ; SEI(); //re-enable interrupts
00FA 7894 sei
00FC .dbline 353
00FC ; LED(1); //LED全灭
00FC 01E0 ldi R16,1
00FE .dbline -2
00FE .dbline 355
00FE ; //all peripherals are now initialised
00FE ; }
00FE L35:
00FE .dbline 0 ; func end
00FE ABCF rjmp _LED
0100 .dbend
0100 .dbfunc e main _main fV
0100 ; F -> <dead>
0100 ; dr -> R20
0100 ; i -> R22
.even
0100 _main::
0100 .dbline -1
0100 .dbline 366
0100 ;
0100 ; //**************************************************************************
0100 ;
0100 ;
0100 ; //****************************主程序**********************************
0100 ; /*无线模块发送程序,无线模块发送的字符为通过串口接收的字符,规定为0和1,而且每次数据发送
0100 ; 成功LED都会闪一次*/
0100 ; //********************发送程序**********************
0100 ;
0100 ; void main(void)
0100 ; {
0100 .dbline 368
0100 ; unsigned char i,dr,F;
0100 ; Init_Device(); //Init All Device
0100 F2DF rcall _Init_Device
0102 .dbline 370
0102 ;
0102 ; Init_PTR8_CR(); //Set Configuration register
0102 D2DF rcall _Init_PTR8_CR
0104 .dbline 371
0104 ; Delay_1ms();
0104 91DF rcall _Delay_1ms
0106 .dbline 373
0106 ;
0106 ; PTR8_RX(); //Set RX mode
0106 CEDF rcall _PTR8_RX
0108 .dbline 374
0108 ; PTR8_TREN(); // TRX_CE = 1 Enable RX
0108 C9DF rcall _PTR8_TREN
010A .dbline 375
010A ; Delay_1ms();
010A 8EDF rcall _Delay_1ms
010C 2BC0 rjmp L38
010E L37:
010E .dbline 377
010E ; while(1)
010E ; {
010E .dbline 378
010E ; LED(1);
010E 01E0 ldi R16,1
0110 A2DF rcall _LED
0112 .dbline 379
0112 ; Delay_Nms(1000);
0112 08EE ldi R16,1000
0114 13E0 ldi R17,3
0116 92DF rcall _Delay_Nms
0118 .dbline 381
0118 ;
0118 ; PTR8_TX(); //set TX mode
0118 C3DF rcall _PTR8_TX
011A .dbline 382
011A ; Delay_1ms();
011A 86DF rcall _Delay_1ms
011C .dbline 383
011C ; PORTB &= ~BIT(PB2); //SS = 0
011C C298 cbi 0x18,2
011E .dbline 384
011E ; SPI_M_Send(WTP); //Write TX payload
011E 00E2 ldi R16,32
0120 B2DF rcall _SPI_M_Send
0122 .dbline 386
0122 ;
0122 ; SPI_M_Send(Recv); // Data = Recv[]
0122 00910000 lds R16,_Recv
0126 AFDF rcall _SPI_M_Send
0128 .dbline 388
0128 ;
0128 ; PORTB |= BIT(PB2); //ss = 1
0128 C29A sbi 0x18,2
012A .dbline 389
012A ; Delay_1ms();
012A 7EDF rcall _Delay_1ms
012C .dbline 390
012C ; PORTB &= ~BIT(PB2); //SS = 0
012C C298 cbi 0x18,2
012E .dbline 391
012E ; SPI_M_Send(WTA); //write TX_Address
012E 02E2 ldi R16,34
0130 AADF rcall _SPI_M_Send
0132 .dbline 392
0132 ; for(i = 0 ; i < 4 ; i ++)
0132 6627 clr R22
0134 04C0 rjmp L43
0136 L40:
0136 .dbline 393
0136 .dbline 394
0136 00910200 lds R16,_Add
013A A5DF rcall _SPI_M_Send
013C .dbline 395
013C L41:
013C .dbline 392
013C 6395 inc R22
013E L43:
013E .dbline 392
013E 6430 cpi R22,4
0140 D0F3 brlo L40
0142 .dbline 396
0142 ; {
0142 ; SPI_M_Send(Add); //TX_Address = Add
0142 ; }
0142 ; PORTB |= BIT(PB2); //ss = 1
0142 C29A sbi 0x18,2
0144 .dbline 397
0144 ; Delay_1ms();
0144 71DF rcall _Delay_1ms
0146 .dbline 398
0146 ; PTR8_TREN(); //TRX_CE = 1 Enable TX
0146 AADF rcall _PTR8_TREN
0148 L44:
0148 .dbline 400
0148 ; do
0148 ; dr = (PINC & 0x04);
0148 43B3 in R20,0x13
014A 4470 andi R20,4
014C L45:
014C .dbline 401
014C 4423 tst R20
014E E1F3 breq L44
0150 .dbline 402
0150 A3DF rcall _PTR8_Standby
0152 .dbline 403
0152 6ADF rcall _Delay_1ms
0154 .dbline 405
0154 0027 clr R16
0156 7FDF rcall _LED
0158 .dbline 406
0158 08EE ldi R16,1000
015A 13E0 ldi R17,3
015C 6FDF rcall _Delay_Nms
015E .dbline 408
015E A2DF rcall _PTR8_RX
0160 .dbline 409
0160 9DDF rcall _PTR8_TREN
0162 .dbline 410
0162 62DF rcall _Delay_1ms
0164 .dbline 414
0164 L38:
0164 .dbline 376
0164 D4CF rjmp L37
0166 X0:
0166 .dbline -2
0166 .dbline 415
0166 ; while(dr == 0); //等待数据发送成功
0166 ; PTR8_Standby(); //TRX_CE = 0 disable TX
0166 ; Delay_1ms();
0166 ;
0166 ; LED(0);
0166 ; Delay_Nms(1000);
0166 ;
0166 ; PTR8_RX(); //Set RX mode
0166 ; PTR8_TREN(); // TRX_CE = 1 Enable RX
0166 ; Delay_1ms();
0166 ;
0166 ;
0166 ;
0166 ; }
0166 ; }
0166 L36:
0166 .dbline 0 ; func end
0166 0895 ret
0168 .dbsym l F 1 c
0168 .dbsym r dr 20 c
0168 .dbsym r i 22 c
0168 .dbend
.area bss(ram, con, rel)
0000 .dbfile E:\iccavr\无线+I2C\test1--uart\uart.c
0000 _Recv::
0000 .blkb 1
0001 .dbsym e Recv _Recv c
0001 _Tran::
0001 .blkb 1
0002 .dbsym e Tran _Tran c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -