单片机之串行通讯精品.pptVIP

  • 3
  • 0
  • 约1.53万字
  • 约 68页
  • 2017-08-24 发布于湖北
  • 举报
表9-2 常用的串行口波特率以及各种参数选取表 72H 2 0 6 0 110 E6H 2 0 6 0 600 F3H 2 0 6 0 1200 FAH 2 0 6 0 2400 FDH 2 0 6 0 4800 FDH 2 0 6 1 9600 FEH 2 0 6 1 19.2K E8H 2 0 11.0592 0 1200 F4H 2 0 11.0592 0 2400 FAH 2 0 11.0592 0 4800 FDH 2 0 11.0592 0 9600 FDH 2 0 11.0592 1 19.2K FFH 2 0 12 1 62.5K 工作方式1和方式3 初值 工作方式 C/T SMOD 波特率 (b/s) 串行口工作方式 定时器T1 fosc MHz 串行口 五、串行口的初始化 在使用串行口之前,必须根据事先约定的通讯协议对其进行初始化,主要包括设置产生波特率的定时器T1,串行口控制和中断控制。具体步骤如下: 1.由晶振频率fosc,串行口的工作方式和波特率,查表9-2,得到定时器的工作方式和初值,以及串行口SMOD的值。 2. 对T1进行初始化。包括设置T1的工作方式(编程TMOD寄存器),装载TL1和TH1,并启动T1。 3. 对串行口进行初始化。包括串行口的工作方式(编程SCON寄存器和PCON寄存器中SMOD位)。 4. 串行口工作在中断方式时,要进行中断初始化设置(编程IE、IP寄存器) 9.5 单片机串行通讯设计 9.5.1 单片机与单片机之间串行通讯 这个任务要求在二块单片机试验板(二个同学一组)之间通过图9-4的接口电路连接实现单片机通讯,利用矩阵式键盘来实现数据输入和发送,具体要求如下:按键K1~K5为发送数据输入键,对应的键值0~4作为发送数据,K6为发送功能键,先由K1~K5确定要发送的数据,按下K6实现发送功能,将要发送的数据发送到另一块单片机试验板将其显示出来。本程序在第八章按键程序的基础上增加了串行通讯程序段组成,程序中的阴影部分指令即为实现串行通讯功能有关的指令。波特率设定为1200b/s,使用串口方式1进行通讯。 串行口初始化步骤如下: 1. 由fosc=6MHz,波特率为1200b/s,串行口工作于方式1,查表9-2,得到T1的工作于方式2,初值为F3H,串行口SMOD位为0。 2. T1初始化。包括设置T1的工作方式为2(编程TMOD寄存器),装载TL1和TH1初值F3H,并启动T1。指令如下: MOV TMOD,#20H ;T1工作于定时工作方式2 MOV TH1,#0f3H ; 装载TH1初值F3H MOV TL1,#0f3H ; 装载TL1初值F3H SETB TR1 ;启动T1 3. 对串行口进行初始化。包括串行口的工作方式1(编程SCON寄存器和PCON寄存器中SMOD位)。 MOV PCON,#00H ;设置SMOD位为0,由于PCON不能位寻址,所以采取字 节方式进行设置。 MOV SCON,#50H ; 设置串行口的工作方式为1。 4. 串行口工作在中断方式,要进行中断初始化设置(编程IE、IP寄存器)。 SETB ES ;开串行口中断 SETB EA ;开总中断 串行口程序流程图 主程序流程图 串行中断子程序 串行口程序流程图 按键子程序 串行口程序清单 编写完整的程序清单如下,程序中30H单元为显示缓冲区,保存需显示的数据,40H为键值暂存单元,41H为列值暂存单元,42H为行值暂存单元,50H单元为接收数据暂存单元。 ORG 0000H AJMP MAIN ORG 0023H ;串行口中断入口地址 AJMP CHKZD ;跳到串行口中断程序 ORG 0050H MAIN: MOV TMOD,#20H ;T1工作于定时工作方式2 MOV TH1,#0f3H ; 装载TH1初值F3H MOV TL1,#0f3H ; 装载TL1初值F3H SETB TR1 ;启动T1

文档评论(0)

1亿VIP精品文档

相关文档