单片机应用开发 串口初始化 2-3-2单片机的串行口.pptVIP

  • 21
  • 0
  • 约1.49千字
  • 约 7页
  • 2020-08-29 发布于北京
  • 举报

单片机应用开发 串口初始化 2-3-2单片机的串行口.ppt

Application and Development of Microcontroller 《单片机应用开发》课程 主讲教师 刘德新 移动通信技术专业教学资源库 深圳信息职业技术学院电子与通信学院 串行口初始化 目录 01 串行口初始化 02 串行口初始化实例 03 串行口举例 1. 串行口的初始化 EDITED BY LIU DEXIN * 单片机应用开发 在使用串行口之前,应对它进行编程初始化,主要是设置产生波特率的定时器1、串行口控制和中断控制寄存器。具体步骤如下: (1) 确定定时器1的工作方式——编程TMOD寄存器 (2) 计算定时器1的初值——装载TH1、TL1,具体TH1和TL1的值可查表得到 (3) 启动定时器1——编程TCON中的TR1位,即置TR1为1 (4) 确定串行口的控制——编程SCON (5) 串行口在中断方式工作时,须开CPU和源中断——编程IE寄存器 2.串行口初始化实例 EDITED BY LIU DEXIN 单片机应用开发 T/C的方式控制寄存器TMOD GATE C/T M1 M0 GATE C/T M1 M0 D7 D6 D5 D4 D3 D2 D1 D0 T/C1 T/C0 假设定时器1工作在方式2,波特率为9600bps,串行口工作在方式3 TMOD=0x20; TH1=TL1=0xfd; 3.串行口举例 EDITED BY LIU DEXIN * 单片机应用开发 #include reg52.h #define uchar unsigned char #define uint unsigned int uchar idata trdata[10]= {M,C,S,-,5,1, 0x0d, 0x0a,0x00}; void main(void) { uchar i; uint j; TMOD=0x20; TL1=0xfd;TH1=0xfd; SCON=0xd0;PCON=0x00; TR1=1; while(1) {i=0; while(trdata[i]!=0x00) {SBUF=trdata[i]; while(TI==0); TI=0; i++; } for (j=0;j12500;j++); } } SM0 SM1 SM2 REN TB8 RB8 TI RI D7 D6 D5 D4 D3 D2 D1 D0 小结和思考 EDITED BY LIU DEXIIN * 单片机应用开发 怎样初始化串行口的各寄存器? 串行口工作在查询和中断情况下有什么区别? 将前面的例子改为中断方式 谢 谢 主讲教师 刘德新 移动通信技术专业教学资源库 深圳信息职业技术学院电子与通信学院

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档