单片机间串行通讯课程设计.docx
《单片机间串行通讯课程设计.docx》由会员分享,可在线阅读,更多相关《单片机间串行通讯课程设计.docx(9页珍藏版)》请在冰豆网上搜索。
单片机间串行通讯课程设计
单片机间串行通讯课程设计
单片机课程设计
单片机之间串行通信设计说明书
学院:
机电工程学院
专业:
电气工程及其自动化
姓名:
高立光090511030
隋佳林090511027
袁廷伟090511033
指导教师:
张永
时间:
2012年12月
1.设计任务书
题目:
单片机间的串行通信
利用两台单片机实验平台完成两台单片机间点对点通信。
1.1设计要求
(1)完成两台单片机间一主一从的单工通信。
主机发送实验平台上开关k0-k7数据,从机
接收数据并在数码管上显示。
(2)完成两台单片机的双工通信。
通信双方的任意单片机可同时发送和接受实验平台上开
关k0-k7数据,并将数据在各自的数码管上显示。
1.2设计提示
(1)单片机间的串行通信可以通过将串口相互连接而实现。
(2)单片机之间的信号都是TTL电平,并不需要特别的电平转换,单片机之间的串口可以
直接通过导线连接。
但两者的TXD和RXD需要相互反接才能正常收发。
(3)特别提示:
实验仪的串口已被keil占用,只能下载后全速运行。
2.总设计过程
2.1双机数据传送的电路图
2.2设计电路主要组成
(1)晶振部分:
在单片机的XTAL1和XTAL2引脚外接晶振就构成了自激振荡器并在
单片机内部产生时钟脉冲信号。
(2)复位部分:
复位操作有两种基本形式:
一种是上电复位,另一种是上电与按键均有
效的复位。
本次设计采用上电复位。
2.3单工双机通信的设计
2.3.1需要器件
名称
数值
个数
型号
单片机AT89C51
/
2
AT89C51
独立按键(可弹起的)
/
8
BUTTON
电阻R
10KΩ
2
/
电阻R
220Ω
8
/
电容C
30pF
4
/
电容C
10uF
2
/
晶振
12MHz
2
CRYSTAL-XTAL18
LED
/
8
/
2.3.2双机单工通信流程
主机发送流程
从机接收流程
2.3.3双击单工通信程序
主机发送程序:
ORG0000H
AJMPMAIN
ORG0100H
MAIN:
MOVSP,#60H
MOVSCON,#40H
MOVTMOD,#20H
MOVTH1,#0FDH
MOVTL1,#0FDH
SETBTR1
MOVP1,#0FFH
MOV30H,#0FFH
K0:
MOVA,P1
CJNEA,30H,K1
SJMPK0
K1:
MOV30H,A
MOVSBUF,A
WAIT:
JBCTI,K0
SJMPWAIT
END
从机接收程序:
ORG0000H
AJMPMAIN
ORG0100H
MAIN:
MOVSP,#60H
MOVSCON,#50H
MOVTMOD,#20H
MOVTH1,#0FDH
MOVTL1,#0FDH
SETBTR1
MOVP1,#0FFH
K0:
JBRI,KK
SJMPK0
KK:
MOVA,SBUF
MOVP1,A
CLRRI
SJMPK0
END
2.3.4proteus调试与仿真
2.4全双工通信设计
2.4.1实验需要器件
名称
数值
个数
型号
单片机AT89C51
/
2
AT89C51
74LS240
/
4
74LS240
独立按键(可弹起的)
/
16
BUTTON
电阻R
10KΩ
2
/
电阻R
500Ω
16
/
电容C
30pF
4
/
电容C
10uF
2
/
晶振
12MHz
2
CRYSTAL-XTAL18
LED
/
16
/
2.4.2程序设计
根据设计要求,系统为双机全双工通信,因此两机的通信程序可以完全相同。
程序如下:
ORG0000H
JMPSTART
ORG0023H
JMPUARTI
START:
MOVTMOD,#20H
MOVTH1,#0E6H
MOVTL1,#0E6H
SETBTR1
MOVSCON,#50H
MOVPCON,#80H
MOVIE,#90H
MOVR7,#0FFH
READ-KEY:
MOVA,P1
CJNEA,R7,KEY-IN
SJMPREAD-KEY
KEY-IN:
MOVR7,A
MOVSBUF,A
CPLA
MOVP2,A
TX-WAIT:
JBCTI,READ-KEY
SJMPTX-WAIT
UARTI:
PUSHAcc
PUSHPSW
JBCRI,RX-WAIT
SJMPGOOD
RX-WAIT:
MOVA,SBUF
CPLA
MOVP2,A
GOOD:
POPPSW
POPAcc
RETI
END
2.4.3proteus调试与仿真