ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:1.34MB ,
资源ID:8238587      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8238587.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机双机之间的串行通信设计说明书.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机双机之间的串行通信设计说明书.docx

1、单片机双机之间的串行通信设计说明书 专业方向课程设计报告 题目:单片机双机之间的串行通信设计 单片机双机之间的串行通信设计一设计要求: 两片单片机利用串行口进行串行通信:串行通信的波特率可从键盘进行设定,可选的波特率为1200、2400、4800和9600bit/s。二、方案论证: 方案一:以两片51单片机作为通信部件,以4*4矩阵键盘作为数据输入接口,通过16个不同键值输入不同的信息,按照51单片机的方式3进行串口通信,从机采用中断方式接收信息并按照通信协议改变波特率或者用I/O口输出、CD4511译码、数码管显示相关数据,整个系统的软件部分采用C语言编写。 方案二:整个系统的硬件设计与方案

2、一样,但是通信方式采用方式一进行通信,主从机之间的访问采用查询方式,数据输出直接由单片机的译码程序输出译码数据,同时软件编写采用汇编语言。两种方式从设计上来说各有特色,而且两种方式都应该是可行的。方案一中按照方式三通信可以输出九位数据而方式一只能输出八位数据,但就本题的要求来说方式一就可以了。主从机之间的交流采用中断方式是一种高效且保护单片机的选择,但是相比之下本人对查询方式的理解更好一些。数码管的显示若采用CD4511译码则直接输出数据就可以了,但是这样会增加硬件陈本,而且单片机的资源大部分都还闲置着,所以直接编写一段译码程序是比较好的做法。另外在软件编写上,采用C语言在后续设计中对硬件的考

3、虑稍少一些,换言之采用汇编可以使自己对整个通信过程及单片机的部分结构有更清晰地认识所以综合考虑采用方案二。三、理论设计:采用AltiumDesigner绘制的原理图(整图)本系统主要包括五个基本模块:单片机最小系统(包括晶振电路、电源、复位电路及相关设置电路)、4*4矩阵键盘、功能控制电路、数据显示电路、波特率更改指示电路。本设计的基本思路是通过控制口选择将要实现的功能, 然后矩阵键盘输入数据,单片机对数据进行处理(加校验码、设置功能标志位),然后与从机握手,一切就绪之后后就开始发送数据,然后从机对接收数据校验,回发校验结果,主机根据校验结果进行下一步动作,或者重发,或者进入下一数据的发送过程

4、,然后按照此过程不段循环,直到结束。单片机最小系统:接上电源和地,晶振电路提供脉冲,加上复位电路,将EA接入高电电平选择片内程序存储器。这是一个单片机能够工作的最低设置。4*4矩阵键盘:将矩阵键盘接入p1口通过按键扫描程序读写P1口从而判断有无安键按下,通过查键值程序确定其键值从而得到输入数据。这是整个系统的输入接口。功能控制电路:控制键(图中为K3)被按下时p0.0为低电平,否则为高电平,这样就可以根据读入的p0.0的电平差别控制通信系统的功能。高电平时让从机显示接收到的数据,低电平从机更改波特率。 数据显示模块:译码程序将获得的数据译成可直接显示的段码输到p2口,用数码管显示。为防止单片机

5、的带负载能力不足,本设计中加了上拉电阻使数码管显示更清晰。 波特率更改指示电路:在从机更改波特率之后同时给P1口写数是相应指示灯亮,指示此时两机之间通信的波特率为多少。 主机软件流程图 从机软件流程图 四、电路仿真及仿真结果分析:下图是系统软件仿真的结果,以下现象表明系统能正常工作并实现预设结果。 五、作品功能和使用说明:接上电源系统开始工作,功能件控制从机功能,键盘输入数据,主机发送数据,从机接收数据。当控制键未被按下时,从机显示接收到的数据;控制键被按下时从机不再显示数据,只更改波特率,同时点亮相应的指示灯。指示灯会指示当前工作的波特率,灯不亮时单片机以默认波特率工作。系统断电时结束通信。

6、 六、心得体会:经过这几天的努力终于将设计完成了。整个过程虽然遇到很多问题,但是确实感觉又学到了了不少东西。整个系统的设计很快就决定下来了,但是在软件编写完之后进行软件仿真时,一直不能不能成功。然后一步步的查错,从功能流程图开始,一步步检查,理清系统的时序逻辑关系。确保逻辑功能没问题后,对软件进行调试,逐步调试、设置相关寄存器、查看相应的io口,然后发现这里也没什么问题。于是直接在程序中设置标志位,观察程序的运行情况。后来发现问题主要出现在两个地方:一是软件不能自动返回,重复执行,于是在程序中增加了循环语句和返回语句;二是没有正确保存数据和取数据,主要体现在查键值后没有保护数据及进行校验后没有

