单片机C语言第6章串行口的C51编程3课件.ppt
《单片机C语言第6章串行口的C51编程3课件.ppt》由会员分享,可在线阅读,更多相关《单片机C语言第6章串行口的C51编程3课件.ppt(21页珍藏版)》请在三一办公上搜索。
1、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)填写控制字设定串行
2、口控制寄存器SCON和波特率倍增控制寄存器PCON。,6.3.2 编程步骤(1)设定波特率,6.3.2 编程步骤,(3)串行通信可采用两种方式:查询方式和中断方式。 查询方式发送数据(先发后查) :发送一个数据、查询 TI、发送下一个数据。 查询方式接收数据(先查后收) :查询 RI、读入一个数据、查询 RI、读入下一个数据。 中断方式发送数据:发送一个数据、等待中断,在中断中再发送下一个数据。 中断方式接收数据:等待中断、在中断中接收一个数据。 两种方式中,发送与接收数据后都要将TI或RI清零。,6.3.2 编程步骤(3)串行通信可采用两种方式:查询方式,【例6-9】波特率计算及初始化编程,
3、设某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灭的
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次中断到,将输出的数据取反操作。,分析:(1)4位亮、4位灭的交替数据为11110000B和0,#includeunsigned char data i, a;void main( ) SCON=0; TMOD=0X01; TH0=-50000/256; TL0=-50000%256; i=
5、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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 语言 串行口 C51 编程 课件

链接地址:https://www.31ppt.com/p-1311527.html