?? uart.s
字號:
.module UART.C
.area vector(rom, abs)
.org 44
jmp _USART_Recive_Complete_handler
.org 48
jmp _USART_Data_Register_Empty_handler
.org 52
jmp _USART_Transmit_Complete_handler
.area text(rom, con, rel)
.dbfile F:\自編程序\M16\ADC\UART.C
.dbfunc e USART_Init _USART_Init fV
.even
_USART_Init::
.dbline -1
.dbline 7
; #include<iom16v.h>
; #include<macros.h>
; #pragma interrupt_handler USART_Recive_Complete_handler:12
; #pragma interrupt_handler USART_Data_Register_Empty_handler:13
; #pragma interrupt_handler USART_Transmit_Complete_handler:14
; void USART_Init(void)
; {
.dbline 15
; //{{WIZARD_MAP(UART)
; // crystal: 16M
; // Baud Rate: 9600
; // Character Size: 8-bit
; // Mode: Asynchronous
; // Parity: Disabled
; // Stop Bit: 1-bit
; UBRRL = 0x33;
ldi R24,51
out 0x9,R24
.dbline 16
; UBRRH = 0x00;
clr R2
out 0x20,R2
.dbline 17
; UCSRA = 0x00;
out 0xb,R2
.dbline 18
; UCSRC = 0x86;
ldi R24,134
out 0x20,R24
.dbline 19
; UCSRB = 0x18;
ldi R24,24
out 0xa,R24
.dbline -2
.dbline 23
; //UCSRB|=0X80;//開接收結束中斷
; //UCSRB|=0X40;//開發送結束中斷
; //UCSRB|=0X20;//開數據寄存器空中斷
; }
L1:
.dbline 0 ; func end
ret
.dbend
.dbfunc e USART_Transmit _USART_Transmit fV
; data -> R16
.even
_USART_Transmit::
.dbline -1
.dbline 25
; void USART_Transmit(unsigned char data)
; {
L3:
.dbline 27
L4:
.dbline 27
; /* 等待發送緩沖器為空 */
; while ( !( UCSRA & (1<<UDRE)) );
sbis 0xb,5
rjmp L3
.dbline 29
; /* 將數據放入緩沖器,發送數據 */
; UDR = data;
out 0xc,R16
.dbline -2
.dbline 30
; }
L2:
.dbline 0 ; func end
ret
.dbsym r data 16 c
.dbend
.dbfunc e USART_Recive _USART_Recive fc
.even
_USART_Recive::
.dbline -1
.dbline 32
; unsigned char USART_Recive(void)
; {
L7:
.dbline 34
L8:
.dbline 34
; /* 等待接收數據*/
; while ( !(UCSRA & (1<<RXC)) );
sbis 0xb,7
rjmp L7
.dbline 36
; /* 從緩沖器中獲取并返回數據*/
; return UDR;
in R16,0xc
.dbline -2
L6:
.dbline 0 ; func end
ret
.dbend
.dbfunc e USART_Recive_Complete_handler _USART_Recive_Complete_handler fV
.even
_USART_Recive_Complete_handler::
.dbline -1
.dbline 39
; }
; void USART_Recive_Complete_handler(void)
; {
.dbline -2
.dbline 41
;
; }
L10:
.dbline 0 ; func end
reti
.dbend
.dbfunc e USART_Data_Register_Empty_handler _USART_Data_Register_Empty_handler fV
.even
_USART_Data_Register_Empty_handler::
.dbline -1
.dbline 43
; void USART_Data_Register_Empty_handler(void)
; {
.dbline -2
.dbline 45
;
; }void USART_Transmit_Complete_handler(void)
L11:
.dbline 0 ; func end
reti
.dbend
.dbfunc e USART_Transmit_Complete_handler _USART_Transmit_Complete_handler fV
.even
_USART_Transmit_Complete_handler::
.dbline -1
.dbline 46
; {
.dbline -2
.dbline 48
;
; }
L12:
.dbline 0 ; func end
reti
.dbend
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -