📄 sci.lis
字号:
0078 6F01 clr 1,X
007A 2021 bra L25
007C L22:
007C .dbline 64
007C ; if ((ReSendStatusR & (1<<ReTestBit)) != 0)
007C 0B1612 brclr #5,0x16,L26
007F .dbline 65
007F ; {i=ReSendDataR;
007F .dbline 65
007F B618 lda 0x18
0081 F7 sta ,X
0082 .dbline 66
0082 ; *p=0x00;
0082 E606 lda 6,X
0084 B700 sta *__r1
0086 E605 lda 5,X
0088 B700 sta *__r0
008A 4F clra
008B 5500 ldhx *__r0
008D F7 sta ,x
008E 95 tsx
008F .dbline 67
008F ; break;}
008F 201C bra L24
0091 L26:
0091 L23:
0091 .dbline 63
0091 E602 lda 2,X
0093 AB01 add #1
0095 E702 sta 2,X
0097 E601 lda 1,X
0099 A900 adc #0
009B E701 sta 1,X
009D L25:
009D .dbline 63
009D E602 lda 2,X
009F B700 sta *__r1
00A1 E601 lda 1,X
00A3 B700 sta *__r0
00A5 5500 ldhx *__r0
00A7 65FBBB cphx #-1093
00AA 95 tsx
00AB 25CF blo L22
00AD L24:
00AD .dbline 68
00AD ; if(k>=0xfbbb)
00AD E602 lda 2,X
00AF B700 sta *__r1
00B1 E601 lda 1,X
00B3 B700 sta *__r0
00B5 5500 ldhx *__r0
00B7 65FBBB cphx #-1093
00BA 95 tsx
00BB 2511 blo L28
00BD .dbline 69
00BD ; {i=0xff;
00BD .dbline 69
00BD A6FF lda #-1
00BF F7 sta ,X
00C0 .dbline 70
00C0 ; *p=0x01;}
00C0 E606 lda 6,X
00C2 B700 sta *__r1
00C4 E605 lda 5,X
00C6 B700 sta *__r0
00C8 A601 lda #1
00CA 5500 ldhx *__r0
00CC F7 sta ,x
00CD 95 tsx
00CE .dbline 70
00CE L28:
00CE .dbline 71
00CE ; return i; //返回接收到的数据
00CE F6 lda ,X
00CF .dbline -2
00CF L21:
00CF A703 ais #3
00D1 .dbline 0 ; func end
00D1 81 rts
00D2 .dbsym l i 0 c
00D2 .dbsym l k 1 s
00D2 .dbsym l p 5 pc
00D2 .dbend
00D2 .dbfunc e SCIReN _SCIReN fc
00D2 ; fp -> 0,X
00D2 ; m -> 1,X
00D2 ; ch -> 6,X
00D2 ; n -> 5,X
00D2 _SCIReN::
00D2 .dbline -1
00D2 A7FD ais #-3
00D4 95 tsx
00D5 .dbline 79
00D5 ; }
00D5 ; /*SCIReN:HC08串行接收N个字节---------------------------*
00D5 ; *功 能:接收N个字节数据,并存放在ch数组中 *
00D5 ; *参 数:待接收的数据字节数及其存放的数组首地址 *
00D5 ; *返 回:接收标志=0收到数据,=1未收到数据 *
00D5 ; *-----------------------------------------------------*/
00D5 ; INT8U SCIReN(INT8U n,INT8U ch[])
00D5 ; { INT16U m;
00D5 .dbline 81
00D5 ; INT8U fp;
00D5 ; m=0;
00D5 6F02 clr 2,X
00D7 6F01 clr 1,X
00D9 2031 bra L32
00DB L31:
00DB .dbline 83
00DB ; while (m<n)
00DB ; {
00DB .dbline 84
00DB ; ch[m]=SCIRe1(&fp);
00DB 89 pshx
00DC 8B pshh
00DD CD0073 jsr _SCIRe1
00E0 A702 ais #2
00E2 95 tsx
00E3 B700 sta *__r1
00E5 E602 lda 2,X
00E7 EB07 add 7,X
00E9 B700 sta *__r3
00EB E601 lda 1,X
00ED E906 adc 6,X
00EF B700 sta *__r2
00F1 B600 lda *__r1
00F3 5500 ldhx *__r2
00F5 F7 sta ,x
00F6 95 tsx
00F7 .dbline 85
00F7 ; if (fp==1) return 1;
00F7 F6 lda ,X
00F8 A101 cmp #1
00FA 2604 bne L34
00FC .dbline 85
00FC A601 lda #1
00FE 2022 bra L30
0100 L34:
0100 .dbline 86
0100 E602 lda 2,X
0102 AB01 add #1
0104 E702 sta 2,X
0106 E601 lda 1,X
0108 A900 adc #0
010A E701 sta 1,X
010C .dbline 87
010C L32:
010C .dbline 82
010C 3F00 clr *__r0
010E E605 lda 5,X
0110 B700 sta *__r1
0112 E602 lda 2,X
0114 B700 sta *__r3
0116 E601 lda 1,X
0118 B700 sta *__r2
011A 5500 ldhx *__r2
011C 7500 cphx *__r0
011E 95 tsx
011F 25BA blo L31
0121 .dbline 88
0121 ; m++;
0121 ; }
0121 ; return 0;
0121 4F clra
0122 .dbline -2
0122 L30:
0122 A703 ais #3
0124 .dbline 0 ; func end
0124 81 rts
0125 .dbsym l fp 0 c
0125 .dbsym l m 1 s
0125 .dbsym l ch 6 pc
0125 .dbsym l n 5 c
0125 .dbend
0125 .dbfunc e RS485Init _RS485Init fV
0125 _RS485Init::
0125 .dbline -1
0125 .dbline 98
0125 ; }
0125 ; /*RS485Init:RS485初始化子程序--------------------------*
0125 ; *功 能:对RS485进行初始化,默认为允许SCI,正常码输出,8位 *
0125 ; * 数据,无校验等,允许发送器允许接收器.查询方式收发,*
0125 ; * 波特率为2400(设fBUS=2.4576MHz) *
0125 ; *参 数:无 *
0125 ; *返 回:无 *
0125 ; *-----------------------------------------------------*/
0125 ; void RS485Init(void)
0125 ; {
0125 .dbline 100
0125 ; //总线频率fBUS=2.4576MHz,定义波特率Bt=2400
0125 ; SCBR=0b00100010;
0125 A622 lda #34
0127 B719 sta 0x19
0129 .dbline 102
0129 ; //设置允许SCI,正常码输出、8位数据、无校验
0129 ; SCC1=0b01000000;
0129 A640 lda #64
012B B713 sta 0x13
012D .dbline 104
012D ; //设置允许发送、允许接收,查询方式收发
012D ; SCC2=0b00001100;
012D A60C lda #12
012F B714 sta 0x14
0131 .dbline -2
0131 L36:
0131 .dbline 0 ; func end
0131 81 rts
0132 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -