书签 分享 收藏 举报 版权申诉 / 21
上传文档赚钱

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

  • 上传人(卖家):晟晟文业
  • 文档编号:4289121
  • 上传时间:2022-11-26
  • 格式:PPT
  • 页数:21
  • 大小:113.54KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《单片机C语言-第6章串行口的C51编程3课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    单片机 语言 串行口 C51 编程 课件
    资源描述:

    1、6.3 串行口的应用举例串行口的应用举例 6.3.1 初始化初始化 设定SCON的SM0、SM1两位二进制编码。对于方式2或3,应根据需要在TB8中写入待发送的第9位数据。若选定的操作方式不是方式0,还需设定发送的波特率:设定SMOD的状态,以控制波特率是否加倍。若选定操作方式1或3,则应对定时器T1进行初始化,以设定其溢出率。6.3.2 编程步骤编程步骤(1)设定设定波特率波特率 串行接口的波特率设定方式有两种:固守波特率和可变波特率。当采用可变波特率时,应先确定T1的计数初值,并对T1进行初始化。当采用固定波特率(工作方式0和工作方式2)时,该步可以省略。(2)填写控制字填写控制字 设定串

    2、行口控制寄存器SCON和波特率倍增控制寄存器PCON。6.3.2 编程步骤编程步骤(3)串行通信可采用两种方式:查询方式和中断方式。查询方式发送数据(先发后查):发送一个数据、查询 TI、发送下一个数据。查询方式接收数据(先查后收):查询 RI、读入一个数据、查询 RI、读入下一个数据。中断方式发送数据:发送一个数据、等待中断,在中断中再发送下一个数据。中断方式接收数据:等待中断、在中断中接收一个数据。两种方式中,发送与接收数据后都要将TI或RI清零。【例例6-9】波特率计算及初始化编程波特率计算及初始化编程 设某设某51单片机系统,其串行口工作于方式单片机系统,其串行口工作于方式3,要,要求

    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-10】编编程程:高高4位灯和低位灯和低4位灯以位灯以1s亮亮1s灭的频率进行闪烁。灭的频率进行闪烁。分析:分析

    4、:(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次中断到,将输出次中断到,将输出的数据取反操作。的数据取反操作。#include unsigned char data i,a;void main()SCON=0;TMOD=0X01;TH0

    5、=-50000/256;TL0=-50000%256;i=20;EA=1;ET0=1;TR0=1;a=0 x0f;SBUF=a;while(1);void t0int()interrupt 1 TH0=-50000/256;TL0=-50000%256;i=i-1;while(i=0)i=20;a=a;SBUF=a;修改:将上述程序改为流水灯形式。【例例6-11】串行口自收自发串行口自收自发 将将51单片机的单片机的TXD接接RXD,实现单片机,实现单片机串行口数据自发自收,并将接收的数据通过串行口数据自发自收,并将接收的数据通过P1口输出到发光二极管显示。系统时钟频率口输出到发光二极管显示。

    6、系统时钟频率为为11.0592MHz,自发自收的波特率为,自发自收的波特率为2400bps。编写程序,要求:单片机串行口工作在方。编写程序,要求:单片机串行口工作在方式式1,从,从TXD发送数据发送数据0 x55,从,从RXD将该数据将该数据读回,并送读回,并送P1口通过口通过8个发光二极管显示。个发光二极管显示。#include#define uchar unsigned char#define uint unsigned int void main()uchar i=0 x0F;uint j=0;TMOD=0X20;/设定定时器1,模式2 TL1=TH1=0XF4;PCON=0X00;SC

    7、ON=0X50;TR1=1;while(1)TI=0;SBUF=i;/发送数据 while(TI=0);TI=0;RI=0;while(RI=0);i=SBUF;/读取接收数据 RI=0;P1=i;i=i;for(j=0;j12500;j+);/延时 【例例6-12】两个单片机串行通信两个单片机串行通信 在某控制系统中有甲、乙两个单片机,甲单片机首先将P1口拨动开关数据装入SBUF,然后经由TXD将数据发送给乙单片机。乙单片机将接收数据存入SBUF,再由SBUF载入累加器,并输出至P1,点亮相应端口的LED。PROTEUS仿真电路如图所示。#include /单片机1的C51源程序#defin

    8、e 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;/单片机2的C51源程序:#include#define uint unsigned int#define uchar unsigned charvoid main()uchar i=0;TMOD=0 x20;TH1=TL1=0 xff;SCON=0 x

    9、50;PCON=0 x80;TR1=1;while(1)while(RI=0);RI=0;i=SBUF;P1=i;实验实验1 串行口控制的流水灯实验串行口控制的流水灯实验 实验目的:掌握51单片机串行口的基本应用,掌握51单片机串行口扩展为并行口的基本应用。电路与内容:通过74LS164扩展一个8位的输出口,输出接8个LED指示灯,编程实现流水灯的控制。闪烁间隔为1s。1s由定时器/计数器产生。#includeunsigned char i=0;unsigned char i1=0 xfe;void main()SCON=0 x00;/初始化串口方式0 TMOD=0X01;TH0=-20000

    10、/256;TL0=-20000%256;EA=1;ET0=1;TR0=1;SBUF=i1;while(1);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;实验实验2 串行口控制的串行口控制的8段段LED显示器显示器 实验目的:掌握51单片机串行口扩展为并行口的基本应用,掌握51单片机串行口控制8位LED显示器的应用。电路与内容:51单片机外部通过串行口扩展两片74LS164,

    11、每片74LS164连接一个共阳极8段LED数码管,编程实现显示12。#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);

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:单片机C语言-第6章串行口的C51编程3课件.ppt
    链接地址:https://www.163wenku.com/p-4289121.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库