单片机8051A串行通讯

单片机8051A串行通讯

ID:38621053

大小:261.50 KB

页数:7页

时间:2019-06-16

单片机8051A串行通讯_第1页
单片机8051A串行通讯_第2页
单片机8051A串行通讯_第3页
单片机8051A串行通讯_第4页
单片机8051A串行通讯_第5页
资源描述:

《单片机8051A串行通讯》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、8051A串行通讯一、实验要求利用8088/86CPU控制8251A可编程串行通讯控制器,实现两个实验台之间的串行通讯。其中一个实验台作为发送方。发送方读入按键值,并发送给接收方,接收方收集到数据后在LED上显示。二、实验目的1、掌握8088/86实验串行口通讯的方法。2、了解实现串行通讯的硬件环境、数据格式的协议、数据的交换的协议。3、学习串行口通讯程序编写方法。三、实验电路1、显示电路如图1所示图1:显示电路2、键盘电路如图2所示图2:键盘电路3、实验连接方法如图3所示图3:实验的连接图及方法四、实验说明1、8088/86CPU通过外接的8251可

2、编程串行控制器实现串口通信。通过8251的控制口写入其工作方式或读入当前状态,通过数据口发送或接受串行口数据。本实验是通过查询方式和输入输出串行数据。2、通讯双方的RXD、TXD信号本应经过电平转换后再进行交叉相连,本实验中为减少连线可将电平转换电路略去,而将双方的RXD、TXD直接交叉连接。也可以将本机的TXD接到RXD,这样按下的键就会在本机的LED上显示。3、若想与标准的RS232设备通信,就要做电平转换,输出时将TTL电平换成RS232电平,输入时要将RS2332电平换成TTL电平。可以将仿真板上的RXD、TXD信号接到实验板上的“用户串行楼接

3、线”的相应RXD和TXD端,经过电平转换,通过“用户串口”接到外部的RS232设备。4、将分频器的Fin接到4MHz脉冲发生器,就可以得到1MHz和250KHz脉冲。五、实验框图主程序六、实验程序如下所示#defineLEDLen6#defineIN_KEY0x8001#defineOUTBIT0x8002#defineOUTSEG0x8004#defineCS8251D0xd000#defineCS8251C0xd001externunsignedcharIN(unsignedintport);externvoidOUT(unsignedintpor

4、t,unsignedcharv);unsignedcharLEDBuf[LEDLen];/*显示缓冲*/unsignedcharconstLEDMAP[]={/*八段管显示码*/0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};unsignedcharconstKeyTable[]={/*键码定义*/0x16,0x15,0x14,0xff,0x13,0x12,0x11,0x10,0x0d,0x0c,0x0b,0x0a,0x0e,0x03,0x

5、06,0x09,0x0f,0x02,0x05,0x08,0x00,0x01,0x04,0x07};voidDelay(unsignedcharCNT){unsignedchari;while(CNT--!=0)for(i=100;i!=0;i--);}voidDisplayLED(){unsignedchari,j,k;unsignedcharPos;unsignedcharLED;Pos=0x20;/*从左边开始显示*/for(i=0;i

6、TSEG,LED);OUT(OUTBIT,Pos);/*显示一位八段管*/Delay(1);Pos>>=1;/*显示下一位*/}}unsignedcharTestKey(){OUT(OUTBIT,0);/*输出线置为0*/return(~IN(IN_KEY)&0x0f);/*读入键状态(高四位不用)*/}unsignedcharGetKey(){unsignedcharPos;unsignedchari;unsignedcharj;unsignedchark;i=6;Pos=0x20;/*找出键所在列*/do{OUT(OUTBIT,~Pos);Pos>

7、>=1;k=~IN(IN_KEY)&0x0f;}while((--i!=0)&&(k==0));/*键值=列X4+行*/if(k!=0){i*=4;if(k&2)i+=1;elseif(k&4)i+=2;elseif(k&8)i+=3;OUT(OUTBIT,0);doDelay(10);while(TestKey());/*等键释放*/return(KeyTable[i]);/*取出键码*/}elsereturn(0xff);}voidIInit(){OUT(CS8251C,0x4f);/*1停止位,无校验,8数据位*/OUT(CS8251C,0x15

8、);/*清错误标志,允许接收发送*/}voidSend(unsignedcharTBuf){u

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。