单片机双机通信系统-课程设计_第1页
单片机双机通信系统-课程设计_第2页
单片机双机通信系统-课程设计_第3页
单片机双机通信系统-课程设计_第4页
单片机双机通信系统-课程设计_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、电子技术综合实践一单片机双机通信一.课程设计的目的及基本要求:实践课程是使学生融会贯通本课程所学专业理论知识,完成 一个较完整的设计计算和安装调试过程,以加深学生对所学理论 的理解与应用,认识和熟悉元器件和电子测量仪器的性能指标, 了解解决实际问题的一般过程,培养学生综合运用基础理论知识 和专业知识去解决实际工程设计问题的能力。通过电子技术的综 合性工程训练,使学生达到以下的目的和要求:1、 结合模拟电路、数字电路、可编程逻辑器件、单片机电 子线路CAD?课程中所学的理论知识,按要求独立设计方 案,培养学生独立分析与解决问题的能力;2、 学会查阅相关手册和资料,通过查阅手册和资料,进一 步熟悉

2、常用电子器件的类型和特性,并掌握合理选用的原 则;3、 学会使用常用电子元器件(包括中规模芯片、专用芯片 和可编程器件);4、 掌握基本的现代电子技术设计工具和 EDA (Electronic design automation 技术;5、 掌握电子电路的安装与调试技术,进一步熟悉电子仪器 的使用方法;6、 认真撰写总结报告,培养严谨的作风和科学的态度;二.课程设计的主要内容:课题十九 单片机双机通信系统基本要求:设计两个单片机最小系统,能实现有线通信,一方为发送,另一方为接收。提高要求:两个单片机最小系统能相互通信,并能实现校验三.具体要求和时间安排:每一个学生在教师指导下,独立完成一个应用

3、系统。工作量如下:1、电路原理图(A3幅面)1张,要求Protel软件绘制;2、pcb版图(A3及以上幅面)1张;3、设计说明书( 20-30页)1本,内含能编译通过的源程序(有必 要的注释)。26目录一、前言 4二、键盘设计 51、硬件接线部分 52、4X4矩阵键盘识别处理 73、键盘识别处理程序 8三、单片机的选择及其程序设计 101、单片机型号的选择 102、协议设计 103、双机连接电路图 114、甲机程序 115、乙机程序 16四、数码管显示设计 16五、总体电路图 21六、设计小结 22七、参考文献 23一.前言由于MCS5K列单片机具有性能稳定、工作可靠、价格低廉 等特点,因此其

4、应用相当广泛。一个MCS51系列的单片机(如Atmel89c* )内部包含有 RAM FLASH ROM两个或者三个16位 的定时器/计数器、一个通用异步串行通信控制器 (UART等多种 资源。但即便如此,在一些相对复杂的单片机应用系统中,仅仅 一个单片机资源还是不够的,因此而常常需要扩充I/O接口、定时器/计数器、串行通信接口、 RAM ROM等。采用通用的标准器 件进行扩充是通常的做法,但将单片机本身作为一个通用的扩充 器件来使用,也不失为一个好的方法。在这种情况下,一个系统 中就使用了两个或两个以上的单片机,而单片机之间就要通过互 连来进行数据通信。MCS51系列的单片机(以下简称单片机

5、)者B 带有串口,利用串口进行互连通信极为方便,其各种连接方式在 许多书籍和资料上都有介绍,在此不再重述。但如果系统要求扩 充的资源是对外连接的串口,或对相互之间的数据传送有一定的 速度要求,则单片机的串口就不能用作系统内两单片机的通信接 口了。所幸的是,单片机的并行端口也能相互连接来进行数据通 信。根据单片机端口内部结构的特点,这些端口的端口线可以直 接相连,从而使两单片机之间并行通信接口的实现不用另外的硬 件电路设备。此次设计就是针对上述情况展开的。系统结构框图如图(1)所示:二、键盘设计(1)硬件接线部分考虑到此次设计要求用到的按键数比较多(09, AF 共16个按键),为了节约I/O资

6、源,采用行列式键盘,如图(1) 所示POUJADD R0,JA2I 即卿? P03JAD3 P0.D4 田胸 田硼口 6 F0.71AD1FIM2 PL3F1.3 FL1 FI4 FliF1J次用 P21WS 眺口 巴鼬11 日蚓 P2JIA1) 巴则 R27,IA15图(1)按键编排如图(2)所示0123456789ABCDEF图(2)(2) 4X4矩阵键盘识别处理按键设置在行列式交点上,行列线分别连接到按键开关的两 端。当行线通过上拉电阻接+5伏时,被钳位在高电平状态,事 先认为设定好行线和列线的序号。此处设行号为i ,从上到下编为0-3对应于p1.0-p1.3 口,列线设为j ,从左到右

7、编为0-3对应 于p1.4-p1.7 口。每个按键有它的行值和列值,行值和列值的组合就是识别这个按键的编码。事先有数组存放好对应键值的段 选码。矩阵的行线和列线分别通过两并行接口和CPU!信。每个按键的状态同样需变成数字量“ 0”和“1”,开关的一端(列线) 通过电阻接Vcc,而接地是通过程序输出数字“ 0”实现的。键盘 处理程序的任务是:确定有无键按下,判断哪一个键按下,键的 功能是什么;还要消除按键在闭合或断开时的抖动。两个并行口 中,一个输出扫描码,使按键逐行动态接地,另一个并行口输入 按键状态,由行扫描值和回馈信号共同形成键编码而识别按键, 通过软件查表,查出该键的功能。(3)键盘识别

8、处理程序键盘实现程序如下:void scanf(void)扫描子程序*/uchar i,j,k=0;号,j为列号*/*/*i键盘为行unsigned char num44=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x84;共阳极输出*/while(1)for(k=0;k<8;k+)/*8个键盘键值*/*TAB口数组*/P1=0x0F;delay();/*件延时去抖动*/*采用循环8次,取得存入软if(P1&0x0F)!=0x0F)switch(P1)/*确定行号*/c

