单片机双机之间的串行通信设计说明书Word文档下载推荐.docx
- 文档编号:21374886
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:17
- 大小:1.34MB
单片机双机之间的串行通信设计说明书Word文档下载推荐.docx
《单片机双机之间的串行通信设计说明书Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《单片机双机之间的串行通信设计说明书Word文档下载推荐.docx(17页珍藏版)》请在冰豆网上搜索。
波特率更改指示电路:
在从机更改波特率之后同时给P1口写数是相应指示灯亮,指示此时两机之间通信的波特率为多少。
主机软件流程图从机软件流程图
四、电路仿真及仿真结果分析:
下图是系统软件仿真的结果,以下现象表明系统能正常工作并实现预设结果。
五、作品功能和使用说明:
接上电源系统开始工作,功能件控制从机功能,键盘输入数据,主机发送数据,从机接收数据。
当控制键未被按下时,从机显示接收到的数据;
控制键被按下时从机不再显示数据,只更改波特率,同时点亮相应的指示灯。
指示灯会指示当前工作的波特率,灯不亮时单片机以默认波特率工作。
系统断电时结束通信。
六、心得体会:
经过这几天的努力终于将设计完成了。
整个过程虽然遇到很多问题,但是确实感觉又学到了了不少东西。
整个系统的设计很快就决定下来了,但是在软件编写完之后进行软件仿真时,一直不能不能成功。
然后一步步的查错,从功能流程图开始,一步步检查,理清系统的时序逻辑关系。
确保逻辑功能没问题后,对软件进行调试,逐步调试、设置相关寄存器、查看相应的io口,然后发现这里也没什么问题。
于是直接在程序中设置标志位,观察程序的运行情况。
后来发现问题主要出现在两个地方:
一是软件不能自动返回,重复执行,于是在程序中增加了循环语句和返回语句;
二是没有正确保存数据和取数据,主要体现在查键值后没有保护数据及进行校验后没有进行重取原数据,这是两个非常易错的问题。
另外功能上单片机之间的“握手”和等待通讯过程也是非常重要的。
另外在硬件制作时也遇到了一些问题,主要是在制作PCB板时由于腐蚀过度导致出现了很多断路,以至调试时得检查电路,同时对整个系统的美观造成很大影响。
不过,这次设计确实让我对通信过程有更深的理解。
七、参考文献
[1]李建忠.单片机原理及应用(第二版.西安电子科技大学出版社)
[2]何小艇.电子系统设计(第四版.浙江大学出版社)
系统程序:
/*************************************************************************
*约定:
主机发送呼叫信号"
0EH"
,咨询从机是否可以接受数据*
*从机发送"
01H"
表示可以接受,否则发送"
02H"
表示暂时不能接受数据*
*主机只有收到了应答信号"
才向从机发送数据,否则继续呼叫*
*主机收到"
0FH"
表示发送正确,收到"
F0H"
表示发送错误*
*设置:
串口工作于方式1,定时器做波特率发生器工作于方式2,SMOD=1,*
*波特率为1200时计数初值为D0,2400--E8H,4800-F4H,9600-FAH*
*两片单片机开始波特率设为4800*
*通过按键进行功能选择,按下P0.0=0设置波特率未按P0.0=1数据显示*
*************************************************************************/
主机程序:
/*****************发送程序********************/
ORG0000H
LJMPMAIN
ORG0030H
MAIN:
MOVSP,#60H
MOVTMOD,#20H;
置定时器/计数器1工作于方式2定时
MOVTL1,#0F4H;
置定时器/计数器1初值,初始波特率为4800
MOVTH1,#0F4H;
置重装值
MOVPCON,#80H;
SMOD=1
MOVSCON,#50H;
串行口工作于方式1
SETBTR1
/****************首先进行查键子程序***************/
BEGAIN:
ACALLKEY
MOVR1,A
ACALLHUJIAO
AJMPBEGAIN
/************按键扫描****************/
KEY:
ACALLKS1;
调用判断有无键按下子程序
JNZLK1;
有键按下(A)=0,
AJMPKEY
LK1:
ACALLDELAY
ACALLKS1
JNZCKEY
AJMPKEY
CKEY:
MOVR2,#7FH
MOVR4,#00H
CKEY1:
MOVP1,R2
JBP1.0,LONE
MOVA,#00H
AJMPLPK;
转到键值计算子程序
LONE:
JBP1.1,LTWO
MOVA,#04H
AJMPLPK
LTWO:
JBP1.2,LTHR
MOVA,#08H
LTHR:
JBP1.3,NEXT0
MOVA,#0CH
LPK:
ADDA,R4
PUSHACC
LK3:
JNZLK3
ACALLDELAY
POPACC
RET
NEXT0:
INCR4
MOVA,R2
JNBP1.3,KEND
RRA
MOVR2,A
AJMPCKEY1
KEND:
AJMPKEY
KS1:
MOVP1,#0FH
MOVA,P1
CPLA
ANLA,#0FH
RET
/************然后呼叫从机***************/
HUJIAO:
CALLDELAY
MOVA,#0EH
CPLP3.4
MOVSBUF,A
WAIT1:
JBCTI,TXYES;
等待发送完成
SJMPWAIT1
TXYES:
JBCRI,NEXT1;
等待从机回答
SJMPTXYES
NEXT1:
MOVA,SBUF;
判断从机是否同意,不同意则继续呼叫
CJNEA,#01H,HUJIAO
PANDUAN:
JBP0.0,XSHU;
功能键被按下,则发送数据设置波特率,否则只显示发送数据
SHEZ:
MOVA,R1
SETBACC.5;
ACC.5=1显示ACC.5=0设置波特率
MOVC,P
MOVACC.7,C
WAIT2:
JNBTI,WAIT2
CLRTI
WAITC1:
JNBRI,WAITC1
CLRRI
CPLP3.6
MOVA,SBUF
CJNEA,#0FH,SHEZ
MOVA,R1
CJNEA,#00H,L1
MOVTL1,#0D0H;
重设波特率为1200
MOVTH1,#0D0H
LJMPFH
L1:
CJNEA,#01H,L2
MOVTL1,#0E8H;
重设波特率为2400
MOVTH1,#0E8H
L2:
CJNEA,#02H,L3
MOVTL1,#0F4H;
重设波特率为4800
MOVTH1,#0F4H
L3:
CJNEA,#03H,FH
MOVTL1,#0FAH;
重设波特率为9600
MOVTH1,#0FAH
LJMPFH
XSHU:
MOVA,R1;
只显示数字时,A的高位不处理直接发送
MOVC,P
MOVACC.7,C
MOVSBUF,A
WAIT3:
JNBTI,WAIT3
WAITC:
JNBRI,WAITC
CLRRI
CJNEA,#0FH,XSHU
CLRP3.7
FH:
RET
/**********延时子程序*********/
DELAY:
MOVR6,#0FFH
LOOP1:
DJNZR6,LOOP1
RET
JS:
END
从机程序:
/*****************接收程序********************/
LJMPMAIN
MOVSP,#60H
RSTRT:
MOVTMOD,#20H;
MOVSCON,#50H;
SETBTR1
JIESHOU:
JNBRI,JIESHOU
CLRRI
CJNEA,#0EH,FA2
FA1:
MOVA,#01H
CPLP3.7
JBCTI,RX
SJMPWAIT1
FA2:
MOVA,#02H
JBCTI,JIESHOU
SJMPWAIT2
RX:
CLRTI
JNBRI,RX
MOVA,SBUF
MOVC,P
MOVR1,A
JCFAF0
FA0F:
MOVA,#0FH
SJMPCHULI
FAF0:
MOVA,#0F0H
WAIT4:
JNBTI,WAIT4
LJMPRX
CHULI:
JBACC.5,SHEZ;
XIANS:
ANLA,#0FH
LCALLDISPLAY
LJMPJS
MOVP2,#00H
ANLA,#0FH
MOVP1,#0FEH;
CLRP1.0
LJMPJS
MOVP1,#0FDH;
CLRP1.1
LJMPJS
MOVP1,#0FBH;
CLRP1.2
LJMPJS
CJNEA,#03H,JIE
MOVP1,#0F7H;
CLRP1.3
JIE:
MOVR6,#03FH
/**********译码程序**********/
DISPLAY:
CJNEA,#00H,LT1
MOVA,#00111111B;
SJMPLAST
LT1:
CJNEA,#01H,LT2
MOVA,#00000110B;
1
LT2:
CJNEA,#02H,LT3
MOVA,#01011011B;
2
LT3:
CJNEA,#03H,LT4
MOVA,#01001111B;
3
SJMPLAST
LT4:
CJNEA,#04H,LT5
MOVA,#01100110B;
4
LT5:
CJNEA,#05H,LT6
MOVA,#01101101B;
5
LT6:
CJNEA,#06H,LT7
MOVA,#01111101B;
6
LT7:
CJNEA,#07H,LT8
MOVA,#00000111B;
7
LT8:
CJNEA,#08H,LT9
MOVA,#01111111B;
8
LT9:
CJNEA,#09H,LT10
MOVA,#01101111B;
9
LT10:
CJNEA,#0AH,LT11
MOVA,#01110111B;
A
LT11:
CJNEA,#0BH,LT12
MOVA,#01111111B;
B
LT12:
CJNEA,#0CH,LT13
MOVA,#00111001B;
C
LT13:
CJNEA,#0DH,LT14
MOVA,#00111111B;
D
LT14:
CJNEA,#0EH,LT15
MOVA,#01111001B;
E
LT15:
CJNEA,#0FH,LAST
MOVA,#01110001B;
F
LAST:
MOVP2,A
LJMPJIESHOU
END
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 双机 之间 串行 通信 设计 说明书