|
实验原理与内容 1. 原理 8051单片机内部有一个全双工的串行通信口,即串行接收和发送缓冲器(SBUF),这两个在物理上独立的接收发送器,既可以接收数据也可以发送数据。但接收缓冲器只能读出不能写入,而发送缓冲器则只能写入不能读出。这个通信口既可以用于网络通信,亦可实现串行异步通信,还可以构成同步移位寄存器使用。如果在串行口的输入输出引脚上加上电平转换器,就可方便地构成标准的RS-232接口。
2. 内容 单片机与微机相连,使用中断方法实现8051单片机与微机的串口通信。微机键入一个字符后发送至单片机,单片机收到后又将此字符发送回微机,在微机屏幕上回显。要求在11.0592MHZ下,串行口的波特率为9600,方式1。
|
实验设备与软件环境 1.STC89C52RC单片机开发板: 2.KEIL软件开发: 3.stc-isp-v4.80-not-setup 4.Proteus7.7_SP2仿真软件
|
实验过与结果(可贴图) 1.代码 #include <reg51.h> #include <intrins.h>
void INIT_SCI() { SCON=0X50; //串口初始化 ES=1; //允许串口中断 EA=1; //开中断 }
void INIT_TMR() { TMOD=0X20; //定时器初始化 TH1=0xfd; TL1=0xfd; TR1=1; } void serial_int(void) interrupt 4 { unsigned char data c; if (_testbit_(RI)) //接收中断服务 { c=SBUF; SBUF=c; } }
void main(void) { INIT_TMR(); INIT_SCI(); while(1); }
|
操作异常问题与解决方案 1.代码错误:检查代码,改正
|
实验总结 通过本次的实验,在前两个实验的基础上让我复习了知识点,也让我在次掌握了新的知识。在完成这次实验后,懂得了这个通信口既可以用于网络通信,亦可实现串行异步通信,还可以构成同步移位寄存器使用。如果在串行口的输入输出引脚上加上电平转换器,就可方便地构成标准的RS-232接口。 |