单片机实验七 - 串行口通信

更新时间:2023-10-13 20:11:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验七 串行口通信

一、实验目的:

1、单片机系统中,如果并行口不够用, 可使用未用的串行口进行扩充,实现串行输入并行输出。

2、用单片机串行口实现与单片机和PC机的通信。

3、熟悉XLISP系列 单片机综合仿真试验仪的组成和使用方法。 用XLISP软件和keil-uvision2集成调试软件进行实验并能得到正确的实验结果。 二、实验内容 1、串入并出实验

本实验用74LS164来扩充并行口,并利用74LS164串行口实现8路跑马灯。

2、单片机与单片机之间的双机通信(P204) 用2台单片机用串行口实现双机通信。

(1)甲机P1口接8个键盘,乙机P1口接8个发光二极管。甲机RXD接乙机TXD,乙机RXD接甲机TXD。

(2)甲机发送01H给乙机,乙机接到回复02H。建立联系后甲机选择按键状态并将P1口信息发给乙机,乙机根据甲机发来的信息点亮相应的发光二级管。

发送FF时表示通信结束。 3、思考题

单片机串行口实现与PC机的通信

单片机接收主机的数据,然后将数据传送到P0口, 并传回给主机; 当按下K1时, 单片机发送字串“welcome! www.51c51.com\\n\\r” 给主机 (串口通信速度2400/12MHz晶体)。 三、实验步骤 (一)串入并出实验

本实验用74LS164来扩充并行口,利用74LS164串行口实现8路跑马灯程序。 1、硬件连接:

(1) 用一个2PIN数据排线一端插入CPU部分JP53(P3口)的P3.0,P3.1。另外一端插入74LS164部分的输入端JP20。

(2) 用一根8PIN的数据排线, 一端插入74LS164部分的输出端JP26, 另一端插入8路指示灯的JP32。

四、实验程序 1、参考程序 #include \

unsigned char dat=0xfe; //定义发送数据 void delay1 (unsigned int i); //延时函数声明 main()

{ unsigned char i;

SCON=0x00; //设置串行口工作方式0 while(1)

{ for (i=0;i<8;i++)

{ SBUF=dat; //传送右8位灯 while(!TI); //查询TI TI=0;

//软件给TI清0

SBUF=dat; //传送左8位灯 while(!TI); //查询TI TI=0;

//软件给TI清0

dat<<=1; //数据左移一位 delay1(12000); } } } void delay1(unsigned int t) { int i; for(i=0;i

void delay1(unsigned int t) { int i; for(i=0;i

(二)双机通信参考程序 1、甲机发送程序。

//功能:晶振频率11.0592MHz,工作方式1,波特率为9600

#include void main()

//主函数

{ TMOD=0x20; //设定定时器1的工作方式为方式2 TH1=0xfd; //设置串行口波特率为9600 TL1=0xfd;

SCON=0x50; //设置串行口的工作方式1允许接收

PCON=0x00; TR1=1; while(1)

{ do{SBUF=0x01; //甲机先发送01H给乙机 while(!TI); TI=0;

//发送完毕,TI由软件清0 while(!RI); RI=0; }

while((SBUF^0x02)!=0); //判断是否收到02H do {

SBUF=P1; while(!TI); TI=0;

//把P1口的状态发送给乙机 //查询发送是否完毕 //发送完毕,TI由软件清0 //查询等待接收 //查询发送是否完毕

//接收完毕,RI由软件清0

SBUF=0xff; while(!TI); TI=0;

//发送结束符 //查询发送是否完毕 //发送完毕,TI由软件清0 //查询等待接收

//接收完毕,RI由软件清0

while(!RI); RI=0; }

while((SBUF^0xff)!=0); }

2、乙机接收程序

//判断是否收到应答结束符FFH

//晶振频率11.0592MHz,串行口工作于方式1,波特率为9600 #include void main ()

//主函数

//设定定时器1的工作方式为方式2

{ TMOD=0x20;

TH1=0xfd; //设置串行口波特率为9600 TL1=0xfd;

SCON=0x50; //设置串行口的工作方式1允许接收 PCON=0x00;

TR1=1; //启动定时器 P1=0xff; while(1) { do

//P1口LED全灭

本文来源:https://www.bwwdw.com/article/0l1f.html

微信扫码分享

《单片机实验七 - 串行口通信.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档
下载全文
范文搜索
下载文档
Top