9、ase 0x07: i=3; break;case 0x0b: i=2; break;case 0x0d: i=1; break;case 0x0e: i=0; break;default: break;P1=0xF0;/反转行和列上的电平if(P1&0xF0)!=0xF0)switch(P1)/*确定列号*/case 0x70: j=3; break;case 0xb0: j=2; break;case 0xd0: j=1; break;case 0xe0: j=0; break;default: break;TABk=numji; /*P1输出对应的按键值*/三、单片机的选择及其程

10、序设计(1)单片机型号的选择单片机选用两片Atmel公司的常用芯片AT89C51 一片用于 接收键盘的输入并做出判断,一片用于接收数据并驱动8个 七段数码管实现动态显示。AT89C51完全可以满足功能要求, 而且价格便宜,容易获得。(2)协议设计规定协议内容如下:数据传输的双方均使用2400bps的速率传送数据,使用主 从通信方式,主机发送数据,从机接收数据,双方在发送 数据和接收数据时使用查询方式。(此处设计甲机发送, 乙机接收)双方开始数据传输时,甲机先发送AAH合乙机,当乙机接 收到AA也后,向甲机回答BBH甲机收到BBH后就把数 码表TAB8中的8个数据发送给乙机,并发送校验和。乙机收

11、到8个数据并计算收到的数据的校验和,与甲机发 送过来的校验和进行比较,若校验和相同(正确)则发送00H给甲机;否则发送FFH (错误)甲机,重新接收。乙 机接收到8个数据后送8个数码管动态显示。(3)双机连接电路图如图(4)所示图(4)(4)甲机程序#include<reg52.h>#define uchar unsigned charuchar TAB8;为求和校延时程序*/键盘扫描ucha门,sum;/*sum验*/void delay(void)/* int j;for(j=0;j<12000;j+);void scanf()/*程序*/uchar i,j,k=0;un