7、进行重取原数据,这是两个非常易错的问题。另外功能上单片机之间的“握手”和等待通讯过程也是非常重要的。另外在硬件制作时也遇到了一些问题,主要是在制作PCB板时由于腐蚀过度导致出现了很多断路,以至调试时得检查电路,同时对整个系统的美观造成很大影响。不过,这次设计确实让我对通信过程有更深的理解。七、参考文献1李建忠.单片机原理及应用(第二版.西安电子科技大学出版社 )2何小艇.电子系统设计(第四版.浙江大学出版社)系统程序:/* 约定:主机发送呼叫信号0EH,咨询从机是否可以接受数据 * 从机发送01H表示可以接受,否则发送02H表示暂时不能接受数据 * 主机只有收到了应答信号01H才向从机发送数据

8、,否则继续呼叫 * 主机收到0FH表示发送正确,收到F0H表示发送错误 * 设置:串口工作于方式1 ,定时器做波特率发生器工作于方式2,SMOD=1, * 波特率为1200时计数初值为D0, 2400-E8H, 4800-F4H, 9600-FAH * 两片单片机开始波特率设为4800 * 通过按键进行功能选择,按下P0.0=0设置波特率 未按P0.0=1数据显示 * */主机程序:/*发送程序*/ ORG 0000H LJMP MAIN ORG 0030HMAIN: MOV SP,#60H MOV TMOD, #20H ;置定时器/计数器1工作于方式2定时 MOV TL1, #0F4H ;置

9、定时器/计数器1初值,初始波特率为4800 MOV TH1, #0F4H ;置重装值 MOV PCON,#80H ;SMOD=1 MOV SCON,#50H ;串行口工作于方式1 SETB TR1/*首先进行查键子程序*/ BEGAIN: ACALL KEY MOV R1,A ACALL HUJIAO AJMP BEGAIN /*按键扫描*/KEY: ACALL KS1 ;调用判断有无键按下子程序 JNZ LK1 ;有键按下(A)=0, AJMP KEYLK1: ACALL DELAY ACALL KS1 JNZ CKEY AJMP KEYCKEY: MOV R2,#7FH MOV R4,#0

10、0HCKEY1: MOV P1,R2 JB P1.0,LONE MOV A,#00H AJMP LPK ;转到键值计算子程序LONE: JB P1.1,LTWO MOV A,#04H AJMP LPKLTWO: JB P1.2,LTHR MOV A,#08H AJMP LPKLTHR: JB P1.3,NEXT0 MOV A,#0CHLPK: ADD A,R4 PUSH ACCLK3: ACALL KS1 JNZ LK3 ACALL DELAY POP ACC RET NEXT0: INC R4 MOV A,R2 JNB P1.3,KEND RR A MOV R2,A AJMP CKEY1KE

11、ND: AJMP KEY KS1: MOV P1,#0FH MOV A,P1 CPL A ANL A,#0FH RET /*然后呼叫从机*/HUJIAO: CALL DELAY MOV A,#0EH CPL P3.4 MOV SBUF,AWAIT1: JBC TI,TXYES ;等待发送完成 SJMP WAIT1 TXYES: JBC RI,NEXT1 ;等待从机回答 SJMP TXYES NEXT1: MOV A,SBUF ;判断从机是否同意,不同意则继续呼叫 CJNE A,#01H,HUJIAO PANDUAN: JB P0.0,XSHU ;功能键被按下,则发送数据设置波特率,否则只显示发

12、送数据 SHEZ: MOV A,R1 SETB ACC.5 ;ACC.5=1显示 ACC.5=0设置波特率 MOV C,P MOV ACC.7,C MOV SBUF,AWAIT2: JNB TI,WAIT2 CLR TIWAITC1: JNB RI,WAITC1 CLR RI CPL P3.6 MOV A,SBUF CJNE A,#0FH,SHEZ MOV A,R1 ANL A,#0FH CJNE A,#00H,L1 MOV TL1, #0D0H ;重设波特率为1200 MOV TH1, #0D0H LJMP FHL1: CJNE A,#01H,L2 MOV TL1, #0E8H ;重设波特率

