实验四 串行口实验.docVIP

  • 94
  • 0
  • 约2.02千字
  • 约 3页
  • 2019-10-12 发布于山东
  • 举报
实验四 串行口实验 ———单机实验 一、实验目的: 掌握8031串行口方式1的工作方式及编程方法。 掌握串行通讯中波特率的设置。 在给定通讯波特率的情况下,会计算定时时间常数。 二、实验设备: EL-MUT-III型单片机实验箱、8051CPU模块 三、实验原理 MCS-51单片机串行通讯的波特率随串行口工作方式选择的不同而不同,它除了与系统的振荡频率f,电源控制寄存器PCON的SMOD位有关外,还与定时器T1的设置有关。 在工作方式0时,波特率固定不变,仅与系统振荡频率有关,其大小为f/12。 在工作方式2时,波特率也只固定为两种情况: 当SMOD=1时, 波特率=f/32 当SMOD=0时, 波特率=f/64 在工作方式1和3时,波特率是可变的: 当SMOD=1时, 波特率=定时器T1的溢出率/16 当SMOD=0时, 波特率=定时器T1的溢出率/32 其中,定时器T1的溢出率=f/(12*(256-N)),N为T1的定时时间常数。 在实际应用中,往往是给定通讯波特率,而后去确定时间常数。例如:f=6.144MHZ,波特率等于1200,SMOD=0时,则1200=6144000/(12*32*(256-N)),计算得N=F2H。 例程中设置串行口工作于方式1,SMOD=0,波特率为1200。 循环彩灯的变化花样与实验六相同。也可自行设计变化花样。 四、实验题目 利用8031串行口发送和接收数据,并将接收的数据通过扩展I/O口74LS273输出到发光二极管显示,结合延时来模拟一个循环彩灯。 五、实验连线: 8031的TXD接RXD;74LS273的CS273接CS0;O0~O7接发光二极管的L1~L8; 六、程序名称:T12.asm NAME T12 ;串行口实验 CSEG AT 0000H LJMP START CSEG AT 4100H PORT EQU 0CFA0H START: MOV TMOD, ( ? ) ; 问题1、选择定时器模式2,计时方式 MOV TL1, ( ? ) ; 问题2、预置时间常数,波特率为1200 MOV TH1, ( ? ) ; MOV 87H, ( ? ) ; 问题3、PCON=00,使SMOD=0 SETB ( ? ) ; 问题4、启动定时器1 MOV SCON, ( ? ) ; 问题5、串行口工作于方式1,允许串行接收 MOV R1,#12H ;R1中存放显示计数值 MOV DPTR,#TABLE MOV A,DPL MOV DPTR,#L1 CLR C SUBB A,DPL ;计算偏移量 MOV R5,A ;存放偏移量 MOV R0,A SEND: MOV A,R0 MOVC A,@A+PC ;取显示码 L1: MOV SBUF,A ;通过串行口发送显示码 WAIT: JBC RI,L2 ;接收中断标志为0时循环等待 SJMP WAIT L2: CLR RI ;接收中断标志清零 CLR TI ;发送中断标志清零 MOV A,SBUF ;接收数据送A MOV DPTR,#PORT MOVX @DPTR,A ;显码输出 ACALL DELAY ;延时0.5秒 INC R0 ;偏移量下移 DJNZ R1,SEND ;为零,置计数初值和偏移量初值 MOV R1,#12H MOV A,R5 MOV R0,A JMP SEND TABLE: DB 01H, 03H, 07H, 0FH, 1FH, 3FH,7FH,0FFH,0FEH DB 0FCH,0F8H,0F0H,0E0H,0C0H,80H,00H,0FFH,00H DELAY: 问题6 编写一延时0.3秒子程序 END 问题7试用

文档评论(0)

1亿VIP精品文档

相关文档