📄 main.lis
字号:
.module main.c
.area text(rom, con, rel)
0000 .dbfile D:\Test\Movetion\Cy2198TR\main.c
0000 .dbfunc e main _main fI
.even
0000 _main::
0000 .dbline -1
0000 .dbline 42
0000 ; /*
0000 ; Cy2198TR-B Program
0000 ; by Chenxi
0000 ; */
0000 ; #include <iom16v.h>
0000 ;
0000 ; /*====================MACRO DEFINE============================================*/
0000 ; /*define system as transmitter or receiver*/
0000 ; /*
0000 ; transmitter -- 1
0000 ; receiver -- 0
0000 ; */
0000 ; #define WIRELESS_TRANSIMIT_SEL 1
0000 ;
0000 ; /*----------ports---------*/
0000 ; #define W_EN 3
0000 ; #define W_BUSY 2
0000 ; #define W_RT 1
0000 ; #define W_FS 0
0000 ; #define W_RXD 0
0000 ; #define W_TXD 1
0000 ;
0000 ; #define WIRELESS_EN() PORTC &= (~(1 << W_EN))
0000 ; #define WIRELESS_REC_EN() PORTC |= (1 << W_RT)
0000 ; #define WIRELESS_SEND_EN() PORTC &= (~(1 << W_RT))
0000 ; #define WIRELESS_IS_BUSY PINC & (1 << W_BUSY)
0000 ; #define WIRELESS_FREQUENCY_SEL() PORTC |= (1 << W_FS)
0000 ;
0000 ; /*============================================================================*/
0000 ; /*=================FUNCTIONS DECLARATION======================================*/
0000 ; void Port_Init(void);
0000 ; void USART_Init(void);
0000 ; void Wireless_Init(void);
0000 ; void USART_Transmit(unsigned char ucbyte);
0000 ; void Wireless_TransmitByte(unsigned char ucbyte);
0000 ; void Delay_nms(unsigned int n);
0000 ; unsigned char USART_Receive(void);
0000 ; /*============================================================================*/
0000 ;
0000 ; /*================== MAIN ====================================================*/
0000 ; int main(void)
0000 ; {
0000 .dbline 43
0000 ; Wireless_Init();
0000 2CD0 xcall _Wireless_Init
0002 0AC0 xjmp L3
0004 L2:
0004 .dbline 45
0004 .dbline 46
0004 01E0 ldi R16,1
0006 34D0 xcall _Wireless_TransmitByte
0008 .dbline 47
0008 08EE ldi R16,1000
000A 13E0 ldi R17,3
000C 3FD0 xcall _Delay_nms
000E .dbline 48
000E 02E0 ldi R16,2
0010 2FD0 xcall _Wireless_TransmitByte
0012 .dbline 49
0012 08EE ldi R16,1000
0014 13E0 ldi R17,3
0016 3AD0 xcall _Delay_nms
0018 .dbline 50
0018 L3:
0018 .dbline 44
0018 ; while(1)
0018 F5CF xjmp L2
001A X0:
001A .dbline 51
001A ; {
001A ; Wireless_TransmitByte(0x01);
001A ; Delay_nms(1000);
001A ; Wireless_TransmitByte(0x02);
001A ; Delay_nms(1000);
001A ; }
001A ; return 0;
001A 0027 clr R16
001C 1127 clr R17
001E .dbline -2
001E L1:
001E .dbline 0 ; func end
001E 0895 ret
0020 .dbend
0020 .dbfunc e Port_Init _Port_Init fV
.even
0020 _Port_Init::
0020 .dbline -1
0020 .dbline 58
0020 ; }
0020 ; /*============================================================================*/
0020 ;
0020 ; /*===============FUNCTIONS HERE===============================================*/
0020 ; /*--------------Initialize Ports--------------------*/
0020 ; void Port_Init(void)
0020 ; {
0020 .dbline 59
0020 ; PORTB = 0x01;
0020 81E0 ldi R24,1
0022 88BB out 0x18,R24
0024 .dbline 60
0024 ; DDRB = 0xFF;
0024 8FEF ldi R24,255
0026 87BB out 0x17,R24
0028 .dbline 61
0028 ; DDRC |= (1 << W_EN) | (1 << W_RT) | (1 << W_FS);
0028 84B3 in R24,0x14
002A 8B60 ori R24,11
002C 84BB out 0x14,R24
002E .dbline 62
002E ; DDRC |= ~(1 << W_BUSY);
002E 84B3 in R24,0x14
0030 8B6F ori R24,251
0032 84BB out 0x14,R24
0034 .dbline 63
0034 ; PORTC = (1 << W_EN) | (1 << W_RT) | (1 << W_BUSY) | (1 << W_FS);
0034 8FE0 ldi R24,15
0036 85BB out 0x15,R24
0038 .dbline 64
0038 ; DDRD |= (1 << W_TXD);
0038 899A sbi 0x11,1
003A .dbline 65
003A ; DDRD &= ~(1 << W_RXD);
003A 8898 cbi 0x11,0
003C .dbline 66
003C ; PORTD |= (1 << W_TXD) | (1 << W_RXD);
003C 82B3 in R24,0x12
003E 8360 ori R24,3
0040 82BB out 0x12,R24
0042 .dbline -2
0042 .dbline 67
0042 ; }
0042 L5:
0042 .dbline 0 ; func end
0042 0895 ret
0044 .dbend
0044 .dbfunc e USART_Init _USART_Init fV
.even
0044 _USART_Init::
0044 .dbline -1
0044 .dbline 72
0044 ;
0044 ; /*--------------UART0 initialize----------------*/
0044 ; /*baudrate: 19200*/
0044 ; void USART_Init(void)
0044 ; {
0044 .dbline 73
0044 ; UCSRB = 0x00;
0044 2224 clr R2
0046 2AB8 out 0xa,R2
0048 .dbline 74
0048 ; UCSRA = 0x00;
0048 2BB8 out 0xb,R2
004A .dbline 75
004A ; UCSRC = (1 <<URSEL) | 0x06;
004A 86E8 ldi R24,134
004C 80BD out 0x20,R24
004E .dbline 76
004E ; UBRRL= 25;
004E 89E1 ldi R24,25
0050 89B9 out 0x9,R24
0052 .dbline 77
0052 ; UBRRH= 0x00;
0052 20BC out 0x20,R2
0054 .dbline 78
0054 ; UCSRB = 0x98;
0054 88E9 ldi R24,152
0056 8AB9 out 0xa,R24
0058 .dbline -2
0058 .dbline 79
0058 ; }
0058 L6:
0058 .dbline 0 ; func end
0058 0895 ret
005A .dbend
005A .dbfunc e Wireless_Init _Wireless_Init fV
.even
005A _Wireless_Init::
005A .dbline -1
005A .dbline 83
005A ;
005A ; /*----------------initialize system-----------------*/
005A ; void Wireless_Init(void)
005A ; {
005A .dbline 84
005A ; asm("cli");
005A F894 cli
005C .dbline 85
005C ; Port_Init();
005C E1DF xcall _Port_Init
005E .dbline 86
005E ; USART_Init();
005E F2DF xcall _USART_Init
0060 .dbline 89
0060 ;
0060 ; #if WIRELESS_TRANSIMIT_SEL
0060 ; WIRELESS_SEND_EN();
0060 A998 cbi 0x15,1
0062 .dbline 94
0062 ; #else
0062 ; WIRELESS_RECEIVE_EN();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -