中断方式串行通信程序设计_第1页
中断方式串行通信程序设计_第2页
中断方式串行通信程序设计_第3页
中断方式串行通信程序设计_第4页
中断方式串行通信程序设计_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、42972425313510856869深圳职业技术学院 陈海松 副教授中断方式串行通信程序设计单片机应用技术适用于应用型本科及高职高专电子信息类专业 实例:实例: 甲机作为发送端,连接一个按键;甲机作为发送端,连接一个按键;乙机作为接收端,连接一个数码管。将乙机作为接收端,连接一个数码管。将甲机按键次数(甲机按键次数(09,超过,超过10次后又回次后又回到到0)发送给乙机,并在乙机的数码管)发送给乙机,并在乙机的数码管上显示出来。上显示出来。 1)本系统假定两机处于一个机箱内。串行口)本系统假定两机处于一个机箱内。串行口工作方式工作方式1实现双机通信,实现双机通信,当按下按键一当按下按键一个

2、数据写入甲机串行口发送个数据写入甲机串行口发送缓冲区缓冲区SBUF时,串行口将时,串行口将8位数据从甲机位数据从甲机TXD引脚输出引脚输出(低位在前)到乙机(低位在前)到乙机RXD引脚,甲机发送完,自动置发送引脚,甲机发送完,自动置发送中断标志中断标志TI为为1,向,向CPU申请中断;乙申请中断;乙机接收完,自动置机接收完,自动置接收中断标志接收中断标志RI为为1 ,存放接收到的数字存放接收到的数字。发送采用查询方。发送采用查询方式,接收采用中断方式。式,接收采用中断方式。 2)数码管显示)数码管显示采用采用1个个共阳数码共阳数码管显示管显示。1.1.分析分析2.2.硬件设计硬件设计 甲机作为

3、发送端,乙机作为接收端,甲机的甲机作为发送端,乙机作为接收端,甲机的RXDRXD引脚接乙机的引脚接乙机的TXDTXD引脚,甲机的引脚,甲机的TXDTXD引脚接乙机的引脚接乙机的RXDRXD引脚,且两个单片机必须共地引脚,且两个单片机必须共地。甲机的。甲机的P0.0P0.0引脚连接一个弹性按键引脚连接一个弹性按键S S,乙机的,乙机的P1P1口连接一个共阳极口连接一个共阳极数码管。系统要求将甲机按键数码管。系统要求将甲机按键S S按下的次数显示到乙机数码管上,由按下的次数显示到乙机数码管上,由于一个数码管只能显示于一个数码管只能显示1 1位数字,所以按键次数超过位数字,所以按键次数超过1010次

4、后回零。次后回零。两个系统的晶振频率均为两个系统的晶振频率均为11.0592MHz11.0592MHz。l#include /包含头文件包含头文件REGX51.Hlsbit S=P00; /定义定义P0.0引脚位名称为引脚位名称为Slunsigned char count; /全局变量,用于存放按键次数全局变量,用于存放按键次数l/函数名:函数名:keyl/函数功能:检测按键函数功能:检测按键S是否按下,如果按下是否按下,如果按下count加加1计数计数l/形式参数:无形式参数:无 l/返回值:无返回值:无lvoid key()l unsigned int k;l if (S=0) /第一次判

5、断第一次判断S是否按下是否按下l for(k=0;k1200;k+); /延时去抖延时去抖 l if(S=0) /再次判断再次判断S是否按下是否按下l if(+count=10)count=0; /按键次数处理按键次数处理l while(!S); /等待等待S释放释放l 3.3.软件设计软件设计发发送送程程序序:lvoid main()lPCON=0 x00; /SMOD=0l TMOD=0 x20; /设置定时器设置定时器T1为方式为方式2 l TL1=0 xfd; /波特率为波特率为9600b/sl TH1=0 xfd;l TR1=1;l SCON=0 x40; /定义串行口工作于方式定义

6、串行口工作于方式1,不,不接收接收l count=0; /次数清次数清0l while(1) l key(); /调用按键处理函数调用按键处理函数l SBUF=count; /发送次数发送次数l while(!TI); /查询查询TI是否由是否由0变变1l TI=0; /软件给软件给TI清清0l l 3.3.软件设计软件设计发发送送程程序序:l#include /包含头文件包含头文件REGX51.Hl/定义定义09共阳极显示字型码共阳极显示字型码lcode unsigned char tab=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x

7、80,0 x90;l/函数名:函数名:seriall/函数功能:串行口中断接收函数函数功能:串行口中断接收函数l/形式参数:无形式参数:无l/返回值:无返回值:无lvoid serial( ) interrupt 4/串口中断类型号为串口中断类型号为4l EA=0;/关中断关中断l RI=0; /软件清除中断标志位软件清除中断标志位l P1=tabSBUF; /显示接收数据显示接收数据l EA=1;l 接接收收显显示示程程序:序:lvoid main()/主函数主函数lPCON=0 x00;/SMOD=0lTMOD=0 x20; /设置定时器设置定时器T1为方式为方式2 l TL1=0 xfd; /波特率为波特率为9600b/sl TH1=0 xfd;l TR1=1;l SCON=0 x40; /定义串行口工作于方式定义串行口工作于方式1,不,不接收接收l ES=1; /开串行口中断开串行口中断l

温馨提示

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

评论

0/150

提交评论