第九章串行通信解剖.pptVIP

  • 4
  • 0
  • 约4.28千字
  • 约 48页
  • 2016-12-22 发布于湖北
  • 举报
二、方式1 8位数据异步通信方式。 字符帧10位。 1位起始位(低)、8位数据位(D0~D7)、1位停止位(高) 三、方式2、方式3 9位数据异步通信方式。 字符帧11位: 1位起始位(低)、8位数据位(D0~D7)、 1位控制位/校验位、1位停止位(高) 串行口工作之前,应进行初始化,具体步骤如下: 确定波特率; 确定T1的工作方式(编程TMOD寄存器); 计算T1的初值,装载TH1、TL1; 确定串行口控制(编程SCON、PCON寄存器); 启动T1(编程TCON中的TR1位); 若串行口在中断方式工作时,要进行中断设置 (编程IE、IP寄存器)。 1 T 甲机的P1口分别接8个开关,读取开关状态并发送出去; 乙机的P1口分别接8个LED指示灯,用来显示从串行口接收的数据。 波特率为1200bps,晶振fosc=6MHz。 实验内容 START: MOV TMOD,#20H MOV TL1,#0F3H MOV TH1,#0F3H MOV PCON,#00H MOV SCON,#40H SETB TR1 LOOP2: MOV A,P1 MOV SBUF,A LOOP1: JNB TI,LOOP1 CLR TI SJMP LOOP2 START: MOV TMOD,#20H MOV TL1,#0F3H MOV TH1,#0F3H MOV PCON,#00H MOV SCON,#50H SETB TR1 LOOP1: JNB RI,LOOP1 CLR RI MOV A,SBUF MOV P1,A SJMP LOOP1 ORG 0000H SJMP START ORG 0023H SJMP SJIE START: MOV TMOD,#20H MOV TL1,#0F3H MOV TH1,#0F3H MOV PCON,#00H MOV SCON,#50H SETB EA SETB ES SETB TR1 SJMP $ SJIE: CLR RI MOV A,SBUF MOV P1,A RETI END 乙机接收程序:中断方式 例题 甲、乙双机串行通信,甲机将片内30H~3FH单元的数据发送给乙机,乙机将接收到的数据保存到片内40H开始的单元。 波特率为1200bps,晶振频率fosc=12MHz,方式1(8位数据异步通信方式)。 由于选择的是方式1,波特率由定时/计数器T1的溢出率和电源控制寄存器PCON中的SMOD位决定。则须对定时/计数器T1初始化。 设SMOD=0,甲、乙两机的振荡频率为12MHz,由于波特率为1200bps。定时/计数器T1选择为方式2,则初值为: 初值=256-fosc×2SMOD /(12×波特率×32) =256-12,000,000/(12×1200×32) ≈230 =E6H 根据要求定时/计数器T1的方式控制字为20H。 甲机的发送程序: TSTART:MOV TMOD, #20H MOV TL1, #0E6H MOV TH1, #0E6H MOV PCON, #00H MOV SCON, #40H MOV R0, #30H;首地址 MOV R7, #10H;个数 SETB TR1 LOOP: MOV A, @R0 MOV SBUF, A WAIT: JNB TI, WAIT CLR TI INC R0 DJNZ R7, LOOP SJMP $ END 乙机接收程序: RSTART:MOV TMOD, #20H MOV TL1, #0E6H MOV TH1, #0E6H MOV PCON, #00H MOV R0, #40H;首地址

文档评论(0)

1亿VIP精品文档

相关文档