欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    单片机C语言第6章串行口的C51编程3课件.ppt

    • 资源ID:1311527       资源大小:113.54KB        全文页数:21页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    单片机C语言第6章串行口的C51编程3课件.ppt

    6.3 串行口的应用举例,6.3.1 初始化 设定SCON的SM0、SM1两位二进制编码。对于方式2或3,应根据需要在TB8中写入待发送的第9位数据。若选定的操作方式不是方式0,还需设定发送的波特率:设定SMOD的状态,以控制波特率是否加倍。若选定操作方式1或3,则应对定时器T1进行初始化,以设定其溢出率。,6.3 串行口的应用举例6.3.1 初始化,6.3.2 编程步骤,(1)设定波特率 串行接口的波特率设定方式有两种:固守波特率和可变波特率。当采用可变波特率时,应先确定T1的计数初值,并对T1进行初始化。当采用固定波特率(工作方式0和工作方式2)时,该步可以省略。 (2)填写控制字设定串行口控制寄存器SCON和波特率倍增控制寄存器PCON。,6.3.2 编程步骤(1)设定波特率,6.3.2 编程步骤,(3)串行通信可采用两种方式:查询方式和中断方式。 查询方式发送数据(先发后查) :发送一个数据、查询 TI、发送下一个数据。 查询方式接收数据(先查后收) :查询 RI、读入一个数据、查询 RI、读入下一个数据。 中断方式发送数据:发送一个数据、等待中断,在中断中再发送下一个数据。 中断方式接收数据:等待中断、在中断中接收一个数据。 两种方式中,发送与接收数据后都要将TI或RI清零。,6.3.2 编程步骤(3)串行通信可采用两种方式:查询方式,【例6-9】波特率计算及初始化编程,设某51单片机系统,其串行口工作于方式3,要求传送波特率为1200。作为波特率发生器的定时器T1工作在模式2时,请求出计数初值为多少?设单片机的振荡频率为6MHz。 X=256-(2SMODfosc)/(384波特率)TH1=256fosc/(波特率1232/2SMOD) =256-2SMOD13当SMOD=0时:TH1=25613=243=0F3H。当SMOD=1时:TH1=256213=230=0E6H。,【例6-9】波特率计算及初始化编程设某51单片机系统,其串行,【例6-10】编程:高4位灯和低4位灯以1s亮1s灭的频率进行闪烁。,【例6-10】编程:高4位灯和低4位灯以1s亮1s灭的频率进,分析:,(1)4位亮、4位灭的交替数据为11110000B和00001111B;(2)串行口采用方式0,SCON=00H;(3)1s由定时器T0产生:硬件定时50ms,软件计数20次;T0定时器方式、模式1、初值为:50000=65536-X X=15536=3CB0H(4)1s采用中断的方式,20次中断到,将输出的数据取反操作。,分析:(1)4位亮、4位灭的交替数据为11110000B和0,#includeunsigned char data i, a;void main( ) SCON=0; TMOD=0X01; TH0=-50000/256; TL0=-50000%256; i=20; EA=1; ET0=1; TR0=1; a=0 x0f; SBUF=a; while(1);,#include,void t0int( ) interrupt 1 TH0=-50000/256; TL0=-50000%256; i=i-1; while(i=0) i=20; a=a; SBUF=a; 修改:将上述程序改为流水灯形式。,void t0int( ) interrupt 1,【例6-11】串行口自收自发,将51单片机的TXD接RXD,实现单片机串行口数据自发自收,并将接收的数据通过P1口输出到发光二极管显示。系统时钟频率为11.0592MHz,自发自收的波特率为2400bps。编写程序,要求:单片机串行口工作在方式1,从TXD发送数据0 x55,从RXD将该数据读回,并送P1口通过8个发光二极管显示。,【例6-11】串行口自收自发 将51单片机的TX,单片机C语言-第6章串行口的C51编程3,#include#define uchar unsigned char#define uint unsigned intvoid main( )uchar i=0 x0F;uint j=0;TMOD=0X20; /设定定时器1,模式2TL1=TH1=0XF4;PCON=0X00;SCON=0X50;TR1=1;while(1) TI=0; SBUF=i; /发送数据,#include,while(TI=0);TI=0;RI=0; while(RI=0); i=SBUF; /读取接收数据 RI=0; P1=i;i=i;for(j=0;j12500;j+); /延时,while(TI=0);,【例6-12】两个单片机串行通信,在某控制系统中有甲、乙两个单片机,甲单片机首先将P1口拨动开关数据装入SBUF,然后经由TXD将数据发送给乙单片机。乙单片机将接收数据存入SBUF,再由SBUF载入累加器,并输出至P1,点亮相应端口的LED。PROTEUS仿真电路如图所示。,【例6-12】两个单片机串行通信 在某控制系统中,单片机C语言-第6章串行口的C51编程3,#include /单片机1的C51源程序#define uint unsigned int#define uchar unsigned charvoid main( ) uchar i; TMOD=0 x20; TH1=TL1=0 xff; SCON=0 x50; PCON=0 x80; TR1=1; P1=0 xff; while(1) P1=0 xff; i=P1; SBUF=i; while(TI=0); TI=0; ,#include /单片机1的C51源,/单片机2的C51源程序:#include#define uint unsigned int#define uchar unsigned charvoid main( )uchar i=0;TMOD=0 x20;TH1=TL1=0 xff;SCON=0 x50;PCON=0 x80;TR1=1;while(1) while(RI=0);RI=0;i=SBUF;P1=i;,/单片机2的C51源程序:,实验1 串行口控制的流水灯实验,实验目的:掌握51单片机串行口的基本应用,掌握51单片机串行口扩展为并行口的基本应用。电路与内容:通过74LS164扩展一个8位的输出口,输出接8个LED指示灯,编程实现流水灯的控制。闪烁间隔为1s。1s由定时器/计数器产生。,实验1 串行口控制的流水灯实验实验目的:掌握51单片机串行,#includeunsigned char i=0;unsigned char i1=0 xfe;void main( ) SCON=0 x00; /初始化串口方式0 TMOD=0X01; TH0=-20000/256; TL0=-20000%256; EA=1;ET0=1;TR0=1; SBUF=i1; while(1);,#include,void t0int() interrupt 1 unsigned char i2,i3; TH0=-20000/256; TL0=-20000%256; i+; if(i=50) i=0; SBUF=i1; i2=i17; i3=i11; i1=i2|i3; while(TI) TI=0; ,void t0int() interrupt 1,实验2 串行口控制的8段LED显示器,实验目的:掌握51单片机串行口扩展为并行口的基本应用,掌握51单片机串行口控制8位LED显示器的应用。电路与内容: 51单片机外部通过串行口扩展两片74LS164, 每片74LS164连接一个共阳极8段LED数码管,编程实现显示12。,实验2 串行口控制的8段LED显示器实验目的:掌握51单片,#includeunsigned char dis_buf2;unsigned char code table10=0 x0c0,0 x0f9,0 x0a4,0 x0b0,0 x99,0 x92,0 x82,0 x0f8,0 x80,0 x90;void display( )TI=0;SBUF=tabledis_buf0;while(TI=0);TI=0;SBUF=tabledis_buf1;while(TI=0);TI=0;void main( ) SCON=0 x00; dis_buf0=1; dis_buf1=2; display( ); while(1);,#include,

    注意事项

    本文(单片机C语言第6章串行口的C51编程3课件.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开