📄 uart.lis
字号:
.module UART.c
.area data(ram, con, rel)
0000 _Rx_counter::
0000 .blkb 1
.area idata
0000 00 .byte 0
.area data(ram, con, rel)
0001 .dbfile G:\猛\avr实践\UART\UART.c
0001 .dbsym e Rx_counter _Rx_counter c
0001 _Tx_counter::
0001 .blkb 1
.area idata
0001 00 .byte 0
.area data(ram, con, rel)
0002 .dbfile G:\猛\avr实践\UART\UART.c
0002 .dbsym e Tx_counter _Tx_counter c
0002 _Tx_data_buf::
0002 .blkb 2
.area idata
0002 DE6F .byte 222,'o
.area data(ram, con, rel)
0004 .dbfile G:\猛\avr实践\UART\UART.c
0004 .blkb 2
.area idata
0004 6432 .byte 'd,50
.area data(ram, con, rel)
0006 .dbfile G:\猛\avr实践\UART\UART.c
0006 .blkb 2
.area idata
0006 140A .byte 20,10
.area data(ram, con, rel)
0008 .dbfile G:\猛\avr实践\UART\UART.c
0008 .blkb 2
.area idata
0008 0502 .byte 5,2
.area data(ram, con, rel)
000A .dbfile G:\猛\avr实践\UART\UART.c
000A .blkb 2
.area idata
000A 0116 .byte 1,22
.area data(ram, con, rel)
000C .dbfile G:\猛\avr实践\UART\UART.c
000C .dbsym e Tx_data_buf _Tx_data_buf A[10:10]c
000C _UART0_TX_flag::
000C .blkb 1
.area idata
000C 01 .byte 1
.area data(ram, con, rel)
000D .dbfile G:\猛\avr实践\UART\UART.c
000D .dbsym e UART0_TX_flag _UART0_TX_flag c
000D _UART0_RX_flag::
000D .blkb 1
.area idata
000D 01 .byte 1
.area data(ram, con, rel)
000E .dbfile G:\猛\avr实践\UART\UART.c
000E .dbsym e UART0_RX_flag _UART0_RX_flag c
000E _Type_flag::
000E .blkb 1
.area idata
000E 04 .byte 4
.area data(ram, con, rel)
000F .dbfile G:\猛\avr实践\UART\UART.c
000F .dbsym e Type_flag _Type_flag c
000F _LED_table::
000F .blkb 2
.area idata
000F 3F06 .byte 63,6
.area data(ram, con, rel)
0011 .dbfile G:\猛\avr实践\UART\UART.c
0011 .blkb 2
.area idata
0011 5B4F .byte 91,'O
.area data(ram, con, rel)
0013 .dbfile G:\猛\avr实践\UART\UART.c
0013 .blkb 2
.area idata
0013 666D .byte 'f,'m
.area data(ram, con, rel)
0015 .dbfile G:\猛\avr实践\UART\UART.c
0015 .blkb 2
.area idata
0015 7D07 .byte 125,7
.area data(ram, con, rel)
0017 .dbfile G:\猛\avr实践\UART\UART.c
0017 .blkb 2
.area idata
0017 7F6F .byte 127,'o
.area data(ram, con, rel)
0019 .dbfile G:\猛\avr实践\UART\UART.c
0019 .blkb 2
.area idata
0019 777C .byte 'w,124
.area data(ram, con, rel)
001B .dbfile G:\猛\avr实践\UART\UART.c
001B .blkb 2
.area idata
001B 395E .byte 57,94
.area data(ram, con, rel)
001D .dbfile G:\猛\avr实践\UART\UART.c
001D .blkb 2
.area idata
001D 7971 .byte 'y,'q
.area data(ram, con, rel)
001F .dbfile G:\猛\avr实践\UART\UART.c
001F .blkb 2
.area idata
001F 7638 .byte 'v,56
.area data(ram, con, rel)
0021 .dbfile G:\猛\avr实践\UART\UART.c
0021 .blkb 2
.area idata
0021 373E .byte 55,62
.area data(ram, con, rel)
0023 .dbfile G:\猛\avr实践\UART\UART.c
0023 .blkb 2
.area idata
0023 735C .byte 's,92
.area data(ram, con, rel)
0025 .dbfile G:\猛\avr实践\UART\UART.c
0025 .blkb 2
.area idata
0025 4000 .byte 64,0
.area data(ram, con, rel)
0027 .dbfile G:\猛\avr实践\UART\UART.c
0027 .dbsym e LED_table _LED_table A[24:24]c
.area vector(rom, abs)
.org 80
0050 0C948900 jmp _UART0_TX_INT
.area data(ram, con, rel)
0027 .dbfile G:\猛\avr实践\UART\UART.c
.area vector(rom, abs)
.org 72
0048 0C94B700 jmp _UART0_RX_INT
.area data(ram, con, rel)
0027 .dbfile G:\猛\avr实践\UART\UART.c
.area vector(rom, abs)
.org 4
0004 0C94E200 jmp _External_INT_0
.area data(ram, con, rel)
0027 .dbfile G:\猛\avr实践\UART\UART.c
.area vector(rom, abs)
.org 8
0008 0C94EB00 jmp _External_INT_1
.area data(ram, con, rel)
0027 .dbfile G:\猛\avr实践\UART\UART.c
.area vector(rom, abs)
.org 12
000C 0C940101 jmp _External_INT_2
.area data(ram, con, rel)
0027 .dbfile G:\猛\avr实践\UART\UART.c
.area text(rom, con, rel)
0000 .dbfile G:\猛\avr实践\UART\UART.c
0000 .dbfunc e main _main fV
0000 ; i -> R22
.even
0000 _main::
0000 .dbline -1
0000 .dbline 86
0000 ; #include <iom128.h>
0000 ; #include <macros.h>
0000 ;
0000 ; //LED 开关定义
0000 ;
0000 ; #define Red_LED_on PORTB&~BIT(0)
0000 ; #define Red_LED_off PORTB|(1<<0)
0000 ; #define Green_LED_on PORTB&(~(1<<1))
0000 ; #define Green_LED_off PORTB|(1<<1)
0000 ; #define Yellow_LED_on PORTB&(~(1<<2))
0000 ; #define Yellow_LED_off PORTB|(1<<2)
0000 ;
0000 ; //UART
0000 ; unsigned char Rx_counter = 0;
0000 ; unsigned char Tx_counter = 0;
0000 ; unsigned char Tx_data_buf[] = {222,111,100,50,20,10,5,2,1,22};
0000 ; unsigned char Tx_data;
0000 ; unsigned char Rx_data_buf[12];
0000 ; unsigned char Rx_data;
0000 ; unsigned char UART0_TX_flag = 1;
0000 ; unsigned char UART0_RX_flag = 1;
0000 ; unsigned char Type_flag = 4;
0000 ; //Display
0000 ; unsigned char number_bai;
0000 ; unsigned char number_shi;
0000 ; unsigned char number_ge ;
0000 ; unsigned char Display_type;
0000 ; unsigned char Display_value;
0000 ; unsigned char LED_table[]=
0000 ; {
0000 ; 0x3F, //"0"
0000 ; 0x06, //"1"
0000 ; 0x5B, //"2"
0000 ; 0x4F, //"3"
0000 ; 0x66, //"4"
0000 ; 0x6D, //"5"
0000 ; 0x7D, //"6"
0000 ; 0x07, //"7"
0000 ; 0x7F, //"8"
0000 ; 0x6F, //"9"
0000 ; 0x77, //"A"
0000 ; 0x7C, //"B"
0000 ; 0x39, //"C"
0000 ; 0x5E, //"D"
0000 ; 0x79, //"E"
0000 ; 0x71, //"F"
0000 ; 0x76, //"H"
0000 ; 0x38, //"L"
0000 ; 0x37, //"n"
0000 ; 0x3E, //"u"
0000 ; 0x73, //"P"
0000 ; 0x5C, //"o"
0000 ; 0x40, //"-"
0000 ; 0x00, //熄灭
0000 ; };
0000 ;
0000 ; //use for test;
0000 ; unsigned char m;
0000 ;
0000 ; //define Interrupt Vactor
0000 ;
0000 ; #pragma interrupt_handler UART0_TX_INT:21 //外部中断0
0000 ; #pragma interrupt_handler UART0_RX_INT:19 //外部中断1
0000 ; #pragma interrupt_handler External_INT_0:2 //外部中断0
0000 ; #pragma interrupt_handler External_INT_1:3 //外部中断1
0000 ; #pragma interrupt_handler External_INT_2:4 //外部中断2
0000 ;
0000 ; //pre_define
0000 ;
0000 ; void Port_initialize(void);
0000 ; void INT_initialize(void);
0000 ; void UART_initialize(void);
0000 ;
0000 ; void UART0_TX_INT(void);
0000 ; void UART0_RX_INT(void);
0000 ; void External_INT_0(void);
0000 ; void External_INT_1(void);
0000 ; void External_INT_2(void);
0000 ;
0000 ; void LED_Display(unsigned char Type,unsigned char Data);
0000 ; void DATA_to_NUM(unsigned char data);
0000 ; void Delay(void);
0000 ;
0000 ;
0000 ; void main(void)
0000 ; {
0000 .dbline 89
0000 ; unsigned char i;
0000 ;
0000 ; Port_initialize();
0000 5FD0 xcall _Port_initialize
0002 .dbline 90
0002 ; UART_initialize();
0002 6ED0 xcall _UART_initialize
0004 .dbline 91
0004 ; INT_initialize();
0004 64D0 xcall _INT_initialize
0006 .dbline 93
0006 ;
0006 ; for (; ; )
0006 L2:
0006 .dbline 94
0006 ; {
0006 .dbline 95
0006 ; switch (Type_flag)
0006 40910E00 lds R20,_Type_flag
000A 5527 clr R21
000C 4030 cpi R20,0
000E 4507 cpc R20,R21
0010 69F0 breq L9
0012 X0:
0012 4130 cpi R20,1
0014 E0E0 ldi R30,0
0016 5E07 cpc R21,R30
0018 89F0 breq L10
001A 4230 cpi R20,2
001C E0E0 ldi R30,0
001E 5E07 cpc R21,R30
0020 A9F0 breq L11
0022 4330 cpi R20,3
0024 E0E0 ldi R30,0
0026 5E07 cpc R21,R30
0028 C9F0 breq L12
002A 20C0 xjmp L6
002C X1:
002C .dbline 96
002C ; {
002C L9:
002C .dbline 98
002C ; case 0: //发送的数值
002C ; {
002C .dbline 99
002C ; Display_type = 0;
002C 2224 clr R2
002E 20920200 sts _Display_type,R2
0032 .dbline 100
0032 ; Display_value = Tx_data;
0032 20901300 lds R2,_Tx_data
0036 20920100 sts _Display_value,R2
003A .dbline 102
003A ;
003A ; }break;
003A .dbline 102
003A 1BC0 xjmp L7
003C L10:
003C .dbline 105
003C ;
003C ; case 1: //发送计数
003C ; {
003C .dbline 106
003C ; Display_type = 1;
003C 81E0 ldi R24,1
003E 80930200 sts _Display_type,R24
0042 .dbline 107
0042 ; Display_value = Tx_counter;
0042 20900100 lds R2,_Tx_counter
0046 20920100 sts _Display_value,R2
004A .dbline 109
004A ;
004A ; }break;
004A .dbline 109
004A 13C0 xjmp L7
004C L11:
004C .dbline 112
004C ;
004C ; case 2: //接收的数值
004C ; {
004C .dbline 113
004C ; Display_type = 2;
004C 82E0 ldi R24,2
004E 80930200 sts _Display_type,R24
0052 .dbline 114
0052 ; Display_value = Rx_data;
0052 20900600 lds R2,_Rx_data
0056 20920100 sts _Display_value,R2
005A .dbline 116
005A ;
005A ; }break;
005A .dbline 116
005A 0BC0 xjmp L7
005C L12:
005C .dbline 119
005C ;
005C ; case 3: //接收计数
005C ; {
005C .dbline 120
005C ; Display_type = 3;
005C 83E0 ldi R24,3
005E 80930200 sts _Display_type,R24
0062 .dbline 121
0062 ; Display_value = Rx_counter;
0062 20900000 lds R2,_Rx_counter
0066 20920100 sts _Display_value,R2
006A .dbline 123
006A ;
006A ; }break;
006A .dbline 123
006A 03C0 xjmp L7
006C L6:
006C .dbline 126
006C ;
006C ; default:
006C ; {
006C .dbline 127
006C ; Display_type = 0x0f;
006C 8FE0 ldi R24,15
006E 80930200 sts _Display_type,R24
0072 .dbline 129
0072 ;
0072 ; }break;
0072 .dbline 129
0072 L7:
0072 .dbline 132
0072 ; }
0072 ;
0072 ; LED_Display(Display_type,Display_value); //数码管显示
0072 20910100 lds R18,_Display_value
0076 00910200 lds R16,_Display_type
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -