一、实验目的与任务

实验目的:

1.运行Keil开发环境,完成串行口通信软件编程;

2.利用单片机串行口方式1与主机通信,建立Proteus仿真模型。

3.完成系统仿真与调试。。

任务:

1.根据要求编写程序,并写出原理性注释;

2. 将检查程序运行的结果,分析一下是否正确;

3. 完成所建工程的仿真及调试;

4. 将设计程序下载至开发板验证实验结果。

二、实验内容

设计AT89S51单片机的串行口通过RS232通信接口与PC机进行通信,让单片机把接收到的每一帧数据(即PC机发送给单片机的每一帧数据)直接再发送给PC机,收到的字符通过串口在PC 机的串口调试工具上显示出来。(串行口波特率设定为9600Bit/s,晶振11.0592MHz,使用方式1)。

注意:Proteus仿真中,需要利用仿真图中按键SW1,每按下按键一次就会在两个虚拟终端分别显示单片机上发送的一个字符“01”。

三、实验内容

(1)软件实现:

实验步骤:

1.运行Keil uVision5开发环境,按照“模块化单片机教学实验平台配套的实验指导书1.2.3 节”介绍的方法建立程esimlab7. uvproj,CPU 为AT89S51,包含启动文件STARTUP.A51。

2.输入源程序,在Keil uVision5 开发环境中,建立源程序esimlab7.c,将上述程序加入该程序文件。并将该文件加入工程esimlab7.uvproj。

3.设置工程esimlab7. uvproj 属性,将其晶振频率设置为11.0592MHz,选择输出可执行文件(HEX 文件),仿真方式为“Use Simulator”。

4.构造(Build)工程esimlab7.uvproj。如果输入有误进行修改,直至调试正确,生成可执行程序 esimlab7.hex 为止。

图1 串口通信流程图

(2)Proteus仿真:

实验步骤:

1.运行Proteus 开发环境,建立工程,新建原理图设计文件esimlab7.pdsprj,参考图一。

图一 串口通信仿真图(传输字符用按键SW1输入)

2.设置单片机属性,将其晶振频率设置为11.0592MHz,载入KEIL生成的文件esimlab7.hex。

3.启动Proteus仿真,debug菜单选择两个虚拟终端(见图二),鼠标右键单击虚拟终端1,弹出的虚拟终端窗口选中“HEX DISPLAY MODE”(见图三),虚拟终端2设置同前,每次按下按键SW1,就会在两个虚拟终端分别显示单片机上发送的一个字符“01”,运行仿真并观察结果。

图二 虚拟终端VT1和VT2(传输字符用按键SW1输入)

图三 选中“HEX DISPLAY MODE”

(3)开发板实验验证:(本次实验条件所限,此步骤可忽略)

实验步骤:

1.关掉实验箱电源。将CPU板插接在JK1、JK2 上,注意CPU板的插接方向。使用串口线连接PC机和DB9 接口。按照下表连接关系将硬件连接好。

杜邦线连接关系

线序号

线端A插接位置

线端B插接位置

开发板

端子

开发板

端子

S1

MAIN_BOARD

J57/J59:TXD

CPU_51

P2:P3.1

S2

MAIN_BOARD

J57/J59:RXD

CPU_51

P2:P3.0

2.在仿真器断电情况下将仿真器插在 CPU 板的 CPU 插座上。将仿真器与开发 PC 机的 USB 通信口连接好,母板上电。

3.通过PROGISP 烧写软件,利用ISP 下载线(见“模块化单片机教学实验平台配套的实验指导书1.3 节”)把HEX (esimlab7.hex)文件下载到单片机中。

4.运行程序,在通信接收端用串口调试工具观察通信数据。观察结果是否符合程序要求,若不符合,分析出错原因,至结果正确。

四、实验报告

main.c

#include <REGX51.H>sbit SW1 = P3^5;void Delay(unsigned int t)//延时函数
{unsigned char i, j;while(t){i = 2;j = 239;do{while (--j);} while (--i);t--;}
}void send(unsigned char dat){SBUF = dat;//待发送数据写入发送缓冲寄存器while(TI == 0);//串口未发生完,等待;TI = 0;//1个字节发送完毕,等待
}
void main(){unsigned char i = 01;TMOD &= 0x0F;        //清除定时器1模式位TMOD |= 0x20;       //设定定时器1为8位自动重装方式PCON = 0x00;      //波特率不倍速SCON = 0x40;       //8位数据,可变波特率TL1 = 0xFD;        //设定定时初值TH1 = 0xFD;        //设定定时器重装值TR1 = 1;     //启动定时器1while(1){if(SW1 == 0){send(i);Delay(200);}}
}

通过本次实验,练习了串口通信编程,熟练掌握了方式1的使用,同时锻炼了Keil仿真调试的能力。

串口以方式1输出时,数据位由TXD端输出,发送一帧信息为10位,包括一位起始位0,8位数据位,1位停止位1,当CPU执行写数据到发送缓冲器SBUF的命令后,就启动发送。

在工业现场的测控系统中,常使用单片机进行监测点的数据采集,然后单片机通过串口与PC通信,把采集的数据串行传送到PC上,再在PC上进行数据处理。PC配置的都是RS-232标准串口,为“D”型9针插座,输入/输出为RS-232电平。由于两者电平不匹配,因此必须把单片机输出的TTL电平转换为RS-232电平。

