📄 serial.sdi
字号:
,,,;这是一个串行口方式1用法的例子
,,,;系统的晶振频率11.0592MHz,通信波特率9600
,,,;要求每秒钟将以ADDR1为首地址的内部RAM8字节数据块发送出去
,,,;接收的数据块长为8字节,收到后存放到ADDR2为首地址的内部RAM中
,,,ADDR1 EQU 30H
,,,ADDR2 EQU 40H
,,,SEC BIT 00H ;秒标志
,,,CR2 EQU 0AH ;1区R2
,,,BR0 EQU 10H ;2区R0
,,,BR1 EQU 11H ;2区R1
,,,BR2 EQU 12H ;2区R2
,,,BR3 EQU 13H ;2区R3
,,, ORG 0
0000,02 00 30,, LJMP START
,,, ORG 0BH
000B,02 00 7C,, LJMP TS
,,, ORG 23H
0023,02 00 95,, LJMP TR
,,, ORG 30H
0030,75 81 60,START,START: MOV SP,#60H
,,,;==============================================
,,,;给发送缓冲区赋值
,,,;==============================================
0033,78 30,, MOV R0,#ADDR1
0035,7A 08,, MOV R2,#8
0037,74 30,, MOV A,#30H
0039,F6,LL1,LL1: MOV @R0,A
003A,04,, INC A
003B,08,, INC R0
003C,DA FB,, DJNZ R2,LL1
,,,;=============================================
003E,75 89 21,, MOV TMOD,#21H
0041,75 8C 4C,, MOV TH0,#4CH
0044,75 8A 00,, MOV TL0,#0 ;50mS定时初值
0047,75 8D FD,, MOV TH1,#0FDH
004A,75 8B FD,, MOV TL1,#0FDH ;9600波特
004D,53 87 7F,, ANL PCON,#7FH
0050,75 98 50,, MOV SCON,#50H
0053,D2 A9,, SETB ET0
0055,D2 AC,, SETB ES
0057,D2 B9,, SETB PT0
0059,D2 AF,, SETB EA
005B,75 10 30,, MOV BR0,#ADDR1
005E,75 11 40,, MOV BR1,#ADDR2
0061,75 12 08,, MOV BR2,#8
0064,75 13 08,, MOV BR3,#8
0067,75 0A 14,, MOV CR2,#20
006A,C2 00,, CLR SEC
006C,D2 8C,, SETB TR0
006E,D2 8E,, SETB TR1
0070,30 00 FD,LOOP,LOOP: JNB SEC,$
0073,C2 00,, CLR SEC
0075,A8 10,, MOV R0,BR0
0077,E6,, MOV A,@R0
0078,F5 99,, MOV SBUF,A ;启动发送,发送第一个字节
007A,80 F4,, SJMP LOOP ;等待下一秒钟时间到
007C,C0 D0,TS,TS: PUSH PSW
007E,D2 D3,, SETB RS0
0080,C2 D4,, CLR RS1 ;选1区工作寄存器
0082,C2 8C,, CLR TR0
0084,75 8C 4C,, MOV TH0,#4CH
0087,75 8A 00,, MOV TL0,#0
008A,D2 8C,, SETB TR0
008C,DA 04,, DJNZ R2,TS1
008E,7A 14,, MOV R2,#20
0090,D2 00,, SETB SEC
0092,D0 D0,TS1,TS1: POP PSW
0094,32,, RETI
0095,C0 D0,TR,TR: PUSH PSW
0097,C0 E0,, PUSH ACC
0099,D2 D4,, SETB RS1
009B,C2 D3,, CLR RS0 ;选择2区工作寄存器
009D,30 99 0E,, JNB TI,SR2
00A0,C2 99,, CLR TI
00A2,DA 06,, DJNZ R2,SR1
00A4,78 30,, MOV R0,#ADDR1
00A6,7A 08,, MOV R2,#8
00A8,80 04,, SJMP SR2
00AA,08,SR1,SR1: INC R0
00AB,E6,, MOV A,@R0
00AC,F5 99,, MOV SBUF,A
00AE,30 98 0C,SR2,SR2: JNB RI,SR3
00B1,C2 98,, CLR RI
00B3,E5 99,, MOV A,SBUF
00B5,F7,, MOV @R1,A
00B6,09,, INC R1
00B7,DB 04,, DJNZ R3,SR3
00B9,79 40,, MOV R1,#ADDR2
00BB,7B 08,, MOV R3,#8
00BD,D0 E0,SR3,SR3: POP ACC
00BF,D0 D0,, POP PSW
00C1,32,, RETI
000E,,, END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -