欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    单片机双机通信系统课程设计.docx

    • 资源ID:14958692       资源大小:179.93KB        全文页数:17页
    • 资源格式: DOCX        下载积分:1金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要1金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    单片机双机通信系统课程设计.docx

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

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

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

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

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

    6、理 按键设置在行列式交点上,行列线分别连接到按键开关的两端。当行线通过上拉电阻接+5伏时,被钳位在高电平状态 ,事先认为设定好行线和列线的序号。此处设行号为i,从上到下编为0-3对应于p1.0-p1.3口,列线设为j,从左到右编为0-3对应于p1.4-p1.7口。 每个按键有它的行值和列值,行值和列值的组合就是识别这个按键的编码。事先有数组存放好对应键值的段选码。矩阵的行线和列线分别通过两并行接口和CPU通信。每个按键的状态同样需变成数字量“0”和“1”,开关的一端(列线)通过电阻接VCC,而接地是通过程序输出数字“0”实现的。键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是

    7、什么;还要消除按键在闭合或断开时的抖动。两个并行口中,一个输出扫描码,使按键逐行动态接地,另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。(3)键盘识别处理程序键盘实现程序如下:void scanf(void) /*键盘扫描子程序*/ uchar i,j,k=0; /*i为行号,j为列号*/ unsigned char num44=0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x84; /*采用共阳极输出*/ while(1) f

    8、or(k=0;k8;k+) /*循环8次,取得8个键盘键值*/ /*存入TAB数组*/ 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(P1&0xF0)!=0xF0) switch(P1) /*确定列号*/ case 0x70: j=3; brea

    9、k; case 0xb0: j=2; break; case 0xd0: j=1; break; case 0xe0: j=0; break; default: break; TABk=numji; /*P1输出对应的按键值*/ 三、单片机的选择及其程序设计(1)单片机型号的选择单片机选用两片Atmel公司的常用芯片AT89C51,一片用于接收键盘的输入并做出判断,一片用于接收数据并驱动8个七段数码管实现动态显示。AT89C51完全可以满足功能要求,而且价格便宜,容易获得。(2)协议设计 规定协议内容如下:数据传输的双方均使用2400bps的速率传送数据,使用主从通信方式,主机发送数据,从机接

    10、收数据,双方在发送数据和接收数据时使用查询方式。(此处设计甲机发送,乙机接收)双方开始数据传输时,甲机先发送AAH给乙机,当乙机接收到AAH之后,向甲机回答BBH。甲机收到BBH后就把数码表TAB8中的8个数据发送给乙机,并发送校验和。乙机收到8个数据并计算收到的数据的校验和,与甲机发送过来的校验和进行比较,若校验和相同(正确)则发送00H给甲机;否则发送FFH(错误)甲机,重新接收。乙机接收到8个数据后送8个数码管动态显示。(3)双机连接电路图如图(4)所示图(4)(4)甲机程序#include#define uchar unsigned charuchar TAB8;uchar i,sum

    11、; /*sum为求和校验*/void delay(void) /*延时程序*/ int j; for(j=0;j12000;j+); void scanf() /*键盘扫描程序*/ uchar i,j,k=0; unsigned char num44=0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e; while(1) for(k=0;k8;k+) P1=0x0F; delay(); /*软件去抖动*/ if(P1&0x0F)!=0x0F) switch(P1) case 0x0

    12、7: 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输出对应的按键值*/ void init(vo

    13、id) /*初始化程序*/ TMOD=0x20; TH1=0xf3; /*波特率为2400bps*/ TL1=0xf3; PCON=0x00; /*SMOD=0*/ TR1=1; /*开T1中断*/ SCON=0x50; /*接收允许*/ void send(void) /*发送函数*/ doSBUF=0xaa; /*发送握手信号0XAA*/ while(!TI); /*等待接收*/ TI=0; /*传送完复位*/ while(!RI); /*等待接收*/ RI=0; /*接收完复位*/ while(SBUF!=0xbb); /*甲机收到BBH后就把数码表*/TAB8 /*中的8个数据发送给乙

    14、机,并发送校验和*/ 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(SBUF!=0); /等待接收 main() /主程序init(); scanf(); send();(5)乙机程序#include#define uchar unsigned charvoid init(void) /初始化程序 TMOD=0x20; TH1=0xf3; /波特率为24

    15、00bps TL1=0xf3; PCON=0x00; TR1=1; SCON=0x50; void delay(void) /*延时程序*/uchar j; for(j=0;j12000;j+); void receive(void) /接收函数 uchar i,sum; uchar TABS8; /定义接收数组 do while(!RI);RI=0; while(SBUF!=0xaa); /接收完0XAA则向主机发送0XBB SBUF=0xbb; while(!TI);TI=0; while(1) sum=0; for(i=0;i=7;i+) while(!RI);RI=0; TABSi=S

    16、BUF; /装人接收的数据 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口为位选码 P2=0xfe; for(i=0;i=7;i+) P0=TABSi; /p0口输出段选码 P2=P21|0x01; /位选码左移,并或0X01实现动态显示 delay(); /延时 void main(void) /接收主函数 init(); receive(); 四、数码管显示设计为了显示所需字符,我们必须

    17、先查的对应字符的段选码,如图()所示。此处选用共阳极输出查的对应字符段选码后预存入数组TAB中。图(7)八位LED动态显示电路只需要两个8位I/O口。其中一个控制段选码,另一个控制位选。要想每位显示不同的字符,必须利用人的视觉暂留,采用扫描方式。 数码管显示部分硬件接线如图(8)所示五、总体电路图六、设计小结我觉得做单片机课程设计是十分有意义的,而且是十分必要的。在已度过的大学时间里,我们大多数接触的是专业课。我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?如何把我们所学的专业基础课理论知识运用到实践中去呢?我想做类似的课程设计就为我们提供了良好的实践平台。在做本次课程设计

    18、的过程中,我感触最深的当属查阅大量的设计资料了,无论是课本上的还是网上的都浏览了不少相关的程序,从中也借鉴了别人的思想,开阔了自己的思路。做单片机课程设计,对设计者对软硬件的理解和掌握的要求都比较高。在设计程序之前,设计者必学对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常德,但我们应该将每

    19、次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。虽然这次课程设计由于其他原因缩减到一周时间,但是回顾这一周以来自己从接到题目到编写出程序、画出电路原理图,自己真的收获不少。无论是软件的使用还是对单片机内部资源的了解,自己的认识都加深了很多。真希望能有多点的时间来把设计深入下去,把原理图做成实实在在的电路板,并在板子上实现设计的功能另外,这次课程设计让我感到了团队合作的重要性。在团队中,我们互帮互助,对整个课程设计来说,这是至关重要的,缺少每一个人都会对我们的设计产生影响。还有要感谢指导老师在我们遇到困难时,给予我们的建议与鼓励!七、参考文献1,单片机接口技术(C51版) 张道德编著 水利水电出版社2.单片微型计算机原理及接口技术 杨光友 朱宏辉主编 水利水电出版社3.51单片机C语言应用程序设计实例精讲 戴佳 戴卫恒编著 电子工业出版社4.单片机语言C51典型应用设计 刘文涛编著 人民邮电出版社5.Vision2单片机应用程序开发指南 尹勇 李宇编著 科学出版社6.单片机控制实习与专题制作 蔡朝洋编著 北京航天航空大学出版社 . .


    注意事项

    本文(单片机双机通信系统课程设计.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开