实验(七):串行口实验相关推荐

  1. 单片机 串行口实验解数据流怎么到发光二极管来显示的

    [斯鹭]徐良军利用8031单片机串行口,实现与PC机通讯.本实验实现以下功能,将从实验机键盘上键入的数字,字母显示到PC机显示器上,将PC机键盘输入的字符(0-F)显示到实验机的数码管上.二.实验目的 ...

  2. 串行口实验 编写程序利用PC机控制单片机实验板上的数码管设备工作

    编写程序利用PC机控制单片机实验板上的数码管设备工作 在pc上输入fe,第一个数码管显示1. 在pc上输入fa第五个数码管显示5 程序: #include<reg51.h> #define ...

  3. <微机原理>[汇编语言]-[实验七]数码管动态显示实验

    系列文章目录 实验一 软件开发环境和简单程序设计 实验二 I_O输入输出实验 实验三 键盘扫描显示实验 实验四 中断实验 实验五 定时器实验 实验六 串行口实验 实验七 数码管动态显示实验 实验八 矩 ...

  4. 计算机组成原理实验串行口,计算机组成原理实验2.ppt

    文档介绍: 计算机组成原理实验(二) 第六章 FD-CES实验台功能模块介绍 6.1 前言 6.6 总线缓冲模块 6.2 运算器模块 6.7 微程序控制模块 6.3 寄存器堆模块 6.8 启停和时序模 ...

  5. 单片机实验汇编案例---单片机串行口与PC机通讯实验

    一.实验要求 利用8031单片机串行口,实现与PC机通讯. 本实验实现以下功能,将从实验机键盘上键入的数字,字母显示到PC机显示器上,将PC机键盘输入的字符(0-F)显示到实验机的数码管上. 二.实验 ...

  6. 51单片机学习 串行口通信实验

    文章目录 一.实验目的 二.原理 三.实验内容 一.实验目的 掌握串行口工作方式的程序设计,掌握单片机通信程序设计方法. 二.原理 发送指令:MOV SBUF,A 接收指令:MOV A,SBUF 1. ...

  7. 俩个PC机通过串行口互联,实现件的无差错传输。程序必须用中断方式来完成任务

      课程设计(论文)任务书 一.设计题目:1.题目名称      PC机通过串行口互联 2.题目来源               二.目的和意义 俩个PC机通过串行口互联,实现件的无差错传输.程序必须 ...

  8. RS-232串行口连接线 com口连接线 并口链接线 双绞线 交叉线 直连线

    通过串口并口共享资源在两台计算机之间进行通信,最好的方法当然是建立局域网.如果没有建立网络, 又想进行联机通信,在距离不太远(比如不超过20米)的情况下,可考虑通过计算机的并 行口或RS-232串行口 ...

  9. 微机接口串行口的测试

    要求 运用微机系统串行口知识,进行微机系统串行偶的测试:完成硬件测试环境,编写程序对微机系统的串口进行自发自收外环测试:数据发送从键盘输入,接收数据在屏幕显示. 硬件 实验前,首先要进行串口的连接以实 ...

最新文章

  1. iBatis的CRUD操作详细总结
  2. mha如何管理多套mysql集群_Mysql 集群高可用方案 MHA
  3. iview的select联动_iview2 之select二级联动细谈
  4. go 服务器 源码,LollipopGo开源游戏服务器框架--global服务器源码
  5. py3下怎么用StringIO
  6. iOS - OC NSFileManager 文件管理
  7. 模拟SAP ALV下载XLSX文件
  8. 戴尔DELLEMC服务器重装CentOS 7系统
  9. Halcon如何创建或生成空白的,全黑或全白的8位图和24位图
  10. Ubuntu-18.04 安装 ROS 系统
  11. 2022面试Android之单例模式
  12. [raspberry]树莓派无线鼠标延迟问题
  13. 谷歌拼音输入法PinyinIME源码修改----随着Setting中中英文的切换对应改变软键盘中英文输入且字符变换
  14. 干货 |如何优雅的在手机上进行Python编程
  15. windows 8 照片详解
  16. 【调度】经典作业车间调度问题VS柔性作业车间调度问题
  17. python自动收取蚂蚁森林能量_通过测试工具自动收取蚂蚁森林能量
  18. Camtasia Studio2023新功能及下载安装使用教程
  19. 简历应该怎么写,HR看一篇简历仅需要5秒吗,简历模板大全
  20. java计算机毕业设计养老院管理系统源码+系统+数据库+lw文档

热门文章

  1. 华三通用性能服务器,高水平通过国家级实验室多项标准化评测 新华三服务器树立企业计算新标杆...
  2. CF 1642 E. Anonymity Is Important 线段树 + 离线
  3. 一本通 1270:【例9.14】混合背包(混合背包模板题)
  4. 成都市等市、州 《2015工程量清单计价定额》 人工费调整〔2016〕17
  5. When I ...
  6. java进销存管理系统源码
  7. 为何物联网APP软件开发会大火?
  8. NOVA——更快接入创意世界的桥梁
  9. 微信小程序实现音频播放
  10. 通过sqlplus连接数据库服务器很慢的问题