基于单片机的双机通信设计电路图

2013-10-28 0:02:00
  • 基于单片机的双机通信设计电路图如下所示:   如图所示,txc和rxc分别为8251a的发送时钟和接收时钟。它由片外8253a的out1提供。本实验要求以查询方式进行收发。要完成本实验,需2台dvcc系列实验系统。其中一台为串行发送,一台为串行接收,在1号机

基于单片机的双机通信设计电路图如下所示:

如图所示,txc和rxc分别为8251a的发送时钟和接收时钟。它由片外8253a的out1提供。本实验要求以查询方式进行收发。要完成本实验,需2台dvcc系列实验系统。其中一台为串行发送,一台为串行接收,在1号机上装串行发送程序,在2号机上装串行接收程序,则在1号机上键入的字符显示在2号机的显示器上。

由于本系统监控中未对8253a、8251a进行初始化,因此本实验开始必须对8253、8251进行初始化,然后才可以直接进入对串行口状态的查询。

程序

系统晶振是 6.0 mhz

g 07f0h

start:

mov sp,#60h

mov a,#02h

mov r0,#79h

mov @r0,a

inc r0

mov a,#10h

mov @r0,a

inc r0

mov a,#01h

mov @r0,a

inc r0

mov a,#03h

mov @r0,a

inc r0

mov a,#00h

mov @r0,a

inc r0

mov a,#08h

mov @r0,a

mov a,#7eh

mov dptr,#1fffh

movx @dptr,a

mov 87h,#80h

mov scon,#50h ;串口 方式 1

mov tmod,#20h ;t1 方式 1

mov tl1,#0f3h ;波特率 9600 的常数

mov th1,#0f3h

setb tr1 ;开中断

clr et1

clr es

wait:

jbc ri,dis_rec ;是否接收到数据

lcall disp ;

sjmp wait ;

dis_rec:

mov a,sbuf ;读串口接收到的数据

lcall datakey ;显示输入的数字(0-f)

db 79h,7eh

ajmp wait

datakey: mov r4,a

mov dptr,#1fffh

movx a,@dptr

mov r1,a

mov a,r4

mov @r1,a

clr a

pop 83h

pop 82h

movc a,@a+dptr

inc dptr

cjne a,01h,datakey2

dec r1

clr a

movc a,@a+dptr

datakey1: push 82h

push 83h

mov dptr,#1fffh

movx @dptr,a

pop 83h

pop 82h

inc dptr

push 82h

push 83h

ret

datakey2: dec r1

mov a,r1

sjmp datakey1

disp: setb 0d4h

mov r1,#7eh

mov r2,#20h

mov r3,#00h

disp1:

mov dptr,#dataco

mov a,@r1

movc a,@a+dptr

mov dptr,#0ff22h

movx @dptr,a

mov dptr,#0ff21h

mov a,r2

movx @dptr,a

lcall delay

dec r1

clr c

mov a,r2

rrc a

mov r2,a

jnz disp1

clr 0d4h

ret

delay: mov r7,#03h

delay0: mov r6,#0ffh

delay1: djnz r6,delay1

djnz r7,delay0

ret

datac db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h

db 88h,83h,0c6h,0a1h,86h,8eh,0bfh,0ch,89h,0deh

end

实验步骤

1、准备2台dvcc系列实验仪,确定1号为发送,2号为接收。

2、将1号rxd插孔和2号的txd插孔相连。

3、将1号txd插孔和2号的rxd插孔相连。

4、将1号gnd插孔和2号的gnd插孔相连(共地)。

5、将8253cs插孔和y4插孔相连,8251cs和y5插孔相连。

6、将sio区d0—d7和bus2区 xd0—xd7相连。

7、先运行2号机,在2号机提示符“p.....”状态下,输入0d00后,再按exec键进入等待接收状态,显示器显示“8251—2”。

8、再运行1号机,在1号机处于提示符“p.....”状态下,输入0e00h后,按exec键,进入串行发送状态。显示器显示“8251—1”。

9、在1号机的键盘上输入数字键,应在2号机显示器上显示对应数字值。

10、输入数字键后再按mon键,1号机显示“8251 good”。如果不输入数字键直接按mon键,则显示“err”,如果双机通信不能正常进行,也显示“err”。 来源:兔巴哥