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

📄 sci.lis

📁 项目是为日本瑞萨工作所做的BAKE炉温控系统 整个文件夹包括设计文档
💻 LIS
字号:
                        .module SCI.c
                        .area text
 0000                   .dbfile SCI.c
 0000                   .dbfunc e SCISend1 _SCISend1 fV
 0000           ;              o -> 2,X
 0000           _SCISend1::
 0000                   .dbline -1
 0000 95                tsx
 0001                   .dbline 11
 0001           ; /*-----------------------------------------------------*
 0001           ; *文件描述:本文件包含了串行通信的4子程序,分别为:        *  
 0001           ; *(1)SCISend1:串行发送1字节                             *
 0001           ; *(2)SCISendN:串行发送n字节                             *
 0001           ; *(3)SCIRe1:串行接收1字节                               *
 0001           ; *(4)SCIReN:串行接收n字节                               *
 0001           ; *-------------《嵌入式应用技术基础教程》--------------*/
 0001           ; #include "SCI.h"
 0001           ; 
 0001           ; void SCISend1(unsigned char o)
 0001           ; {//判断ReStatusR的第SendTestBit位是否为1,是1可以发送
 0001 2009              bra L3
 0003           L2:
 0003                   .dbline 13
 0003           ;       while(1)
 0003           ;       {
 0003                   .dbline 14
 0003           ;               if ((ReSendStatusR & (1 << SendTestBit)) != 0)
 0003 0F1606            brclr #7,0x16,L5
 0006                   .dbline 15
 0006           ;               { 
 0006                   .dbline 16
 0006           ;                       ReSendDataR = o;
 0006 E602              lda 2,X
 0008 B718              sta 0x18
 000A                   .dbline 17
 000A           ;                       break;
 000A 2002              bra L4
 000C           L5:
 000C                   .dbline 19
 000C           L3:
 000C                   .dbline 12
 000C 20F5              bra L2
 000E           L4:
 000E                   .dbline -2
 000E           L1:
 000E                   .dbline 0 ; func end
 000E 81                rts
 000F                   .dbsym l o 2 c
 000F                   .dbend
 000F                   .dbfunc e SCISendN _SCISendN fV
 000F           ;              i -> 0,X
 000F           ;             ch -> 5,X
 000F           ;              n -> 4,X
 000F           _SCISendN::
 000F                   .dbline -1
 000F A7FE              ais #-2
 0011 95                tsx
 0012                   .dbline 23
 0012           ;               }
 0012           ;       }
 0012           ; }
 0012           ; 
 0012           ; void SCISendN(unsigned char n,unsigned char ch[])
 0012           ; {
 0012                   .dbline 25
 0012           ;       int i;
 0012           ;       for(i = 0; i < n; i++)          
 0012 6F01              clr 1,X
 0014 7F                clr ,X
 0015 201F              bra L11
 0017           L8:
 0017                   .dbline 26
 0017 E601              lda 1,X
 0019 EB06              add 6,X
 001B B700              sta *__r1
 001D F6                lda ,X
 001E E905              adc 5,X
 0020 B700              sta *__r0
 0022 5500              ldhx *__r0
 0024 F6                lda ,x
 0025 87                psha
 0026 CD0000            jsr _SCISend1
 0029 A701              ais #1
 002B 95                tsx
 002C           L9:
 002C                   .dbline 25
 002C E601              lda 1,X
 002E AB01              add #1
 0030 E701              sta 1,X
 0032 F6                lda ,X
 0033 A900              adc #0
 0035 F7                sta ,X
 0036           L11:
 0036                   .dbline 25
 0036 3F00              clr *__r0
 0038 E604              lda 4,X
 003A B700              sta *__r1
 003C E601              lda 1,X
 003E B700              sta *__r3
 0040 F6                lda ,X
 0041 B700              sta *__r2
 0043 5500              ldhx *__r2
 0045 7500              cphx *__r0
 0047 95                tsx
 0048 91CD              blt L8
 004A                   .dbline -2
 004A           L7:
 004A A702              ais #2
 004C                   .dbline 0 ; func end
 004C 81                rts
 004D                   .dbsym l i 0 I
 004D                   .dbsym l ch 5 pc
 004D                   .dbsym l n 4 c
 004D                   .dbend
 004D                   .dbfunc e SCIRe1 _SCIRe1 fc
 004D           ;              i -> 0,X
 004D           ;              k -> 1,X
 004D           ;              p -> 5,X
 004D           _SCIRe1::
 004D                   .dbline -1
 004D A7FD              ais #-3
 004F 95                tsx
 0050                   .dbline 30
 0050           ;               SCISend1(ch[i]);
 0050           ; }
 0050           ; 
 0050           ; unsigned char SCIRe1(unsigned char *p)
 0050           ; { 
 0050                   .dbline 34
 0050           ;       unsigned int k;
 0050           ;       unsigned char i;
 0050           ;       //ReStatusR第ReTestBit位为1表示可接收数据
 0050           ;       for(k = 0; k< 0xfbbb; k++)
 0050 6F02              clr 2,X
 0052 6F01              clr 1,X
 0054 2021              bra L16
 0056           L13:
 0056                   .dbline 35
 0056           ;       {
 0056                   .dbline 36
 0056           ;               if ((ReSendStatusR & (1 << ReTestBit)) != 0)
 0056 0B1612            brclr #5,0x16,L17
 0059                   .dbline 37
 0059           ;               {
 0059                   .dbline 38
 0059           ;                       i = ReSendDataR;
 0059 B618              lda 0x18
 005B F7                sta ,X
 005C                   .dbline 39
 005C           ;                       *p = 0x00; 
 005C E606              lda 6,X
 005E B700              sta *__r1
 0060 E605              lda 5,X
 0062 B700              sta *__r0
 0064 4F                clra
 0065 5500              ldhx *__r0
 0067 F7                sta ,x
 0068 95                tsx
 0069                   .dbline 40
 0069           ;                       break;
 0069 201C              bra L15
 006B           L17:
 006B                   .dbline 42
 006B           L14:
 006B                   .dbline 34
 006B E602              lda 2,X
 006D AB01              add #1
 006F E702              sta 2,X
 0071 E601              lda 1,X
 0073 A900              adc #0
 0075 E701              sta 1,X
 0077           L16:
 0077                   .dbline 34
 0077 E602              lda 2,X
 0079 B700              sta *__r1
 007B E601              lda 1,X
 007D B700              sta *__r0
 007F 5500              ldhx *__r0
 0081 65FBBB            cphx #-1093
 0084 95                tsx
 0085 25CF              blo L13
 0087           L15:
 0087                   .dbline 43
 0087           ;               } 
 0087           ;       }
 0087           ;       if(k >= 0xfbbb) 
 0087 E602              lda 2,X
 0089 B700              sta *__r1
 008B E601              lda 1,X
 008D B700              sta *__r0
 008F 5500              ldhx *__r0
 0091 65FBBB            cphx #-1093
 0094 95                tsx
 0095 2511              blo L19
 0097                   .dbline 44
 0097           ;       {
 0097                   .dbline 45
 0097           ;               i = 0xff;
 0097 A6FF              lda #-1
 0099 F7                sta ,X
 009A                   .dbline 46
 009A           ;               *p = 0x01;
 009A E606              lda 6,X
 009C B700              sta *__r1
 009E E605              lda 5,X
 00A0 B700              sta *__r0
 00A2 A601              lda #1
 00A4 5500              ldhx *__r0
 00A6 F7                sta ,x
 00A7 95                tsx
 00A8                   .dbline 47
 00A8           ;       }       
 00A8           L19:
 00A8                   .dbline 48
 00A8           ;       return i;             //返回接收到的数据
 00A8 F6                lda ,X
 00A9                   .dbline -2
 00A9           L12:
 00A9 A703              ais #3
 00AB                   .dbline 0 ; func end
 00AB 81                rts
 00AC                   .dbsym l i 0 c
 00AC                   .dbsym l k 1 i
 00AC                   .dbsym l p 5 pc
 00AC                   .dbend
 00AC                   .dbfunc e SCIReN _SCIReN fc
 00AC           ;             fp -> 0,X
 00AC           ;              m -> 1,X
 00AC           ;             ch -> 6,X
 00AC           ;              n -> 5,X
 00AC           _SCIReN::
 00AC                   .dbline -1
 00AC A7FD              ais #-3
 00AE 95                tsx
 00AF                   .dbline 52
 00AF           ; }
 00AF           ; 
 00AF           ; unsigned char SCIReN(unsigned char n, unsigned char ch[])
 00AF           ; {
 00AF                   .dbline 55
 00AF           ;       int m;                  
 00AF           ;       unsigned char fp;
 00AF           ;       m = 0;
 00AF 6F02              clr 2,X
 00B1 6F01              clr 1,X
 00B3 2031              bra L23
 00B5           L22:
 00B5                   .dbline 57
 00B5           ;       while (m < n)
 00B5           ;       {                 
 00B5                   .dbline 58
 00B5           ;               ch[m]=SCIRe1(&fp); 
 00B5 89                pshx
 00B6 8B                pshh
 00B7 CD004D            jsr _SCIRe1
 00BA A702              ais #2
 00BC 95                tsx
 00BD B700              sta *__r1
 00BF E602              lda 2,X
 00C1 EB07              add 7,X
 00C3 B700              sta *__r3
 00C5 E601              lda 1,X
 00C7 E906              adc 6,X
 00C9 B700              sta *__r2
 00CB B600              lda *__r1
 00CD 5500              ldhx *__r2
 00CF F7                sta ,x
 00D0 95                tsx
 00D1                   .dbline 59
 00D1           ;               if (fp == 1) return 1;
 00D1 F6                lda ,X
 00D2 A101              cmp #1
 00D4 2604              bne L25
 00D6                   .dbline 59
 00D6 A601              lda #1
 00D8 2022              bra L21
 00DA           L25:
 00DA                   .dbline 60
 00DA E602              lda 2,X
 00DC AB01              add #1
 00DE E702              sta 2,X
 00E0 E601              lda 1,X
 00E2 A900              adc #0
 00E4 E701              sta 1,X
 00E6                   .dbline 61
 00E6           L23:
 00E6                   .dbline 56
 00E6 3F00              clr *__r0
 00E8 E605              lda 5,X
 00EA B700              sta *__r1
 00EC E602              lda 2,X
 00EE B700              sta *__r3
 00F0 E601              lda 1,X
 00F2 B700              sta *__r2
 00F4 5500              ldhx *__r2
 00F6 7500              cphx *__r0
 00F8 95                tsx
 00F9 91BA              blt L22
 00FB                   .dbline 62
 00FB           ;               m ++;
 00FB           ;       }
 00FB           ;       return 0;        
 00FB 4F                clra
 00FC                   .dbline -2
 00FC           L21:
 00FC A703              ais #3
 00FE                   .dbline 0 ; func end
 00FE 81                rts
 00FF                   .dbsym l fp 0 c
 00FF                   .dbsym l m 1 I
 00FF                   .dbsym l ch 6 pc
 00FF                   .dbsym l n 5 c
 00FF                   .dbend

⌨️ 快捷键说明

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