基于51单片机的双机通信仿真设计

目录

  • 一、题目要求
  • 二、硬件设计说明
  • 三、功能说明
  • 四、软件设计说明
  • 附:[Proteus仿真+keil代码+分析文档.rar](https://download.csdn.net/download/alongiii/14020321)

一、题目要求

使用51单片机实现双机通信,T1作为波特率发生器,使用工作模式1,(p197)中断实现,在keil上进行软件部分编程,在PROTEUS上仿真实现。要求如下:
1、单片机1发送一个周期的正弦波采样值至单片机2,通过按键选择频率,该按键使用定时器T0计数方式中断实现;
2、单片机2收到单片机1发的数据,用1602LCD显示所接受的字节数,同时回送应答信号(字节数)。单片机2使用定时器T0在P1.0以PWM方式连续输出接收的正弦波,中断方式实现,接有源RC滤波器,虚拟示波器显示波形;
3、单片机1收到应答信号后,用一位数码管显示收到单片机2的应答,通信成功。
4、可自定义更多功能,系统功能越复杂,作业得分越高。

二、硬件设计说明

Proteus仿真电路图总电路图如下:
本系统核心部件两个为AT89C51。AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称51单片机。

系统左方电路如上图:单片机1。
单片机1由外部晶振电路、复位电路、P0口上拉电阻、矩阵键盘和4位7段动态数码管构成。
矩阵键盘与单片机1的P0口相连。使用者按下矩阵键盘,系统通过P0口数据的变化来读取相应的键值,设定不同的采样间隔。
4位7段动态数码管用于显示接收到的单片机2发送过来的数据。

系统左上方电路如上图:单片机2。
单片机2由外部晶振电路、复位电路、P0口上拉电阻、LCD1602、一阶有源低通滤波电路和二阶有源低通滤波电路构成。
LCD1602与单片机1的P0口相连。LCD1602用于显示接收到的单片机1发送过来的数据的字节数。
在P1.0以PWM方式连续输出接收的正弦波,有源RC滤波器虚拟示波器显示波形。 示波器通道A接P1.0,示波器通道B接一阶有源滤波电路,示波器通道C接二阶有源滤波电路
元器件清单
元器件名称 功能说明 数量
AT89C51 微处理器 2
7SEG-MPX4-CC 4位7段共阴动态数码管 1
CAP 电容 7
CAP-ELEC 电解电容 2
CRYSTAL 晶振 2
LM016L LCD1602 1
OPAMP 运算放大器 2
BUTTON 按钮 18
RES 电阻 10
RESPACK-8 排阻 1

三、功能说明

本系统的功能是:通过按一下单片机1的按键,识别按键所代表的数字,对正弦信号进行相应的数据采样,然后单片机1将采样值发送给单片机2,单片机2用count进行计数,记录单片机1发送了多少个字节的数据。单片机1数据发送完毕后,单片机2将数据用LCD1602显示,并将数据发送给单片机1。单片机1接收到单片机2的数据,用4位7段共阴动态数码管显示。单片机2根据不同在采样值,使用定时器T0在P1.0以PWM方式连续输出不同采样值的正弦波,P1.0后接有源RC滤波器,虚拟示波器显示波形。

按键 一个正弦周期采样值 LCD1602显示 数码管显示
K0 15 015 015
K1 20 020 020
K2 25 025 025
K3 30 030 030
K4 35 035 035
K5 40 040 040
K6 45 045 045
K7 50 050 050
K8 55 055 055
K9 60 060 060
K10 65 065 065
K11 70 070 070
K12 75 075 075
K13 80 080 080
K14 85 085 085
K15 90 090 090
运行仿真示例:
运行仿真

按下K3

四、软件设计说明

软件设计部分利用keil软件实现C51语言程序的编写和编译。
单片机1的C51程序:delay延时函数、按键扫描函数、正弦信号数组初始化函数、串口初始化函数、定时器0初始化函数、串口发送字节函数、主函数和定时器0中断函数构成。主函数中调用了按键扫描函数、正弦信号数组初始化函数、串口初始化函数、定时器0初始化函数和串口发送字节函数。在得到键值后,确定采样值,然后置P37=0单片机1开始发送数据给单片机2,发送完毕后置P37=1,在P36=0时,开始接收单片机2的数据。最后将数据送到数码管显示。
单片机2的C51程序:delay延时函数、LCD写入数据函数、LCD写入命令函数、LCD初始化函数、正弦信号数组初始化函数、串口初始化函数、串口发送一个字节函数、定时器0初始化函数、主函数和定时器T0中断函数构成。主函数中进行串口初始化、LCD初始化和定时器0初始化。然后等待P37=0(P37=0即单片机1开始发送数据),单片机2在接收完成一次,count记一次数。最后得到单片机1发送了多少个字节数,count也就是发送了多少个采样值。得到count之后,用LCD1602显示所接收的字节数count。同时,取同样数量的正弦信号采样值count在P1.0以PWM方式连续输出。
系统通过单片机1程序和单片机2程序的相互配合,协调合作。在按下不同按键后,使LCD1602和数码管显示出采样值,同时在P1.0口以PWM方式连续输出正弦信号。

附:Proteus仿真+keil代码+分析文档.rar

https://download.csdn.net/download/alongiii/14020321

51单片机实现的双机通信设计仿真相关推荐

  1. 基于51单片机的单电源函数信号发生器设计仿真原理图方案

    系统硬件设计 系统框图如图3-1所示 原理图 仿真图 DAC0832芯片原理 这里采用DAC0832与单片机89C51的典型的单缓冲方式接口电路.ILE接高电平,/WR1和/WR2相连后接89C51的 ...

  2. 51单片机的电子密码锁的设计与仿真

    51单片机的电子密码锁的设计与仿真 看看效果图 简介 (1)CPU使用51单片机. (2)用4x4矩阵键盘作为操作信息输入. (3)用LCM1602液晶显示模块作为信息显示. (4)用蜂鸣器及发光二极 ...

  3. 【011】基于51单片机的低频信号发生proteus仿真与实物设计

    ​一.资料内容 (1).基于51单片机的低频信号发生proteus仿真设计一份: (2).基于51单片机的低频信号发生proteus仿真设计keli源代码一份: (3).基于51单片机的低频信号发生A ...

  4. 基于51单片机PT100热电偶AD转换protues仿真设计

    基于51单片机PT100热电偶AD转换protues仿真设计 (源码+仿真) 仿真原版本:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0023 这里写 ...

  5. 基于51单片机的LCD1602电子钟闹钟proteus仿真设计

    本设计是基于51单片机的LCD1602电子钟闹钟proteus仿真设计 源码+仿真+原理图+器件清单 仿真软件版本:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 编 ...

  6. 基于51单片机的自动售货机Proteus仿真(源码+仿真+设计报告)

    资料编号:137 视频讲解: 137-基于51单片机的自动售货机Proteus仿真(源码+仿真+设计报告) 功能介绍: 基本原理:通过矩阵键盘来选择货物的种类与数量过后自动售货机提示投币.自动售货机的 ...

  7. 【004】基于51单片机的音乐播放器proteus仿真设计

    一.压缩包资料内容(私信获取) (1).基于51单片机的音乐播放器proteus仿真设计一份: (2).基于51单片机的音乐播放器proteus仿真设计keli源代码一份: (3).基于51单片机的音 ...

  8. 基于51单片机的花样流水灯设计(源码+仿真+设计报告)

    资料编号:113 采用51单片机的IO控制多个LED灯,实现多种模式的流水风,全套资料齐全:具体功能请看下方演示视频 113-基于51单片机的花样流水灯设计(源码+仿真+设计报告) 单片机最小系统介绍 ...

  9. 基于51单片机甲醛浓度检测系统仿真设计(仿真+程序+原理图+报告+讲解)

    文章目录 资料下载(可点击) 功能说明 仿真图 复位电路 晶振电路 程序 原理图: 设计报告: 器件清单: 基于51单片机甲醛浓度检测系统仿真设计(仿真+程序+原理图+报告+讲解) 原理图:Altiu ...

最新文章

  1. asp.net2.0导出pdf文件完美解决方案【月儿原创】
  2. 2011计算机2级,全国计算机等级考试四合一过关训练:2级C语言程序设计(2011版)...
  3. 使用结构化的标头字段改善HTTP
  4. go语言api源码中文版_Go语言学习——sync.map源码剖析
  5. jeecg-easypoi-2.0.3版本发布
  6. RSync服务器配置
  7. 布局时margin会影响父元素
  8. 那家CTO带头喊麦的直播公司,快要倒闭了
  9. mysqldump全量+增量备份
  10. MySQL—SQL优化笔记整理
  11. 电脑硬件故障排除经验
  12. 一个老程序员的忠告:千万不要一辈子靠技术生存
  13. 计算机开机后桌面放大,开机后桌面图标变大 桌面图标变大了怎么处理?
  14. 腾讯两大社交巨头败了, 瓦次普才是社交APP的真霸主, 用户比微信多5亿
  15. 最简单的视频编码器(一)---libx264
  16. 12306登录python_基于Python3的12306登录实现
  17. 资产实物综合管理系统应用方案介绍
  18. Task启动,暂停,继续,结束
  19. 搭建实验室多人共用服务器
  20. 拼多多高转化率的自定义直通车怎么开?帮你日销500单

热门文章

  1. python 服从正态分布下概率密度函数
  2. MATLAB根据正态分布样本计算概率密度函数,生成服从样本正态分布的随机数
  3. 在Ubuntu 16.04上安装和配置VNC
  4. 常用linux 命令 -网络相关
  5. pyecharts 十种图形演示
  6. yocto 基本概念
  7. 三分钟快速了解typeScript接口
  8. 点星PBX(DotAsterisk)单台讯时MX100G-4E1数字中继网关同时混合接入电信、移动双运营商线路教程
  9. python 操作键盘,鼠标 。我这个是自动企业微信加好友的,源码可以修改成别的。挺好使!
  10. 2021-03-22