基于TPC-ZK-II串口通信双机步进电机同步控制实验
课程名称:微机原理与接口技术
实验题目:基于TPC-ZK-II串口通信双机步进电机同步控制实验
课程简要信息
课程名称:微机原理与接口技术
课程学时:64学时(理论40学时,实验8学时,研究性教学16学时)
适用专业:通信工程、自动化、电子科学与技术
学生年级:大学三年级
实验内容与任务
本实验基于TPC-ZK-II实验箱,通过串口通信实现双机步进电机同步控制。
要求发送机发送控制命令,控制发送机的步进电机以不同的转速转动并在数码管或液晶上显示;同时通过串口通信,将控制信号发送至接收机,实现发送机和接收机同步控制的步进电机转动及显示转动的状态。
图1 基础部分系统功能图
基础部分:
-
通过TPC-ZK-II实验箱上的4*4键盘不同输入,利用8255芯片,实现电机以不同的速度、不同的方向转动。要求按下“A”键顺时针转动、按下“B”键逆时针转动,按下“0”键停止、“1”键慢速转动、“2”键快速转动,其余键无效。同时数码管能够同时显示键盘按下的相应字符。
-
利用串行通信芯片8251实现发送机和接收机的串行通信,完成发送机和接收机的步进电机转动的同步和数码管显示状态。
图2 提高部分系统功能图
提高部分:
-
将通过4*4键盘输入控制命令改为通过实验箱上的4个开关输入控制命令。四个开关的功能分别为:停止、方向、快速、慢速。停止开关的优先级最高。
-
通过实验箱上12864LCD液晶显示速度等级和方向(汉字)。
扩展部分:
在较好的完成基础部分和提高部分的前提下,实现了其他有意义的功能。如利用步进电机的计数口实时定量测出电机转速并在LCD上动态显示功能。
实验过程及要求
本实验包括系统设计、联调测试、撰写报告、答辩四个环节。
系统设计环节要求学生以小组为单位,对设计任务中的功能和要求进行分析,通过查阅资料、小组讨论等环节,对系统设计方案的进行论证与评估,完成整体硬件电路原理图和软件设计任务。
联调测试要求学生针对设计任务中要求的功能和技术指标设计测试方案对自己设计的系统进行测试,并录制测试视频。
报告撰写需要包括实验目的、实验内容及原理、程序流程图及完整程序代码,不同方案对比及讨论过程、运行结果及分析、小组合作及分工状况。
答辩针对设计中涉及到的技术原理、方案设计与评估、团队分工与合作等方面向小组中的每个学生提出问题,进行答辩,并给予评价。
相关知识及背景
多电机同步协调控制广泛应用于工业生产与机器人控制领域中。本实验结合微机原理与接口技术与汇编程序设计,除涉及串行接口芯片8251、定时器/计数器8254、并行接口芯片8255的应用之外,还用到了4*4矩阵键盘、数码管、12864LCD液晶、步进电机等。实验要求学生掌握并灵活运用以上芯片和模块,通过串口通信对两个步进电机进行同步控制。
教学目标与目的
本实验在微机原理与接口技术课程基础上,将理论与实际工程问题紧密结合,加深对该课程相关知识的理解,培养学生信息获取能力、分析与解决工程问题的能力,锻炼学生自主学习能力,提高工程实践素质。
教学设计与引导
在课堂授课过程中,教师讲解微机原理与接口技术中TPC-ZK-II实验箱中硬件芯片和模块的使用方法和汇编语言程序设计的基本方法。并以一个实际的电子系统设计过程为例,详细讲解电子系统的设计方法和设计过程,包括信息收集和文献资料查阅、设计方案的构思过程、多种设计方案比较论证评估的原则与方法、技术文档的撰写规范、工程职业道德规范等内容。
在课堂上布置本次课程设计中要求学生完成的具体设计任务,包括题目的实际工程背景以及具体的功能和技术指标要求,并明确课程考核要求。
在学生实验过程中,教师安排固定时间采用面对面和网络课程平台等多种方式对学生进行答疑指导。
在实验教学中,应在以下几个方面加强对学生的引导:
-
掌握通过程序控制步进电机转速与转向的原理和方法。
-
掌握各个芯片的初始化,工作方法以及使用方法。其中需要教授的芯片包括串行接口芯片8251、定时器/计数器8254、并行接口芯片8255等。
-
掌握TPC-ZK-II实验箱中部分模块,包括4x4键盘,LCD液晶显示,7段数码管的原理和使用方法。
-
了解按键防抖的软件实现方法,并应用于4x4键盘和开关的输入。
-
掌握汇编程序设计的方法以及技巧,包括设计程序流程图,编写代码,调试程序等。
实验原理及方案
本实验可以分为硬件设计和软件设计部分。
其中硬件设计包括:
1.串行通信模块
2.并行接口同键盘和显示器模块
3.并行接口同步进电机
4.并行、串行、计数/定时器芯片和CPU连接模块的设计
软件模块设计包括:
-
双机串行通信模块
-
步进电机控制模块
-
显示模块
-
键盘控制模块
基础部分和提高部分在输入及显示部分有所区别。其中各个模块中所用芯片的端口地址需同学根据硬件自行合理设计。
图3 基础部分发送硬件原理图
图4 基础部分接收硬件原理图
图5 提高部分发送硬件原理图
图6 提高部分接收硬件原理图
- 4*4键盘输入和数码管显示部分
此部分以并行接口芯片8255为核心,连接实验箱上的数码管、步进电机和4*4键盘。
4*4矩阵键盘是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。在行线和列线的每一个交叉点上,设置一个按键。使用该键盘时,采用对4*4矩阵键盘逐行逐列扫描的方式判断是否有按键按下。
编程提示:
图7 4*4键盘程序流程图

