(精选)单片机原理与应用-KFIL C项目教程(西电版)项目八 串行口通信课件.ppt

(精选)单片机原理与应用-KFIL C项目教程(西电版)项目八 串行口通信课件.ppt

  1. 1、本文档共166页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
演示文稿演讲PPT学习教学课件医学文件教学培训课件

    /*延时函数*/     void delay (uint i) //延时时间约为i×1 ms      {   uchar j, x;   for(j=0;ji;j++) for(x=0;x=130;x++);     }     /*主函数*/     void main()     {       TMOD=0x20; //定时/计数器T1为方式2,字节寻址       TH1=0xfd; //用于存放初值FDH,SMOD=0,波特率为9600 b/s       TL1=0xfd; //用于加1计数,初值为FDH       TR1=1; //启动定时/计数器T1,位寻址       SM0=0;       SM1=1; //串行口初始化为方式1,位寻址       REN=1;       ES=1; //串行口开中断,位寻址       EA=1; //CPU开中断,位寻址       while(1); //等待串行口中断     }     /*串行口中断服务函数*/     void chuan0 () interrupt 4      {   uchar jianhao;       RI=0; //清除接收中断标志RI       jianhao=SBUF; //读取接收缓冲寄存器SBUF   P0=seg7[jianhao]; //显示发送方矩阵键盘中闭合键的键号     }   (3) 分析。发送方的串行口采用查询方式,因此在发送函数void send (uchar jianhao)中,当执行语句“SBUF=jianhao;”后便自动开始将串行口发送缓冲寄存器SBUF中的数据一位接着一位从串口发送出去;语句“while(!TI);”的作用是查询一帧字符是否发送完成,未发送完成时,TI=0、!TI=1,while的表达式永远为真,一直在该语句处等待,只有当发送完成置位TI后,!TI=0,while的表达式永远为假,结束等待,执行while的下一条语句;清除发送中断标志TI,若用户不清除TI,下一次就无法正常发送。     void send (uchar jianhao)      {   SBUF=jianhao; //将闭合键的键号送入发送缓冲寄存器SBUF,进行发送   while(!TI); //查询TI,等待发送结束   TI=0; //发送结束后,清除发送中断标志TI,为下一次发送作准备     }   接收方的串行口采用中断方式,在中断服务函数void chuan0() interrupt 4中首先清除接收中断标志RI,因为CPU只要开始执行该中断服务函数,就表示产生了串口中断,而且肯定是发送或接收了数据,若接收方源程序并没有发送任何数据,那就必然是接收到了数据,硬件会自动地将RI置1。进入中断服务函数后,必须由用户将RI清0,这样才能产生下一次中断;然后将接收缓冲寄存器SBUF中的数据读出送给变量jianhao,再由语句“P0=seg7[jianhao];”将键号显示出来,这才是进入中断服务函数中最重要的目的。     void chuan0 () interrupt 4      {    uchar jianhao;       RI=0; //清除接收中断标志RI       jianhao=SBUF; //读取接收缓冲寄存器SBUF   P0=seg7[jianhao]; //显示发送方矩阵键盘中闭合键的键号     }   从发送方与接收方的发送与接收过程中可以清晰地看出,SBUF是共用一个地址的两个独立寄存器,单片机识别操作哪个寄存器的关键语句是“SBUF=jianhao;”和“jianhao=SBUF;”。 8.3.3 程序调试   1. 实验板电路分析   将发送方单片机实验板中的RXD(P3.0)、TXD(P3.1)分别与接收方单片机实验板中的TXD(P3.1)、RXD(P3.0)用短接线相连,然后再用短导线将两个单片机实验板的地线连接到一起,即两个实验板要共地。   2. 程序设计   按照项目要求建立两个项目分别编写发送方与接收方源程序,在发送方实验板上编写矩阵键盘扫描程序,当有键闭合时,将闭合键的键号发送至接收方实验板;在接收方实验板上编写显示程序,将由串行口接收到的闭合键键号显示在数码管上。编译通过后将扩展名为.hex的文件下载到各自的实验板中。   3. 结果分析   打开两个单片机实验板的电源,按下发送方单片机实验板中矩阵键盘中的按键,观察接收方实验板数码管上的显示结果。若结果有误,请仔细检查两个源程序,错误排除后,再重新编辑、编译并下载进行验证。

文档评论(0)

youngyu0329 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档