单片机之间串口通信.docVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
专业课程设计Ⅰ 题 目 单片机间串口通信设计 院 系: 自动化学院 专业班级: 智能0903班 小组成员: 指导教师: 日 期: 2012.03.26-2012.04.06 1.课程设计描述 近年来,单片机以其极高的性价比越来越多的在智能式仪表和工业过程控制中得到广泛的应用。但由于其本身资源有限,在一些复杂过程或功能较多的控制中就难以满足要求,需要将单片机的数据送到上一级的微机进行处理。因此实现上位机(PC机)与下位机(单片机)之间的数据可靠通信是必须解决的主要问题之一,在数据传输量不大的情况下,按照RS232标准进行串行通信越来越多的服务于各种应用系统中。实验要求利用简单的51单片机实现双机通信使得两片51都能够发送并接收信息。 2. 课程设计具体要求 2.1 了解单片机及其应用,明确课程学习内容及目标 2.2 学会仿真图的设计 2.3 选一个带有232接口的单片机,和电脑进行通信,或者两个都带有232接口的单片机,相互通信,一个做人机界面和通信程序.另外一个做采集程序和通信程序,通过人机界面获取命令,然后通过通信程序发送到另外一个单片机,另外一个单片机接收到命令后做相应的采集处理。 3.主要元器件 两片C52,两个11.0592晶振,烙铁,学生电源,104瓷片电容8个,22pf电容4个,4个LED灯,四脚开关两个,max232两个。 4.基本原理阐述 串行通信是指数据按位顺序传送的通信。串行数据传送的特点是:通信线路简单,最多只需一对传输线即可实现通信,成本低但速度慢,其通信线路既能传送数据信息,又能传送控制信息。它对信息的传送格式有固定要求,具体分为异步和同步两种信息格式.与此相应有异步通信和同步通信两种方式;在串行通信中,对信息的逻辑定义与TTL不兼容,需要进行逻辑电平转换:计算机与外界的数据传送大多是串行的,其传送的距离可以从几米到几千公里。单片机中使用的串行通信通常都是异步方式的。 5.实验方案 5.1:硬件设计 5.2 软件程序 甲机程序: //说明:甲机向乙机发送字符,本身也完成相应动作 #includereg52.h #define uchar unsigned char #define uint unsigned int sbit LED1=P1^0; sbit LED2=P1^3; sbit K1=P1^7; uchar Operation_No=0; //操作代码 uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; //数码管代码 void DelayMS(uint ms) //延时 { uchar i; while(ms--) for(i=0;i120;i++); } //向串口发送字符 void Putc_to_SerialPort(uchar c) { SBUF=c; while(TI==0); //收到时中断 TI=0; //清除中断 } void main() //主程序 { LED1=LED2=1; P0=0xff; SCON=0x50; //串口模式1,允许接收 TMOD=0x20; //T1工作模式2 PCON=0x00; //波特率不倍增 TH1=0xfd; //设置计数初值 TL1=0xfd; TI=RI=0; TR1=1; //启动定时器 IE=0x90; //允许串口中断 while(1) { DelayMS(100); if(K1==0) //按下K1时选择操作代码0,1,2,3 { while(K1==0); //按键恢复时执行下面的 Operation_No=(Operation_No+1)%4; switch(Operation_No) //根据操作代码发送A/B/C或停止发送 { case 0: Putc_to_SerialPort(X); LED1=LED2=1; break; case 1: Putc_to_SerialPort(A); LED1=~LED1;LED2=1; break; case 2: Putc_to_SerialPort(B); LED2=~LED2;LED1=1; break; case 3: Putc_to_SerialPort(C); LED1=~LED1;LED2=LED1; break; } } } } void Serial_INT() interrupt 4 //甲机串口接收中断函数 { if(RI) { RI=0; if(SBUF=0SBUF=10) P0=DSY_CODE[SBUF]; else P0=0xff; } } 乙机程序: // 说明:乙机接收到甲机发送的信号后,根据相应

文档评论(0)

我思故我在 + 关注
实名认证
文档贡献者

部分用户下载打不开,可能是因为word版本过低,用wps打开,然后另存为一个新的,就可以用word打开了

1亿VIP精品文档

相关文档