13、为2400 MOV TH1, #0E8H LJMP FHL2: CJNE A,#02H,L3 MOV TL1, #0F4H ;重设波特率为4800 MOV TH1, #0F4H LJMP FHL3: CJNE A,#03H,FH MOV TL1, #0FAH ;重设波特率为9600 MOV TH1, #0FAH LJMP FH XSHU: MOV A,R1 ;只显示数字时,A的高位不处理直接发送 MOV C,P MOV ACC.7,C MOV SBUF,AWAIT3: JNB TI,WAIT3 CLR TIWAITC: JNB RI,WAITC CLR RI MOV A,SBUF CJNE A

14、,#0FH,XSHU CLR P3.7 FH: RET/*延时子程序*/DELAY: MOV R6,#0FFHLOOP1: DJNZ R6,LOOP1 RETJS: END从机程序: /*接收程序*/ ORG 0000H LJMP MAIN ORG 0030HMAIN: MOV SP,#60H RSTRT: MOV TMOD, #20H ;置定时器/计数器1工作于方式2定时 MOV TL1, #0F4H ;置定时器/计数器1初值,初始波特率为4800 MOV TH1, #0F4H ;置重装值 MOV PCON,#80H ;SMOD=1 MOV SCON,#50H ;串行口工作于方式1 SETB

15、 TR1JIESHOU: CLR TI JNB RI,JIESHOU CLR RI MOV A,SBUF CJNE A,#0EH,FA2 FA1: MOV A,#01H MOV SBUF,A CPL P3.7WAIT1: JBC TI,RX SJMP WAIT1FA2: MOV A,#02H MOV SBUF,AWAIT2: JBC TI,JIESHOU SJMP WAIT2RX: CLR TI JNB RI,RX CLR RI MOV A,SBUF MOV C,P MOV R1,A JC FAF0FA0F: MOV A,#0FH MOV SBUF,AWAIT3: JNB TI,WAIT3 C

16、LR TI SJMP CHULIFAF0: MOV A,#0F0H MOV SBUF,AWAIT4: JNB TI,WAIT4 CLR TI LJMP RX CHULI: MOV A,R1 JB ACC.5,SHEZ ;ACC.5=1显示 ACC.5=0设置波特率XIANS: ANL A,#0FH LCALL DISPLAY LJMP JS SHEZ: MOV P2,#00H ANL A,#0FH CJNE A,#00H,L1 MOV TL1, #0D0H ;重设波特率为1200 MOV TH1, #0D0H MOV P1,#0FEH ;CLR P1.0 LJMP JS L1: CJNE A,

17、#01H,L2 MOV TL1, #0E8H ;重设波特率为2400 MOV TH1, #0E8H MOV P1,#0FDH ;CLR P1.1 LJMP JS L2: CJNE A,#02H,L3 MOV TL1, #0F4H ;重设波特率为4800 MOV TH1, #0F4H MOV P1,#0FBH ;CLR P1.2 LJMP JSL3: CJNE A,#03H,JIE MOV TL1, #0FAH ;重设波特率为9600 MOV TH1, #0FAH MOV P1,#0F7H ;CLR P1.3 JIE: LJMP JS/*延时子程序*/DELAY: MOV R6,#03FHLOO

18、P1: DJNZ R6,LOOP1 RET/*译码程序*/DISPLAY: CJNE A,#00H,LT1 MOV A,#00111111B ;0 SJMP LASTLT1: CJNE A,#01H,LT2 MOV A,#00000110B ;1 SJMP LASTLT2: CJNE A,#02H,LT3 MOV A,#01011011B ;2 SJMP LASTLT3: CJNE A,#03H,LT4 MOV A,#01001111B ;3 SJMP LAST LT4: CJNE A,#04H,LT5 MOV A,#01100110B ;4 SJMP LASTLT5: CJNE A,#05H

19、,LT6 MOV A,#01101101B ;5 SJMP LAST LT6: CJNE A,#06H,LT7 MOV A,#01111101B ;6 SJMP LASTLT7: CJNE A,#07H,LT8 MOV A,#00000111B ;7 SJMP LASTLT8: CJNE A,#08H,LT9 MOV A,#01111111B ;8 SJMP LASTLT9: CJNE A,#09H,LT10 MOV A,#01101111B ;9 SJMP LASTLT10: CJNE A,#0AH,LT11 MOV A,#01110111B ;A SJMP LASTLT11: CJNE A,#0BH,LT12 MOV A,#01111111B ;B SJMP LASTLT12: CJNE A,#0CH,LT13 MOV A,#00111001B ;C SJMP LASTLT13: CJNE A,#0DH,LT14 MOV A,#00111111B ;D SJMP LASTLT14: CJNE A,#0EH,LT15 MOV A,#01111001B ;E SJMP LASTLT15: CJNE A,#0FH,LAST MOV A,#01110001B ;FLAST: MOV P2,A RETJS: LJMP JIESHOU END

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1