双机串口通信实验(串行通信与并行扩展)
实验报告
学号: 姓名:
一、 实验目的
利用单片机的串行口输出数据,掌握单片机串行通信的特点。
二、 实验原理
1. 甲、乙双机进行双机串行通信,双机的RXD和TXD相互交叉相连,甲机的P1口接8个开关K1~K8,乙机的P1口接8个发光二极管D1~D8,用已机接收数据并用LED显示开关状态。实验原理图如下:
U119XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD39383736353433322122232425262728101112131415161718XTAL29RST293031PSENALEEAD9R1LED-BLUED10R212345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.780C51LED-BLUED11R3LED-BLUED12R4LED-BLUED13R5U219XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617R6LED-BLUED14D15R718XTAL2LED-BLUE9RSTLED-BLUED16R8293031LED-BLUEPSENALEEAR1R2R3R4R5R6R7R812345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.780C51 图1单片机的串行口通讯控制LED灯
2. 从16位扩展口读入4组数据(每组28)并存入内部RAM缓存区。
实验原理图如下:
图2 用两片74LS165扩展两个8位并行输入接口
三、 实验内容
1. 要求甲机读入P1口的8个开关的状态后,通过串行口发送到乙机,乙机将接收到的甲机的8个开关的状态数据送入P1口,由P1口的8个发光二极管来显示8个开关的状态。双方晶振频率均为11.059MHz。
2. 用74LS151从16位扩展口读入4组数据(每组28)并存入内部RAM缓存区
四、 实验流程图
程序初始化读取 开关状态甲机发送数据已机判断是否接收到数据已机接收数据控制LED灯亮灭循环延时
五、 实验总结
1. 串行口以方式1输出时,数据位由TXD端输出,发送一-帧信息为 10位, 位起始位0,8位数据位 (先低位)和1位停止位1。当CPU执行写数据到发送缓冲器 SBUF的命令后,就启动发送。
2. 接收时,定时控制信号有两种,一种是接收移位时钟 (RX时钟),它的频率和传送的波特率相同:另一种是位检测器采样脉冲,它的频率是RX时钟的16倍。也就是在1位数据期间,有16个采样脉冲,以波特率的16倍速率采样RXD引脚状态。当采样到RXD端从1到0的负跳变(有可能是起始位)时,就启动接收检测器。接收的值是3次连续采样(第7、8、9个脉冲时采样),取其中两次相同的值,以确认是否是真正起始位(负跳变)的开始,这样能较好地消除干扰引起的影响,以保证可靠无误地开始接收数据。