图8 7段数码管电路图
本次实验所用的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码输入端低电平选中。
数码管动态扫描显示需要由两组信号来控制:一组是字段输出口输出的字形代码,用来控制显示的字形,称为段码,如表1所示;另一组是位输出口输出的控制信号,用来选择第几位数码管工作,称为位码。
表1 数码管段码表
| 3FH | 06H | 5BH | 4FH | 66H | 6DH | 7DH | 07H |
|---|---|---|---|---|---|---|---|
| 7FH | 6FH | 77H | 7CH | 39H | 5EH | 79H | 71F |
本实验箱所使用的的步进电机用直流+5V电压,每相电流为0.16A,电机线圈由4相组成,即φ
1(BA), φ2(BB), φ3(BC), φ4(BD)图9 步进电机线圈
驱动方式为二相激磁方式,各线圈通电顺序如下:
图10 电机线圈通电顺序表
表中首先向φ
1线圈-φ2线圈输入驱动电流,接着φ2-φ3,φ3-φ4,φ4-φ1,又返回到φ1-φ2,按这种顺序切换,电机轴按顺时针方向旋转。
实验可通过不同长度延时来得到不同频率的步进电机输入脉冲,从而得到多种步进速度。编程提示:
图11 步进电机驱动程序流程图
- 串行通信部分
串行通信部分依靠计数器/定时器8254和串行通信接口芯片8251完成。计数器/定时器8254用于产生8251的发送和接收时钟。
$8254输入频率f_{i}$为1MHz,8251串行通信的波特率为1200,波特率因子为16,得到 8251的发送时钟为19200Hz,即8254输出时钟为19200Hz,求得8254的分频系数为52。
$$8251发送时钟 = 波特率 \times 波特率因子 = 1200 \times 16 = 19200Hz$$
$$\ \ \ \ \ \ \ 8254分频系数 = \frac{8254输入频率f_{i}}{8254输出频率f_{o}} = \frac{8254输入频率f_{i}}{8251发送时钟} = \frac{10^{6}}{19200} = 52$$
接收部分的8251芯片的接收时钟与发送时钟相等,且对应的8254芯片的输入时钟频率和时钟分频系数都与发送部分相同。
设置8251串行通信格式为8位数据,2位停止位,无校验。
- 4位开关输入和液晶显示部分
此部分仍以8255为核心,连接LCD液晶显示、步进电机以及开关。
实验箱上的12864LCD是128*64点阵的汉字图形型液晶显示模块,内置8192个中文汉字(16*16点阵)、128个字符(8*16点阵)及64*256点阵显示RAM,可以显示8×4行16×16点阵的汉字。
字符显示是通过将字符显示编码写入该字符显示RAM实现的,字符显示的RAM的地址与32个字符显示区域有着一一对应的关系,其对应关系如下表所示。
表2 RAM与地址对应表

