工业强化训练项目说明书.doc_第1页
工业强化训练项目说明书.doc_第2页
工业强化训练项目说明书.doc_第3页
工业强化训练项目说明书.doc_第4页
工业强化训练项目说明书.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

机电一体化强化训练嵌入式项目设计说明书两个单片机之间的全双工通信院(系) 机械工程学院 专业/方向 机械电子工程 班 级 机械电子工程2班 学生姓名 杨森淼 指导老师 2015年7月7日华南理工大学广州学院摘 要3第一章 绪论41.1前言41.2 设备简介41.3系统功能5第二章 设计方案的选择62.1 微处理器的选择62.2 单片机的串口62.3 串口的四种工作方式62.4系统组成7第三章 系统基本电路83.1 晶振电路83.2 数码管显示电路83.3 键盘电路9第四章 程序设计104.1 程序10第五章 调试与仿真137.1仿真效果图13参考文献14附录15附件一15附录二20o20摘 要单片机自20世纪70年代以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。单片机具有体积小、重量轻、价格低廉、环境要求不高、功能强大、灵活性好、易于开发等特点。在我国单片机已经广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51 单片机是个单片机中最为典型和最有代表性的一种。单片机系统的发展过程中,程序设计语音的选择尤为重要。C51是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能,而且可以直接实现对硬件的控制。本项目是以MCS51系列8位单片机为代表实现两个单片机之间的全双工通信。单片机的实现过程是在keil软件下用C语言进行编程,然后在Prouteus仿真软件中设计了44矩阵式键盘作为确认发送。单片机相互之间能将检测到的按键信号转换成数字量,呈现在LED显示电路上。该系统灵活性强、可靠性高、将会有更广阔的开发前景。通过学习和查找相关资料,我们掌握了单片机全双工通信基本原理的理论知识,学会使用keil、Prouteus软件,利用MCS51系列单片机具有性价比高。稳定可靠、通用性强、体积小、价格低等优点,成功运行两个单片机之间的通信。关键词:MCS51系列单片机;显示电路;通信第一章 绪论第一章 绪论1.1前言单片机自诞生以来,以其体积小、面向控制、高性价比等优点,在工业领域扮演着重要角色。在实际应用中,经常需要多个单片机之间协调工作,即多机通讯。MCS-51系列单片机的串行口工作模式2和模式3可实现多机通信。这种多机系统结构简单,应用广泛,但它只能实现由主机呼叫分机,然后实现主机与分机之间的全双工串行通信。我们在监控系统中要求既有主机与分机主动通信,又有分机与主机主动通信,这种结构的多机系统就无法满足要求。 多机协同工作已是单片机发展的一个重要趋势,目前单片机多机通信的主要方式仍然是主从式多机通信系统。 单片机多机通信的目的是实现分布式处理系统,单片机多机通信的方式有很多种,应用前景广阔,非常具有研究意义。MCS-51单片机的应用开发主要有电路设计和程序设计两个难点。由于可编程芯片被广泛采用,接口电路设计的工作被大大简化。本项目的单片机全双工通信利用Proteus软件仿真,利用keil软件做程序设计,结合两个软件运行。完成电路的设计、检查、调试,再根据自己的硬件和通信协议用C语言编写发送和接收程序,然后在keil上建立项目,保存运行调试,最终准确无误的生成16进制文件。下一步,在proteus仿真软件上画出电路,完成之后在89s51芯片上各自加载程序,然后运行。在这过程中需要选择适当的元件,合理的电路图,基本的故障排除和纠正能力,会使用基本的仪器对硬件进行调试,会熟练的运用c语言编写程序,会用相关的软件对自己的程序进行翻译,并烧进芯片中,要耐心反复检查、修改和调试,直到达到预期目的。1.2 设备简介 AT89S51是一种低功耗、高性能CMOS 8位微控制器,具有8K在系统可编程Flash存储器,具有多机通信的功能,可以很好完成基本的数据通信的功能。借助PROTEUS等仿真软件强大的仿真功能,可以从工程的角度直接能够看到仿真程序的运行电路工作的结果。因此弥补试验和实际单片机之间数据通信的脱节环节,因而具有一定的研究意义。晶振和电容来组成内部时钟方式,复位电路用上电自动复位。复位端RST引脚高电平时8051单片机处于复位状态,低电平时单片机处于正常工作状态。上电时,电容器瞬态还未充上电,其两端无点差为,因此RST引脚和VCC引脚电位相同,即为高电平,8051单片机复位。当电容器两端充满电荷,电容器达到稳态,两端电位差为VCC,是RST引脚电位为0,因而使8051单片机处于正常工作状态。1.3系统功能1) 实现两台单片机之间的全双工通信。2) 每一方都可以发送09的数字在本机显示,同时发送给对方显示。第二章 设计方案的选择2.1 微处理器的选择本系统对微处理器要求不是太高,速度不要求太高,但代码较长,因此要求微处理器应有较大的程序存储空间,通信的发送缓冲区与接收缓冲区均从RAM中分配,为了能传送更多的数据,要求要有较大的RAM,此外,处理器还应有一个全双工的串行口。综合考虑以上各种因素,选用MCS-51系列的单片机AT89C51。AT89C51是一种低功率高性能的CMOS8位微处理器。AT89C51具有以下标准功能:4K字节Flash,128字节RAM,32位I/O口线,2个数据指针,两个16位定时器/计数器,2级中断结构,全双工串行口,片内晶振及时钟电路。2.2 单片机的串口AT89C51单片机的串口是一个可编程全双工的通讯接口,具有UART(通用异步收发器)的全部功能,能同时进行数据的发送和接收,也可以作为同步移位寄存器使用。AT89C51单片机的串行口主要由两个独立的串行数据缓冲寄存器SBUF(一个发送缓冲寄存器,一个接收缓冲寄存器)和发送控制器、接收控制器、输入移位寄存器及若干控制门电路组成。2.3 串口的四种工作方式(1)方式0。方式0时,串行口为同步移位寄存器的输入/输出方式,主要用于扩展并行输入或输出口。数据由RXD(P3.0)引脚输入或输出,同步移位脉冲由TXD(P3.1)引脚输出。发送和接收均为8位数据,低位在先,高位在后,波特率固定为。(2)方式1。方式1是10位数据的异步通信口,其中1位起始位,8位数据位,1位停止位。TXD(P3.1)为数据发送引脚,RXD(P3.0)为数据接收引脚。其传输波特率是可变的,对于51单片机,波特率由定时器1的溢出率决定。通常我们在做单片机与单片机串口通信、单片机与计算机串口通信、计算机与计算机串口通信时,基本都选择方式1,。即这次项目就是用方式1进行单片机与单片机的全双工通信。(3)方式2,3。方式2,3时为11位数据的异步通信口。TXD(P3.1)为数据发送引脚,RXD(P3.0)为数据接收引脚。这两种方式下,起始位1位,数据9位(含一位附加的第九位,发送时为SCON中的TB8,接收时为RB8),停止位1位。方式2的波特率固定为晶振频率的1/64或1/32,方式3的波特率由定时器T1的溢出率决定。2.4系统组成AT89S52TXDRXDAT89S52RXDTXD数码管显示数码管显示图2-1第三章 系统基本电路3.1 晶振电路一般的晶振振荡电路都是在一个反相放大器的两端接入晶振,再有两个电容分别接到晶振的两端,每个电容的另一端再接到地,这两个电容串联的容量值就应该等于负载电容,这个并联谐振电路加到一个负反馈电路中就可以构成正弦波振荡电路。电路如图3-1所示:图3-13.2 数码管显示电路根据任务要求,使用2个共阳LED数码管,使用7个阻值为1K的电阻将数码管的段控制与单片机的P0口连接,使用6个阻值为1K的电阻将数码管的位控制与单片机的P2口连接,如图3-2所示:图3-23.3 键盘电路在本系统中,主机的数据和控制信号通过串口或键盘输入,为节省单片机I/O口,简化硬件线路,采用4*4矩阵式键盘1。键盘共设有16个键,其中包括数字键和功能键。如图所示,由AT89S52的P1.0-P1.7八条行线构成。如图3-3所示:图3-3第四章 程序设计4.1 程序/*数码管显示位选表*/uchar table6=0xff,0xff,0xff,0xff,0xff,0xff;uchar xianshi6=0xff,0xff,0xff,0xff,0xff,0xff;uchar tab6=0xff,0xff,0xff,0xff,0xff,0xff;/*函数功能:num延时函数*/void delay(int num) int i,j;for(i=num;i0;i-)for(j=110;j0;j-);/*检测按键松开函数*/void delay_key()P1=0x0f;while(P1!=0x0f);/*显示数码管初始显示函数*/void startdisplay()xianshi0=table0;xianshi1=table1;xianshi2=table2;xianshi3=table3;xianshi4=table4;xianshi5=table5;/*数码管显示程序*/void display() P2=0x00;P0=xianshi0;P2=0x01;delay(5);P2=0x00;P0=xianshi1;P2=0x02;delay(5);P2=0x00;P0=xianshi2;P2=0x04;delay(5);P2=0x00;P0=xianshi3;P2=0x08;delay(5);P2=0x00;P0=xianshi4;P2=0x10;delay(5);P2=0x00;P0=xianshi5;P2=0x20;delay(5);/*发送函数*/void send(uchar key_num) ES=0; SBUF=key_num;while(!TI); TI=0;ES=1; /*接收函数*/void UART() interrupt 4 RI = 0;table0=table1;table1=table2;table2=table3;table3=table4;table4=table5;table5=SBUF;/*键盘扫描结果函数*/void keyresult()while(1)keynum=keyscan();delay_key();if(keynum0;i-)for(j=110;j0;j-);void delay_key()P1=0x0f;while(P1!=0x0f);int keyscan() k=12;P1=0x0f;if(P1!=0x0f) /检测是否有按键被按下delay(200);if(P1!=0x0f) /再次检测P1=0xfe; /检测第一行按键switch(P1)case 0x7e:k=0;break;case 0xbe:k=1;break;case 0xde:k=2;break;case 0xee:k=3;break;default:break;P1=0xfd; /检测第二行按键switch(P1)case 0x7d:k=4;break;case 0xbd:k=5;break;case 0xdd:k=6;break;case 0xed:k=7;break;default:break;P1=0xfb; /检测第三行按键switch(P1)case 0x7b:k=8;break;case 0xbb:k=9;break; case 0xdb:k=12;break;case 0xeb:k=11;break;default:break;P1=0xf7; /检测第四行按键,无功能switch(P1)case 0x7b:k=12;break;case 0xbb:k=12;break; case 0xdb:k=12;break;case 0xeb:k=12;break;default:break;return k;void keyresult()while(1)keynum=keyscan();delay_key();if(keynum12)if(keynum=11)send(tab0);send(tab1);send(tab2);send(tab3);send(tab4);send(tab5);elsetable0=table1;table1=table2;table2=table3;table3=table4;table4=table5;table5=ledcodekeynum;tab0=tab1;tab1=tab2;tab2=tab3;tab3=tab4;tab4=tab5;tab5=ledcodekeynum;startdisplay();display();void startdisplay()xianshi0=table0;xianshi1=table1;xianshi2=table2;xianshi3=table3;xianshi4=table4;xianshi5=table5;void display() P2=0x00;P0=xianshi0;P2=0x01;delay(5);P2=0x00;P0=xianshi1;P2=0x02;delay(5);P2=0x00;P0=xianshi2;P2=0x04;delay(5);P2=0x00;P0=xiansh

温馨提示

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

评论

0/150

提交评论