实验6___串行口通讯实验.doc

上传人:ng****60 文档编号:3181415 上传时间:2019-05-24 格式:DOC 页数:5 大小:100KB
下载 相关 举报
实验6___串行口通讯实验.doc_第1页
第1页 / 共5页
实验6___串行口通讯实验.doc_第2页
第2页 / 共5页
实验6___串行口通讯实验.doc_第3页
第3页 / 共5页
实验6___串行口通讯实验.doc_第4页
第4页 / 共5页
实验6___串行口通讯实验.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、实验 6 串行口通讯实验学号 201017819 姓名 蔡鹏 实验目的1、掌握单片机串行口工作方式的程序设计,及简易三线式通讯的方法。 2、了解实现串行通讯的硬环境、数据格式的协议、数据交换的协议。 3、学习串口通讯的中断方式的程序编写方法实验内容利用单片机串行口, 实现两个实验台之间的串行通讯。 其中一个实验台作为发送方,另一侧为接收方。发送方读入按键值,并发送给接收方,接收方收到数据后在 LED 上显示。实验说明1、8051 的 RXD、TXD 接线柱在 POD51/96 仿真板上。2、通讯双方的 RXD、TXD 信号本应经过电平转换后再行交叉连接,本实验中为减少连线可将电平转换电路略去,

2、而将双方的 RXD、TXD 直接交叉连接。也可以将本机的 TXD接到 RXD 上,这样按下的键,就会在本机 LED 上显示出来。实验仪器和设备计算机和 LAB2000P 实验箱。所写程序和调试心得(请画出程序流程图和硬件连线图):1. 程序流程图:2. 硬件连线图:3. 程序:#include #define LEDLen 6 xdata unsigned char OUTBIT _at_ 0x8002; / 位控制口xdata unsigned char OUTSEG _at_ 0x8004; / 段控制口xdata unsigned char IN _at_ 0x8001; / 键盘读入口

3、unsigned char LEDBufLEDLen; / 显示缓冲unsigned char RcvBuf; / 接收缓冲bit HasRcv = 0; / 接收标志code unsigned char LEDMAP = / 八段管显示码0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71 ; void SerialIO0() interrupt 4 if(RI) RI = 0; RcvBuf = SBUF; HasRcv = 1; else TI = 0;

4、 void Delay(unsigned char CNT) unsigned char i; while (CNT- !=0) for (i=100; i !=0; i-); void DisplayLED() unsigned char i, j; unsigned char Pos; unsigned char LED; Pos = 0x20; / 从左边开始显示for (i = 0; i = 1; / 显示下一位 code unsigned char KeyTable = / 键码定义0x16, 0x15, 0x14, 0xff, 0x13, 0x12, 0x11, 0x10, 0x0

5、d, 0x0c, 0x0b, 0x0a, 0x0e, 0x03, 0x06, 0x09, 0x0f, 0x02, 0x05, 0x08, 0x00, 0x01, 0x04, 0x07 ; unsigned char TestKey() OUTBIT = 0; / 输出线置为 0return (IN / 读入键状态 (高四位不用)unsigned char GetKey() unsigned char Pos; unsigned char i; /unsigned char j; unsigned char k; i = 6; Pos = 0x20; / 找出键所在列do OUTBIT = Po

6、s; Pos = 1; k = IN while (-i != 0) / 键值 = 列 X 4 + 行if (k != 0) i *= 4; if (k else if (k else if (k OUTBIT = 0; do Delay(10); while (TestKey(); / 等键释放return(KeyTablei); / 取出键码 else return(0xff);void main() IE = 0x00; / DISABLE ALL INTERRUPT TMOD = 0x20; / 定时器 1 工作于方式 2 (8 位重装)TH1 = 0xF3; / 2400BPS 12

7、MHz TL1 = 0xF3; PCON / SMOD 位清零SCON = 0x50; / 串行口工作方式设置LEDBuf0 = 0xff; LEDBuf1 = 0xff; LEDBuf2 = 0xff; LEDBuf3 = 0xff; LEDBuf4 = 0x00; LEDBuf5 = 0x00; TR1 = 1; ES = 1; EA = 1; HasRcv = 0; while (1) if(HasRcv) LEDBuf5 = LEDMAPRcvBuf DisplayLED(); if (TestKey() SBUF = GetKey(); 实验心得通过本次试验,了解了串行口工作的特点,掌握单片机串行口工作方式的程序设计,及简易三线式通讯的方法。 并了解实现串行通讯的硬环境、数据格式的协议、数据交换的协议。而且基本掌握串口通讯的中断方式的程序编写方法

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。