|
实验21
串行双向通信实验
所谓“串行通信”是指外设和计算机间使用一根数据信号线(另外需要地线,可能还需要控制线),数据在一根数据信号线上一位一位地进行传输,每一位数据都占据一个固定的时间长度。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本。例如,目前在IBM
PC机上的COM1、COM2接口,就是RS-232C接口。
在简单的应用中, 只需要有3条线即可完成通信, 分别是 第二脚RXD , 第3脚TXD
,第5脚GND。串行通信与单片机之间的接口:由于串行通信的电平逻辑定义是+15V( 高电平1)-15V(低电平0)
而单片机中分别用5V ,0V 来表示1,0 它们之间必须通过电平转换才可以完成通信。 最常用的是美信的MAX232电路。
相关原理:

以下程序烧写通过后,关闭XLISP烧写软件,把XL2000的JP17(编程/仿真)按下到仿真状态。
打开配套光盘的工具软件sscomv20串口调试工具。选择通信串口号,波特率4800:

程序运行照片:

接线方法:
;1、按键接到P3口。用一条8PIN数据排线,把按键部份的JP48,接到CPU部份的P3口JP53.
;2、接8位数码管的数据线。将数码管部份的数据口 JP5接到CPU部份的P0口JP51.
;3、接8位数码管的显示位线。将数码管部份的显示位口
JP8接到CPU部份的P2口JP52.
接收过程:在字符串输入框中输入1,然后点“发送”XL2000的数码管则显示1。输入2则显示2。
按键窗口接收到的四句话:

汇编语言参考程序:
ORG
0000H
AJMP main0
ORG
0080H
main0: MOV 20H,#00H ;设置串口工作方式
MOV
TMOD,#22H
MOV
SCON,#40H
MOV
TH1,#0F3H ;速率4800,(12M晶体)
MOV
PCON,#80H
SETB TR1
SETB REN ;允许接收
clr
p2.6 ;开数码管
ajmp start
start:
l1:jnb p3.3,l3 ;如果P3.3按下则执行L3
jnb
p3.4,l4
jnb
p3.5,l5
JNB
P3.2,L6
jbc
ri,rec
mov
p0,#0ffh
rec: mov a,sbuf ;缓冲数据送到a
mov
p1,a
CJNE A,#00110001b,T00 ;比较接收到的数据
MOV P0,#07eH ;数码管显示1
mov p0,#0ffh
t00: CJNE A,#00110010b,T2
MOV P0,#0A2H ;数码管显示2
mov p0,#0ffh
T2:
CJNE A,#00110011b,T3
MOV P0,#62H
T3:
CJNE A,#00110100b,T4
MOV
P0,#74H
T4:
CJNE A,#00110101b,T5
MOV P0,#61H
T5:
CJNE A,#00110110b,T6
MOV P0,#21H
T6: CJNE A,#00110111b,T7
MOV P0,#7AH
T7: CJNE A,#00111000b,T8
MOV P0,#20H
T8: CJNE A,#00111001b,t9
MOV P0,#60H
T9:
CJNE A,#00110000b,t10
MOV
P0,#28H |