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

📄 sci.lis

📁 微程序控制器采用ATMEL AVR MEGA162
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 0072                   .dbline 61
 0072           ; }
 0072           ; 
 0072           ; 
 0072           ; BYTE ReadCommT0(BYTE time)
 0072           ; {
 0072                   .dbline 62
 0072           ;       timerCounter = 0;
 0072 2224              clr R2
 0074 20920000          sts _timerCounter,R2
 0078 04C0              xjmp L19
 007A           L18:
 007A                   .dbline 64
 007A           ;       while(timerCounter<time)
 007A           ;       {
 007A                   .dbline 65
 007A           ;               if(UCSR0A & (1<<RXC0))
 007A 5F9B              sbis 0xb,7
 007C 02C0              rjmp L21
 007E                   .dbline 66
 007E           ;               return UDR0; 
 007E 0CB1              in R16,0xc
 0080 05C0              xjmp L17
 0082           L21:
 0082                   .dbline 67
 0082           L19:
 0082                   .dbline 63
 0082 20900000          lds R2,_timerCounter
 0086 2016              cp R2,R16
 0088 C0F3              brlo L18
 008A                   .dbline 69
 008A           ;       }
 008A           ;       
 008A           ;       return 0;
 008A 0027              clr R16
 008C                   .dbline -2
 008C           L17:
 008C                   .dbline 0 ; func end
 008C 0895              ret
 008E                   .dbsym r time 16 c
 008E                   .dbend
 008E                   .dbfunc e OpenComm1 _OpenComm1 fV
                        .even
 008E           _OpenComm1::
 008E                   .dbline -1
 008E                   .dbline 73
 008E           ; }
 008E           ; 
 008E           ; void OpenComm1 (void)
 008E           ; {
 008E                   .dbline -2
 008E           L23:
 008E                   .dbline 0 ; func end
 008E 0895              ret
 0090                   .dbend
 0090                   .dbfunc e WriteComm1 _WriteComm1 fV
 0090           ;              c -> R16
                        .even
 0090           _WriteComm1::
 0090                   .dbline -1
 0090                   .dbline 87
 0090           ;               //设置波特率19200
 0090           ;       //UBRRL = 0x0B; //set baud rate lo
 0090           ;       //UBRRH = 0x00; //set baud rate hi
 0090           ;               //设置帧格式: 8个数据位, 1个停止位
 0090           ;       //UCSRC = (1<<URSEL)|(3<<UCSZ0);        
 0090           ;               //接收器与发送器使能
 0090           ;       //UCSRB = (1<<RXEN)|(1<<TXEN|1<<RXCIE);
 0090           ;       //UCSRB = (1<<RXEN)|(1<<TXEN);
 0090           ; }
 0090           ; 
 0090           ; 
 0090           ; 
 0090           ; void WriteComm1 (BYTE c)
 0090           ; {
 0090           L25:
 0090                   .dbline 88
 0090           L26:
 0090                   .dbline 88
 0090           ;       while( !(UCSR1A & (1<<UDRE1)) ); 
 0090 159B              sbis 0x2,5
 0092 FECF              rjmp L25
 0094                   .dbline 89
 0094           ;       UDR1=c; 
 0094 03B9              out 0x3,R16
 0096                   .dbline -2
 0096           L24:
 0096                   .dbline 0 ; func end
 0096 0895              ret
 0098                   .dbsym r c 16 c
 0098                   .dbend
 0098                   .dbfunc e WriteCommStr1 _WriteCommStr1 fV
 0098           ;            str -> R20,R21
                        .even
 0098           _WriteCommStr1::
 0098 0E940000          xcall push_gset1
 009C A801              movw R20,R16
 009E                   .dbline -1
 009E                   .dbline 92
 009E           ; }
 009E           ; void WriteCommStr1 (char* str)
 009E           ; {
 009E 05C0              xjmp L30
 00A0           L29:
 00A0                   .dbline 94
 00A0                   .dbline 95
 00A0 FA01              movw R30,R20
 00A2 0081              ldd R16,z+0
 00A4 F5DF              xcall _WriteComm1
 00A6                   .dbline 96
 00A6 4F5F              subi R20,255  ; offset = 1
 00A8 5F4F              sbci R21,255
 00AA                   .dbline 97
 00AA           L30:
 00AA                   .dbline 93
 00AA           ;       while(*str)
 00AA FA01              movw R30,R20
 00AC 2080              ldd R2,z+0
 00AE 2220              tst R2
 00B0 B9F7              brne L29
 00B2                   .dbline -2
 00B2           L28:
 00B2 0E940000          xcall pop_gset1
 00B6                   .dbline 0 ; func end
 00B6 0895              ret
 00B8                   .dbsym r str 20 pc
 00B8                   .dbend
 00B8                   .dbfunc e ReadComm1 _ReadComm1 fc
                        .even
 00B8           _ReadComm1::
 00B8                   .dbline -1
 00B8                   .dbline 100
 00B8           ;       {
 00B8           ;               WriteComm1(*str);
 00B8           ;               str++;
 00B8           ;       }
 00B8           ; }
 00B8           ; BYTE ReadComm1 ()
 00B8           ; {
 00B8           L33:
 00B8                   .dbline 101
 00B8           L34:
 00B8                   .dbline 101
 00B8           ;       while( !(UCSR1A & (1<<RXC1)) );  
 00B8 179B              sbis 0x2,7
 00BA FECF              rjmp L33
 00BC                   .dbline 102
 00BC           ;       return UDR1; 
 00BC 03B1              in R16,0x3
 00BE                   .dbline -2
 00BE           L32:
 00BE                   .dbline 0 ; func end
 00BE 0895              ret
 00C0                   .dbend
 00C0                   .dbfunc e ReadCommT1 _ReadCommT1 fc
 00C0           ;           time -> R16
                        .even
 00C0           _ReadCommT1::
 00C0                   .dbline -1
 00C0                   .dbline 107
 00C0           ; }
 00C0           ; 
 00C0           ; 
 00C0           ; BYTE ReadCommT1(BYTE time)
 00C0           ; {
 00C0                   .dbline 108
 00C0           ;       timerCounter = 0;
 00C0 2224              clr R2
 00C2 20920000          sts _timerCounter,R2
 00C6 04C0              xjmp L38
 00C8           L37:
 00C8                   .dbline 110
 00C8           ;       while(timerCounter<time)
 00C8           ;       {
 00C8                   .dbline 111
 00C8           ;               if(UCSR1A & (1<<RXC1))
 00C8 179B              sbis 0x2,7
 00CA 02C0              rjmp L40
 00CC                   .dbline 112
 00CC           ;               return UDR1; 
 00CC 03B1              in R16,0x3
 00CE 05C0              xjmp L36
 00D0           L40:
 00D0                   .dbline 113
 00D0           L38:
 00D0                   .dbline 109
 00D0 20900000          lds R2,_timerCounter
 00D4 2016              cp R2,R16
 00D6 C0F3              brlo L37
 00D8                   .dbline 115
 00D8           ;       }
 00D8           ;       
 00D8           ;       return 0;
 00D8 0027              clr R16
 00DA                   .dbline -2
 00DA           L36:
 00DA                   .dbline 0 ; func end
 00DA 0895              ret
 00DC                   .dbsym r time 16 c
 00DC                   .dbend
 00DC                   .dbfunc e setCommEventProc _setCommEventProc fV
 00DC           ;           Proc -> R16,R17
                        .even
 00DC           _setCommEventProc::
 00DC                   .dbline -1
 00DC                   .dbline 120
 00DC           ; }
 00DC           ; 
 00DC           ; 
 00DC           ; void setCommEventProc (EventProc Proc) 
 00DC           ; {
 00DC                   .dbline 122
 00DC           ; //    disable ();
 00DC           ;     EvtProcedure = Proc;
 00DC 10930100          sts _EvtProcedure+1,R17
 00E0 00930000          sts _EvtProcedure,R16
 00E4                   .dbline -2
 00E4           L42:
 00E4                   .dbline 0 ; func end
 00E4 0895              ret
 00E6                   .dbsym r Proc 16 pfV
 00E6                   .dbend
                        .area func_lit
 0000 0000      PL_CommDrvDefaultProc:  .word `_CommDrvDefaultProc

⌨️ 快捷键说明

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