内容正文:
任务一 双机通信(2)
单片机技术及应用
同步精品课堂
高等教育出版社第 4 版
1
掌握双机通信的电路搭建和编程实现
学会使用相关软件和硬件工具进行项目开发
了解双机通信中差错检测和可靠传输的原理
能够完成双机通信的仿真调试和功能验证
双机通信电路原理图的绘制和电路搭接
双机通信程序的编写和调试
理解双机通信中数据的发送和接收过程
解决双机通信中可能出现的通信故障
在当今的电子设备中,设备之间的通信至关重要。双机通信作为一种常见的通信方式,广泛应用于各种领域。
今天我们将通过一个具体的项目,学习双机通信的实现方法。
任务一 双机通信 - 任务准备
① 软件:Protel DXP 2004、Proteus 7.4、Keil uVsion2、EasyPRO Programmer、流程图绘制软件。
② 硬件:计算机 1 台、编程器 1 台、独立键盘模块 1 块、LED 灯控电路板 1 块、最小系统电路板 2 块、杜邦线 1 条、电池盒 1 个。
工具与材料准备
① 穿好工作服,戴好防静电手环,穿绝缘胶鞋。
② 清洁工作台面,清理工作区域,工具、仪器仪表摆放整齐有序。
工作准备
任务一 双机通信 - 任务实施
在甲机的 P1.0 端口接按键开关,乙机的 P1.0 端口接发光二极管,双机通信电路原理图如图所示。
绘制双机通信电路原理图
任务一 双机通信 - 任务实施
根据双机通信电路原理图,使用最小系统电路板、独立按键模块、灯控电路板搭接电路。
搭接电路
任务一 双机通信 - 任务实施
① 启动流程图绘图软件 Diagram Designer,新建一个文件,文件名为 “双机通信流程图.DDD”,设置图纸大小为 A4。
② 从右侧的标准框图符号库中拖取所需的框图符号,调整其大小和位置。
③ 在框图中输入文本。
④ 用指向线连接框图符号。
⑤ 保存该文件。
绘制程序流程图
任务一 双机通信 - 任务实施
绘制程序流程图 - 甲机
任务一 双机通信 - 任务实施
绘制程序流程图 - 乙机
任务一 双机通信 - 任务实施
编程 - 甲机代码
解释:设置定时器 1 工作方式、波特率,将按键状态发送出去。
sbit SW = P1^0;
void main(){
TMOD = 0x20; //定时器1方式2,8位自动重装
TH1 = 0xfa;
TL1 = 0xfa;
SCON = 0x50; //工作于串行口方式1
PCON = 0x00; //SMOD=0,波特率设置为4.8kbit/s
TR1 = 1;
while(1)
{
SBUF = SW; //发送按键值
while(!TI); //等待串行口发送数据结束
TI = 0; //TI清零
}}
任务一 双机通信 - 任务实施
编程 - 乙机代码
解释:设置定时器 1 工作方式、波特率,接收甲机发送的数据并控制 LED。
#include "reg51.h"
#define uchar unsigned char
sbit LED = P1^0;
void main(){
TMOD = 0x20;
TH1 = 0xfa;
TL1 = 0xfa;
SCON = 0x50;
PCON = 0x00;
TR1 = 1;
while(1)
{
while(!RI); //等待串行口接收数据结束
LED = SBUF; //读取串行口接收缓冲区中的数据
RI = 0; ∥将RI清零
}}
任务一 双机通信 - 任务实施
编程 - 代码分析
定时器 1 工作在方式 2,自动重装初值,用于产生波特率。
串行口工作在方式 1,进行 10 位异步通信。
甲机将按键状态发送给乙机,乙机根据接收到的数据控制 LED 亮灭。
任务一 双机通信 - 任务实施
仿真调试程序
按照与前面任务相同的方法进行仿真调试,双机通信仿真电路图如图所示。
任务一 双机通信 - 任务实施
下载程序,验证功能
将单片机芯片插入编程器的ZIF插座中并锁紧,将编程器与计算机用USB数据线连接。
② 启动 EasyPRO Programmer,选取单片机型号为AT89C51。
③ 加载 HEX 文件。
④ 单击“操作一键通”,完成单片机程序的下载。
⑤ 将单片机芯片插到最小系统板的ZIF 插座处,然后打开电源开关观察 LED 的亮灭。
将编写好的程序下载到单片机中,验证双机通信的功能,即按动甲机的按键,乙机的 LED 相应亮灭。
任务一 双机通信 - 拓展任务——C51 扩展关键字
关键字 用途 说明
bit 位标量声明 声明一个位标量或位类型的函数
sbit 位标量声明 声明一个可位寻址变量
sfr 特殊功能寄存器声明 声明一个特殊功能寄存器
sfr16 特殊功能寄存器声明 声明一个16位的特殊功能寄存器
data 存储器类型说明 直接寻址的内部数据存储器
bdata 存储器类型说明 可位寻址的内部数据存储器
idata 存储器类型说明 间接寻址的内部数据存储器
pdata 存储器类型说明 分页寻址的外部数据存储器
xdata 存储器类型说明 外部数据存储器
code 存储器类型说明 程序存储器
interrupt 中断函数说明 定义一个中断函数
reentrant 再入函数说明 定义一个再入函数
using n 寄存器组使用说明 使用寄存器组Rn(n=0,1,2,3)
任务一 双机通信 - 拓展任务
双机通信的应用场景
介绍双机通信在工业自动化、智能家居等领域的应用案例,拓宽知识面。
提高双机通信抗干扰能力的方法
探讨如何通过硬件设计和软件编程提高双机通信的抗干扰能力,如采用屏蔽线、滤波电路等。
任务一 双机通信 - 拓展任务
任务描述
设计一个仿真电路,如图所示。
编程完成如下功能:按动键盘中的按键,1 位数码管显示对应的字母或数字。
随堂检测1
在双机通信编程中,TMOD = 0x20 表示什么?
答案::表示定时器 1 工作在方式 2。解析:TMOD 是定时器模式寄存器,
0x20 对应定时器 1 工作在方式 2,自动重装初值。
双机通信中,串行口工作在方式 1 时,一帧数据包含哪些内容?
答案:一帧数据包含 1 个起始位(0)、8 位数据位和 1 个停止位(1)。解析:方式 1 是 10 位异步通信方式。
随堂检测2
说明 “XBYTE [0x7fff]=i” 语句的传送过程。
答案:“XBYTE [0x7fff]=i” 语句的传送过程分为两步。第一步是传送 16 位地址,高 8 位地址由 P2 口传送,低 8 位地址由 P0 口传送,地址传到 DAC0832 后被锁存;第二步是传送 8 位数据,由 P0 口传送。由此可知,P0 口先传地址,再传数据,是分时复用的。
随堂检测3
简述制作锯齿波信号发生器的步骤。
答案:① 绘制锯齿波信号发生器模块电路原理图:启动 Protel DXP 2004,新建文件,在相应元件库中查找并拖入所需元件,绘制电路,最后保存文件。
② 焊接锯齿波信号发生器模块电路板:根据元件清单选取元件并检测好坏,绘制元件布局图,进行元件排列. 插装,按工艺要求焊接元件。
③ 搭接电路:使用最小系统电路板. 锯齿波信号发生器模块电路板搭接电路。
④ 绘制程序流程图:自行绘制。
⑤ 编程:新建工程文件和 C51 源程序文件,输入相应代码。
⑥ 仿真调试程序:启动 Proteus7.4 仿真软件,新建仿真文件,选择元件,连接仿真电路,加载 HEX 文件,添加虚拟示波器,观察波形。
⑦ 下载程序,用示波器测量其输出波形。
随堂检测4
简述仿真调试程序的主要操作内容。
答案:仿真调试程序的主要操作内容如下:
① 启动 Proteus7.4 仿真软件,新建一个仿真文件(锯齿波信号发生器.DSN)。
② 在主面板中选择元件选择模式 (Component Mode),单击元件选择按钮 “P”,从元件库中选择需要的元件,如单片机芯片 (AT89S51). D/A 转换芯片 (DAC0832). 运算放大器芯片 (μA741). 电位器. 电容。
③ 连接仿真电路,添加电源端和接地端,修改元件标号和标称值。
④ 双击芯片 AT89S51,在弹出的对话框中加载 HEX 文件(锯齿波信号发生器.HEX),修改时钟频率为 12 MHz。
⑤ 在主面板中选择虚拟仪器模式,在信号输出端加一台虚拟示波器。
⑥ 单击仿真按钮,用虚拟示波器观察仿真输出的波形。
1
1.讨论在双机通信中,如何提高通信的可靠性。
2.分析拓展任务中,如何实现按键与数码管显示的对应关系。
1. 绘制双机通信电路原理图
任务一 双机通信(2)
2. 搭接电路
甲机程序流程图参考
乙机程序流程图参考
电路端口连接要求
电路原理图参考
甲机代码内容
甲机代码功能解释
乙机代码内容
乙机代码功能解释
3. 绘制程序流程图
4. 编程
5. 代码分析
定时器 1 工作方式分析
串行口工作方式分析
双机通信逻辑分析
感谢观看
25
$$