实验六串行接口.doc
文本预览下载声明
实验五 单片机串行通信实验
一.实验目的
了解串行通信的原理,学习串行通信程序的设计和操作;
学习使用上位机软件“串行调试助手”。
二.实验内容
1,单片机与PC机串行通信
单片机串行接口通过MAX232芯片将单片机发出的TTL电平信号转化为RS232电平信号,与PC及232接口连接。编程实现通信。
PC机使用串口调试助手发送数据到单片机,单片机接收到数据后回发数据给PC机,单片机接收到的数据控制P0口上的LED显示二进制数。比如00H时,LED全灭,FFH时全亮。
注意:晶振需11.0592MHZ
2,单片机双机通信实验(类似于教材例6.3)
将邻近的两台单片机实验板的串行接口交叉连接(A机的RXD-B机的TXD,A机的TXD-B机的RXD),分别在两台单片机编程设置恰当的通信方式,编写程序实现通信。
A机读取电路板上P1和P3的独立按键K1-K8的状态,组合为一完整地字节数据,然后发送到B机,并在B机的P0口上的LED显示出二进制编码
三.实验步骤
运行Keil C51软件,新建一个工程,编写程序。
将生成的HEX文件烧写到单片机中。
观察PC机串口助手和单片机上LED的编码状态。
四. 实验参考程序
实验1
ORG 0000H
LJMP MAIN
ORG 0023H
LJMP KP
ORG 0100H
MAIN: MOV TMOD,#20H
MOV TL1,#0FDH
MOV TH1,#0FDH ;9600bps
MOV SCON,#50H ;
MOV PCON,#00H
SETB EA
SETB ES
SETB TR1
Sjmp $
Kp: clr ri
Mov A,sbuf
Clr a
Mov sbuf,a
Jnb ti,$
Clr ti
Cpl a
Mov p0,a
Reti
END
实验2
A单片机(发送端)
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN: MOV TMOD,#20H
MOV TL1,#0FDH
MOV TH1,#0FDH ;9600bps
MOV SCON,#40H ;发送端,不允许接收
MOV PCON,#00H
Setb tr1
Next_send:
Mov a,p1
Anl a,#0f0h ;屏蔽低4位
Rlc a
Rlc a
Rlc a
Rlc a ;左移4位成为高四位
Mov r0,a ;保存高四位
Mov a,p3
Anl a, ;只保留p3.2到p3.5位
Rlc a
Rlc a ;右移2位成为低四位
Orl a,r0 ;形成K1K2k3k4k5k6k7k8开关二进制编码
Mov sbuf,a ;发送给B机
Wait: Jbc ti,loop1
Sjmp wait
Loop1: sjmp next_send ;返回不断读取数据、发送
end
B单片机(接收端)
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN: MOV TMOD,#20H
MOV TL1,#0FDH
MOV TH1,#0FDH ;9600bps
MOV SCON,#50H ;接收送端,允许接收
MOV PCON,#00H
Setb tr1
Next_receiv:
Jbc ri,loop1
Sjmp Next_receiv
loop1: Mov a,sbuf ;接收到完整数据
mov p0,a ;送LED显示
Sjmp Next_receiv ;返回,不断接收、显示数据
end
显示全部