|
实验22
串行双向通信实验
所谓“串行通信”是指外设和计算机间使用一根数据信号线(另外需要地线,可能还需要控制线),数据在一根数据信号线上一位一位地进行传输,每一位数据都占据一个固定的时间长度。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本。例如,目前在IBM
PC机上的COM1、COM2接口,就是RS-232C接口。
在简单的应用中,
只需要有3条线即可完成通信, 分别是 第二脚RXD
, 第3脚TXD ,第5脚GND。串行通信与单片机之间的接口:由于串行通信的电平逻辑定义是+15V(
高电平1)-15V(低电平0) 而单片机中分别用5V ,0V 来表示1,0
它们之间必须通过电平转换才可以完成通信。
最常用的是美信的MAX232电路。
以下程序烧写通过后,关闭xlisp烧写软件,把XL600的JP17(编程/仿真)按下到仿真状态。
打开配套光盘的工具软件sscomv20串口调试工具。选择通信串口号,波特率4800:
接线方法:
;1 按键接到P3口。用一条8PIN数据排线,把按键部份的JP48,接到CPU部份的P3口JP53.
;2 接8位数码管的数据线。将数码管部份的数据口
JP5接到CPU部份的P0口JP51.
;3 接8位数码管的显示位线。将数码管部份的显示位口
JP8接到CPU部份的P2口JP52.
接收过程:在字符串输入框中输入1,然后点“发送”xl600的数码管则显示1。输入2则显示2。
发送过程:分别按下xl600端口按键部分的的K02,K03,K04,K05
四个按键, 这时可以看到串口调试工具分别收到4句话。你按的是p3.2键,你按的是p3.3键,你按的是p3.4键,你按的是p3.5键,

窗口发送数字1
数码管显示1
按键窗口接收到的4句话。

ORG 0000H
AJMP main0
ORG 0030H
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
;jmp l1
rec: mov a,sbuf ;缓冲数据送到a
mov p1,a
CJNE A,#00110001b,T00
MOV P0,#07eH ;数码管显示2
; call delay
mov p0,#0ffh
t00: CJNE A,#00110010b,T2
MOV P0,#0A2H ;数码管显示2
; call delay
mov p0,#0ffh
T2: CJNE A,#00110011b,T3
MOV P0,#62H
; call delay
; mov p0,#0ffh
T3: CJNE A,#00110100b,T4
MOV P0,#74H
;call delay
;mov p0,#0ffh
T4: CJNE A,#00110101b,T5
MOV P0,#61H
; call delay
; mov p0,#0ffh
T5: CJNE A,#00110110b,T6
MOV P0,#21H
; call delay
;mov p0,#0ffh
T6: CJNE A,#00110111b,T7
MOV P0,#7AH
; call delay
;mov p0,#0ffh
T7: CJNE A,#00111000b,T8
MOV P0,#20H
; call delay
;mov p0,#0ffh
T8: CJNE A,#00111001b,t9
MOV P0,#60H
; call delay
;mov p0,#0ffh
T9: CJNE A,#00110000b,t10
MOV P0,#28H
; call delay
t10:ljmp L1
l3: mov dptr,#ok1 ;置表头1
ajmp senda3
senda3: clr a ;
movc a,@a+dptr
cjne a,#'$',senda_3
ajmp start ;遇到$则从头开始执行。
senda_3:mov sbuf,a ;发送数据
JNB TI,$;
CLR TI ;
inc dptr
Ljmp senda3
l4: mov dptr,#ok2 ;置表头2
ajmp senda3
l5: mov dptr,#ok3 ;置表头3
ajmp senda3
l6: mov dptr,#ok4 ;置表头4
ajmp senda3
ok1: db 0dh,0ah,0dh,0ah,"如果我还有一天寿命,那天我要做你女友。我还有一天的命吗?..没有。所以,很可惜。我今生仍然不是你的女友。如果我有翅膀,我要从天堂飞下来看你。我有翅膀吗?..没有。所以,很遗憾。我从此无法再看到你。",0dh,0ah,'$'
ok2: db 0dh,0ah,0dh,0ah,"倚天版开发套件是51测试网在志强版开发套件的基础上开发的增强型编程试验一体化开发套件,适合于零基础,或者初中级单片机爱好者 使用。并适合于单片机程序员的前期试",0dh,0ah,'$'
ok3: db 0dh,0ah,0dh,0ah,"89c51text-xp是51测试网为初学者量身定做的一套编程试验一体化51开发套件。采用单片机精确时序编程,质量非常稳定,决不会因为编程器的原因烧毁芯片。由一个51编程器和一个51标准",0dh,0ah,'$'
ok4: db 0dh,0ah,0dh,0ah," 2002年11月15日本站申请国际域名成功名称 http://www.51c51.com 我要c51!!!2002年9月推出标准版开发套件2002年10月推出xp版",0dh,0ah,'$'
end
|