只要确定RAM地址可以在指定的位置显示字符,而要显示不同字符需要查阅ST7920GB中文字形码表,找到对应的字码。而要完成动态显示,还需要清屏指令。
执行不同指令需要不同的指令码,将指令码写入LCD即可执行。不同的指令码可以查询下表。
表3 12864LCD指令码表
| 指令 | 指令码 | 说明 | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| RS | RW | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 | ||
| 清除显示 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 将DDRAM填满“20H”,并且设定DDRAM的地址计数器(AC)到“00H” |
| 地址归位 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | X | 设定DDRAM的地址计数器(AC)到“00H”,并且将游标移到开头原点位置;这个指令并不改变DDRAM的内容 |
| 进入点设定 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | I/D | S | 指定在资料的读取与写入时,设定游标移动方向及指定显示的移位 |
| 显示状态开/关 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | D | C | B | D=1:整体显示ON |
| C=1:游标ON | |||||||||||
| B=1:游标位置ON | |||||||||||
| 游标或显示移位控制 | 0 | 0 | 0 | 0 | 0 | 1 | S/C | R/L | X | X | 设定游标的移动与显示的移位控制位元;这个指令并不改变DDRAM的内容 |
| 功能设定 | 0 | 0 | 0 | 0 | 1 | DL | X | 0 RE | X | X | RE=0: 基本指令集动作 |
| DL=1 8-bit 控制界面|DL=0 4-bit 控制界面 | |||||||||||
| DL=1(必须为1)且RE=1: 扩充指令集动作 | |||||||||||
| 设定CGRAM地址 | 0 | 0 | 0 | 1 | AC5 | AC4 | AC3 | AC2 | AC1 | AC0 | 设定CGRAM地址到地址计数器(AC) |
| 设定DDRAM地址 | 0 | 0 | 1 | AC6 | AC5 | AC4 | AC3 | AC2 | AC1 | AC0 | 设定DDRAM地址到地址计数器(AC) |
| 读取忙碌标志(BF)和地址 | 0 | 1 | BF | AC6 | AC5 | AC4 | AC3 | AC2 | AC1 | AC0 | 读取忙碌标志(BF)可以确认内部动作是否完成,同时可以读出地址计数器(AC)的值 |
| 写资料到RAM | 1 | 0 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | 写入资料到内部的RAM(DDRAM/CGRAM/IRAM/GDRAM) |
| 读出RAM的值 | 1 | 1 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | 从内部RAM读取资料(DDRAM/CGRAM/IRAM/GDRAM) |
编程提示:
图12 LCD液晶显示程序流程图
教学实施进程
-
实验准备。在学生开始老师应将完成该实验所需的基础知识传授给学生,包括串行接口芯片8251、定时器/计数器8254、并行接口芯片8255的工作原理,使用方法以及工作方式,汇编语言程序设计的方法等。
-
任务安排。老师在课堂上讲解该实验,使学生对实验的内容,任务和要求以及进度安排有充分的了解。
-
现场教学。老师应为学生讲解TPC-ZK-II实验箱的模块以及使用方法,并带领学生完成几个简单的小实验,使学生对该实验箱的构成和使用方法充分的理解。
-
分组研讨。在学生应充分理解和掌握了老师给学生讲解的知识点的前提下,老师按照三人一组为学生进行分组。学生按照实验任务要求,进行组内分工和方案研讨。
-
现场操作。学生在确定系统设计方案后,按照设计的电路以及编写好的代码在实验箱进行调试,验证方案的正确与否。
-
结果验收。学生分组现场进行成果展示,老师现场打分。老师将按照实验内容要求以及指标点对学生的设计进行评价,并针对设计中涉及到的技术原理、方案设计与评估、团队分工与合作等方面向小组中的每个学生提出问题,最后给予学生分数。
-
报告批改。小组成员独立撰写,由教师单独打分。教师将针对设计过程和设计方案的科学性、理论分析与测试的严密性、文字表达能力等因素,为学生给予评价。
实验报告要求
实验报告需要反映以下工作:
-
实验需求分析
-
实现方案论证
-
不同方案对比
-
系统设计及代码调试过程
-
完整程序代码及注释
-
遇到的问题及解决方法
-
实验总结以及收获
-
系统使用说明及实物照片
考核要求与方法
-
实物测试。以小组为单位,针对设计任务书中要求的功能和性能指标测试验收,给予评价。此项占总成绩的50%。
-
设计报告。每人独立撰写,单独打分。针对设计过程和设计方案的科学性、理论分析与测试的严密性、文字表达能力等方面因素,给予评价。设计报告要求包括:实验要求、实验原理(20%)、不同实验方案设计及对比(30%)、制作及调试过程(20%)、完整程序代码、遇到问题及解决方法(20%)、参考文献、系统使用说明(10%)、2~3张实物照片。此项占总成绩的20%。
-
答辩。单人答辩,单独打分。针对设计中涉及到的技术原理、方案设计与评估、团队分工与合作等方面向小组中的每个学生提出问题,进行答辩,给予评价。此项占总成绩的30%。
项目特色或创新
项目的特色在于:项目背景的工程性,知识应用的综合性,实现方法的多样性。
(1)综合性。实验内容涵盖课本要求重点掌握的I/O接口所有芯片。
(2)工程型。在机器人控制领域,多自由度、多关节的运动中,需要大量电机同步协调控制来实现;在实际的工业控制中,多电机同步协调控制不仅能满足工业生产自动化的需求,同时也关系到生产的可靠性和产品质量。
(3)多样性。本实验任务的实现方法多样,可以通过多种输入方式和控制方法来对电机进行同步控制,多种显示设备显示运行状态。
参赛选手信息表
| 案例提供单位 | 相关专业 | |||||
|---|---|---|---|---|---|---|
| 设计者姓名 | 电子邮箱 | |||||
| 移动电话 | 通讯地址 (含邮编) |
|||||
| 设计者姓名 | 电子邮箱 | |||||
| 移动电话 | 通讯地址 (含邮编) |
|||||
| 设计者姓名 | 电子邮箱 | |||||
| 移动电话 | 通讯地址 (含邮编) |
|||||
| 相关x课程名称 | 学生年级 | 学时(课内+课外) | ||||
支撑 条件 |
仪器设备 | |||||
| 软件工具 | ||||||
| 主要器件 | ||||||






编程提示:
本实验箱所使用的的步进电机用直流+5V电压,每相电流为0.16A,电机线圈由4相组成,即φ
驱动方式为二相激磁方式,各线圈通电顺序如下:
实验可通过不同长度延时来得到不同频率的步进电机输入脉冲,从而得到多种步进速度。编程提示: