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

📄 uart.lis

📁 mega128的串口发送文件.可以发送0X55上位机使用串口调试工具就可以接收了.
💻 LIS
字号:
                        .module uart.c
                        .area vector(rom, abs)
                        .org 72
 0048 0C940000          jmp _uart0_rx_isr
                        .area text(rom, con, rel)
 0000                   .dbfile D:\new_sd\uart.c
 0000                   .dbfunc e uart0_rx_isr _uart0_rx_isr fV
 0000           ;         status -> R16
 0000           ;           data -> R16
                        .even
 0000           _uart0_rx_isr::
 0000 0A93              st -y,R16
 0002 0FB7              in R16,0x3f
 0004 0A93              st -y,R16
 0006                   .dbline -1
 0006                   .dbline 16
 0006           ; 
 0006           ; #include "GLO.H"
 0006           ; #include "uart.h"
 0006           ; //--------------------------------------------------------------------
 0006           ; /*
 0006           ; uart0接收结束中断   与PL-2303通信
 0006           ; */
 0006           ; //中断向量             
 0006           ; //协议帧格式
 0006           ; //SYNC + LENGTH(2 byte) + COMMAND + DATA + CHECKSUM
 0006           ; //
 0006           ; //--------------------------------------------------------------------
 0006           ; #pragma interrupt_handler uart0_rx_isr:19 
 0006           ; 
 0006           ; void uart0_rx_isr(void)
 0006           ; {
 0006                   .dbline 18
 0006           ;     unsigned char status,data;
 0006           ;     status = UCSR0A;
 0006 0BB1              in R16,0xb
 0008                   .dbline 19
 0008           ;     data = UDR0;
 0008 0CB1              in R16,0xc
 000A                   .dbline 25
 000A           ;    /* if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
 000A           ;       {
 000A           ;       }
 000A           ;       //  PORTA = led_7[data];
 000A           ;       */
 000A           ;       data = UDR0;
 000A 0CB1              in R16,0xc
 000C                   .dbline -2
 000C           L1:
 000C 0991              ld R16,y+
 000E 0FBF              out 0x3f,R16
 0010 0991              ld R16,y+
 0012                   .dbline 0 ; func end
 0012 1895              reti
 0014                   .dbsym r status 16 c
 0014                   .dbsym r data 16 c
 0014                   .dbend
 0014                   .dbfunc e USART_Transmit _USART_Transmit fV
 0014           ;           data -> R16
                        .even
 0014           _USART_Transmit::
 0014                   .dbline -1
 0014                   .dbline 44
 0014           ; }
 0014           ; //--------------------------------------------------------------------
 0014           ; /*
 0014           ; uart0 寄存器空中断(发送中断)
 0014           ; */
 0014           ; //--------------------------------------------------------------------
 0014           ; /*
 0014           ; #pragma interrupt_handler uart0_udre_isr:20
 0014           ;  
 0014           ; void uart0_udre_isr(void)
 0014           ; {
 0014           ;       while (!(UCSRA & DATA_REGISTER_EMPTY));     // 等待发送寄存器空                                 
 0014           ;       UDR = data;   
 0014           ;       
 0014           ; }
 0014           ; */
 0014           ; 
 0014           ; void USART_Transmit(unsigned char data)
 0014           ; {
 0014           L3:
 0014                   .dbline 45
 0014           L4:
 0014                   .dbline 45
 0014           ;       while (!(UCSR0A & DATA_REGISTER_EMPTY));     // 等待发送寄存器空                                        
 0014 5D9B              sbis 0xb,5
 0016 FECF              rjmp L3
 0018                   .dbline 46
 0018           ;       UDR0 = data;                                 // 发送数据                                
 0018 0CB9              out 0xc,R16
 001A                   .dbline -2
 001A           L2:
 001A                   .dbline 0 ; func end
 001A 0895              ret
 001C                   .dbsym r data 16 c
 001C                   .dbend

⌨️ 快捷键说明

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