12、signed char num44=0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e;while(1)for(k=0;k<8;k+)P1=0x0F;delay();/*/if(P1&0x0F)!=0x0F)switch(P1)case 0x07: i=3; break;case 0x0b: i=2; break;case 0x0d: i=1; break;case 0x0e: i=0; break;default: break;P1=0xF0;/*列上的电平*/if

13、(P1&0xF0)!=0xF0)switch(P1)case 0x70: j=3; break;case 0xb0: j=2; break;软件去抖动反转行和case 0xd0: j=1; break;case 0xe0: j=0; break;default: break;TABk=num皿i;/*P1输出对应的按键值*/void init(void)/*初始化程序*/TMOD=0x20;TH1=0xf3;/*波特率为 2400bps*/*SMOD=0*/TL1=0xf3;PCON=0x00;TR1=1;断*/SCON=0x50;*/void send(void)数*/*/*/*开T

14、1中接收允许发送函doSBUF=0xaa;信号0XAA*/while(!TI);收*/TI=0;位*/while(!RI);*/RI=0;*/while(SBUF!=0xbb);数码表*/TAB8/*送校验和*/*发送握手/*等待接/*传送完复/*等待接收/*接收完复位/*甲机收到BBH后就把中的8个数据发送给乙机,并发dosum=0;for(i=0;i<=7;i+)SBUF=TABi;/*发送段选码 */sum+=TABi;/*和校验 */while(!TI); TI=0; SBUF=sum;/*发送校验和*/while(!TI);TI=0;while(!RI);RI=0;while(

15、SBUF!=0);/等待接收main()/主程序init();scanf();send();(5)乙机程序#include<reg52.h>#define uchar unsigned charvoid init(void)/初始化程序TMOD=0x20;TH1=0xf3;/波特率为 2400bpsTL1=0xf3;PCON=0x00;TR1=1;SCON=0x50;void delay(void)/*/uchar j;for(j=0;j<12000;j+);void receive(void)/函数 uchar i,sum;uchar TABS8;/收数组do while(

16、!RI);RI=0;while(SBUF!=0xaa);/主机发送0XBBSBUF=0xbb; while(!TI);TI=0;while(1) sum=0;for(i=0;i<=7;i+) while(!RI);RI=0;TABSi=SBUF;/延时程序接收定义接接收完0XAA则向装人接收的数据sum+=TABSi;while(!RI);RI=0;if (SBUF=sum)/和校验 SBUF=0X00;while(!TI);TI=0;break;else SBUF=0xff;while(!TI);TI=0;while(1)口为位选码P2=0xfe; for(i=0;i<=7;i+

17、) P0=TABSi;输出段选码P2=P2<<1|0x01;/0X01实现动态显示delay(); /void main(void)函数 init();/p2/p0口位选码左移,并或延时/接收主receive。;四、数码管显示设计为了显示所需字符,我们必须先查的对应字符的段选码, 如 图()所示。此处选用共阳极输出查的对应字符段选码后预存入 数组TAB口中。痂翎共阴极段选码共阳极段选码显示字符共阴极段选码共阳极段选码03FHCOHC39HC6H106HF9HD5EHA1H25BHA4HE79H8l5H34FHBOHF71H84H466H99HP73H82H56DH92HU3EHC1

18、H67DH82Hr31HCEH707HF8Hy6EH91H87FH30H8FFHOOH96FH90H次OOHFFHA77H88H*1IVB7CH33H图(7)八位LED态显示电路只需要两个8位I/O 口。其中一个控 制段选码,另一个控制位选。要想每位显示不同的字符,必须利 用人的视觉暂留,采用扫描方式。数码管显示部分硬件接线如图(8)所示五、总体电路图? |,Ci ni;jyN“仃押3内”.erlln-T: nriravR7AI!1KLIM nsRh 7'-"l rum F T 'I TS r m T M "Ur得iw k I V能配修lAiiROI:M3 K1M ?s-3l" ”, mmKU IVMS怔HQiW 加1小 Ri.cc hW 和九小 *毕灯.厢nrrai-: R.ZAII K k却 714AI: KiAI; R&AM六、设计小结我觉得做单片机课程设计是十分有意义的,而

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论