乒乓球发球机控制器软件设计 - 图文

更新时间:2024-05-20 04:37:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

摘 要

本文针对乒乓球发球的特点,模拟设计了一种乒乓球发球机控制器。该发球机控制器由8位单片机STC89C51为核心的硬件电路和相关软件编程组合而成。实现改变发球速度、发球高度及角度等的功能,以满足练习者的不同技术需求,同时设置了随机发球模式,实现落球点的随机变化。

本课题的软件设计采用了主函数调用各状态子程序的方法,完成了按键控制、液晶显示、驱动电机调速的功能。配合本组同学的硬件设计完成了单片机外围硬件电路的设计,其中包括电动机驱动模块、键盘模块及液晶显示模块。最后我们在完成硬件电路的分析和软件模块调试的基础上,进行了联机调试,对各模块电路实行软硬件检测,有效地将两者结合起来,完成了系统的整体控制。 关键词:乒乓球发球机,控制器,发球模式,单片机

1

ABSTRACT

Considering the characteristics of the table tennis served,the thesis designs a kind of table tennis serving controller. It is consist of traditional 8 monolithic integrated circuits STC89C51 for the hardware circuit design and related software C51 for programming design. It can accomplish the function of changing the ball's speed,altitude and angle,in order to satisfy the needs of people. Meanwhile the random serving patten was designed and the fall points of the table tennis become randomly.

The software in this essay is designed using the form that the main function calls a subroutine,and finishing the function of button control,liquid crystal display,drive motor speed regulation.The hardware design produced a peripheral circuit of monolithic integrated circuits including the drive motor module,keyboard module and LCD display module. Finally,on the basis of finishing hardware circuit analysis and software module debug, we match the soft and hardware and test all modules carefully, then the basic function of the system achieves the desired effect.

KEYWORDS: the table tennis serving machine,controller,serving pattern,single chip microcomputer

2

目录

第一章 绪论 .................................................................................................................................................. 1 1.1本课题的研究背景和意义 ................................................................................................................. 1 1.2国内外乒乓球发球机的研究现状 ..................................................................................................... 1 1.2.1国外乒乓球发球机的研究现状 ........................................................................................... 2 1.2.2国内乒乓球发球机的研究现状 ........................................................................................... 4 1.3 本课题研究内容与设计步骤 ............................................................................................................ 5 1.3.1本课题研究内容 ......................................................................................................................... 5 1.3.2本课题设计步骤 ......................................................................................................................... 6 第2章 乒乓球发球机控制器设计分析 ....................................................................................................... 8 2.1乒乓球发球机的结构及电动机选择 ................................................................................................. 8 2.2主控单片机的选型 ............................................................................................................................. 9 2.2.1单片机的主要特性 ..................................................................................................................... 9 2.3液晶显示芯片的选择 ....................................................................................................................... 10 2.3.1 LCD12864引脚说明 ................................................................................................................ 11 2.3.2 LCD12864工作时序 ................................................................................................................ 12 2.4驱动芯片的选择 ............................................................................................................................... 13 2.4.1 L298N引脚说明 ....................................................................................................................... 13 2.5步进电机的调速方法 ....................................................................................................................... 15 2.5.1步进电动机概述 ....................................................................................................................... 15 2.5.2步进电动机的调速 ................................................................................................................... 15 2.6直流电动机的调速方法 ................................................................................................................... 15 2.6.1直流电动机概述 ....................................................................................................................... 15 2.6.2直流电动机的调速 ................................................................................................................... 16 第3章 乒乓球发球机控制器硬件设计 ..................................................................................................... 17 3.1总体设计 ........................................................................................................................................... 18 3.2单片机的最小系统 ........................................................................................................................... 18 3.3驱动电路模块 ................................................................................................................................... 19 3.4按键电路模块 ................................................................................................................................... 20 3.5 LCD液晶显示电路模块 .................................................................................................................. 20 第4章 乒乓球发球机控制器软件设计 ..................................................................................................... 21 4.1 系统软件设计概述 .......................................................................................................................... 21 4.1.1 软件程序编写的原则 .............................................................................................................. 21 4.1.2 程序设计方法 .......................................................................................................................... 22 4.1.3 软件设计步骤 .......................................................................................................................... 23 4.2 编译软件介绍 .................................................................................................................................. 23

3

4.3系统各部分流程图 ........................................................................................................................... 24 4.3.1 主程序流程 .............................................................................................................................. 24 4.3.2 LCD12864流程 ........................................................................................................................ 25 4.3.3 按键流程 .................................................................................................................................. 27 4.3.4 电机驱动流程 .......................................................................................................................... 29

4.3.4.1 直流电机驱动流程 ........................................................................................................................... 30 4.3.4.2 步进电机驱动流程 ........................................................................................................................... 31

第5章 系统调试......................................................................................................................................... 32 5.1 硬件调试 .......................................................................................................................................... 32 5.1.1 硬件静态调试 .......................................................................................................................... 32 5.1.2 硬件动态调试 .......................................................................................................................... 33 5.2 软件调试 .......................................................................................................................................... 33 5.3 联机调试 .......................................................................................................................................... 34 5.4 调试结果 .......................................................................................................................................... 35 第6章 结束语 ............................................................................................................................................ 37 6.1总结 ................................................................................................................................................... 37 6.2心得体会 ........................................................................................................................................... 37 致 谢 ............................................................................................................................................................ 38 参考文献 ...................................................................................................................................................... 39 附 录 ........................................................................................................................................................ 40 附录一 硬件实物图 ............................................................................................................................... 40 附录二 硬件原理图 ............................................................................................................................... 41 附录三 程序 ........................................................................................................................................... 42

4

第一章 绪论

本章从该课题的研究背景出发,提出了本设计的必要性。其次,介绍了国内外的研究现状。最后,对该课题的研究内容和设计流程进行了简单的描述。从整体上把握了基于51单片机控制的乒乓球发球机控制器的设计原则和内容,为完成本次设计做出预备工作。

1.1本课题的研究背景和意义

随着中国在世界上的地位越来越举足轻重,我国的体育事业也正在蓬勃发展。从第一届奥林匹克运动会没有亚洲人的身影,到2008年我们中国作为东道主,自己举办奥运会,很多项目都取得了零

随着我国运动员在奥运会中连续取得佳绩,让人们在为体育健儿加油喝彩的同时,也极大地调动了全国人民投入体育运动的热情。

乒乓球作为我国的国球,更是得到很多人的喜爱。它集健身、竞技、娱乐于一体,不仅可以锻炼身体,还可以练习头脑的灵活性、眼睛的反应力以及全身的协调性。但是对于初学者,捡球的时间却比真正在台上打球的时间多,这样要提高技术水平就很慢,也会削弱人们对乒乓球的兴趣。对于一些高水平的选手,由于人手发球速度和频率比较慢,而且陪练员长时间发球也不太可能,因此要进行变化多、强度大的多球练习比较困难,而且从经济观点或科研方面考虑,乒乓球发球机的开发、研究与应用都能极大地推动体育运动事业的发展。正是在这种情况下,研究乒乓球发球机是极其必要的。

1.2国内外乒乓球发球机的研究现状

对于乒乓球发球机的研究可以追溯至六十年代末和七十年代初,当时欧洲出现了乒乓球发球机。它通过一定的机械装置,按乒乓球技术训练的不同要求,将球不断发射出来。发球机发出的球,比人速度更快,力量大,且旋转更强,所以,它对提高乒乓球运动员的训练水平有一定的作用。

1

目前市场上销售的乒乓球发球机,按控制类型可以分为两类:一类是半自动,简单操作系列;另一类是全自动,电脑程控系列。半自动式,无论是安装还是使用都比较麻烦,而且发球的方式、力量、速度都是固定的,如果要改变各项技术参数,就必须停下来,人工来校准调整机头旋转角度,来实现各种旋转球,手动抬高或降低机头,来调整球的射程弧度,而且机械性能比较差,经常卡球,但这类产品还是受到很多人的青睐,因为它的价格低,符合大多数人的需求。全自动式,是由全电脑程控的,能模拟运动员常用的技术,可发出很多高性能的球,可以模拟真人发球,还能发多种速度不同的球,人性化的设计能够满足不同技术水平的人的需要,技术好的可以选择多速度和角度发球;技术不好的可以选择基本发球。而且其电脑记忆功能还能记录球员打球的路数,能起到专业陪练效果。这种机器虽然性能很高,但价格也比较贵,令很多人望而止步。

按出球方式可以分为三类:一类是轮式发球机,一类是压气式发球机,另一类是捶击式发球机。其中轮式发球机的原理是由于装有轮子的通道空间很小,当球从滑轨滚入通道时,轮子就将球喷出。这种情况和小石头被打滑的车轮喷出是一样的。这种发球方式有两种,一种是单轮驱动,另一种是双轮驱动。单轮驱动发球机的弊端是:发出来的球如果速度快,那么同时旋转也强;如果速度慢,那么同时旋转也弱。这和人们实战打球是完全不同的,实际上球速和旋转并不是完全成正比的,比如攻球的速度最快,但是旋转并不强;而弧圈球虽然旋转极强,但是速度未必很快。双轮驱动的发球机完全解决了单轮驱动速度和旋转的矛盾,可发出各种旋转的球,同时也可以发出不转球。压缩式发球机是利用空气压缩机来发射球的,球被装入长桶的底部由一个窄口固定住,这个窄口的直径比球的直径略小一些。当压缩空气推挤乒乓球穿过窄口的时候,球就被发射出去了。这种发球机的缺点是噪音极大而且不能提供高的性能,同时,空气压缩消耗的功率很大,难以使用电池来供电;它的优点是价格比较便宜。捶击式发球机有多种设计方案,最常见的是通过凸轮带动摆杆,将落入发球口的乒乓球击出去,这种方式性能单一,而且不方便控制,已经逐渐被淘汰。

1.2.1国外乒乓球发球机的研究现状

2

国外的乒乓球发球机发展比较快,其功能比较齐全,自动性能也比较高,既可以满足普通练习者的需求,也可以满足专业运动员的要求。目前,世界上生产乒乓球发球机的厂家比较多,具有代表意义的厂家是美国的LNEWGY公司和日本的Butterfly公司。

1 LNEWGY公司之乐吉发球机:

其发球原理是由电动机带动的位置可调旋转轮和一固定的摩擦块组成发射机构,当球进入发球通道,由旋转轮将球旋出发球口来,旋转轮的位置不同,则可得到不同旋向的球。

该系列乒乓球发球机一般可分为三个等级,初级发球机是为初学者和娱乐者设计的,中级发球机是为中级和比赛级球员设计的,而高级发球机是专为专业运动员和爱好乒乓球的行家设计。该系列发球机的特点之一是使用者可以根据自己的水平状况选择合适的发球机等级,当水平提高时,该发球机可以通过升级包,快速方便的达到高的等级。通过控制球桌旁的控制盒可以调节发球速度、发球频率、旋转速度以及出球口角度:通过手动调节出球口上的旋钮可以发射出上旋、逆旋、侧旋甚至混合旋转等各种旋向的球;通过手动调节发球机后的两个控制杆可以实现发球角度摆动范围的变化,利用两杆的不同组合可有八种摆动范围选择,还可实现定点发球;通过设置球型号开关调节旋转轮与摩擦块之间距离,可以选择适合所使用球型的发射轨道;通过将发球机安装在不同的位置可以实现不同的发球角度和发射弧度。

2.Butterfly公司之Amicus发球机:

其发球原理是采用两个高速旋转的轮子(旋转方向相反),由于轮子的空间小于球的直径,当球从滚道滚入两轮之间的时候,轮子将球旋出,但它只能形成45°的侧旋球。其旋转速度和球发射速度没有关联,可以发射慢旋的短球和快速的突发球,这是同类发球机无法做到的。

该发球机有三个不同的发球模式可选择,一种是规则模式,发射固定落点的球;一种是自动模式,发射随机球或组合球;另外一种是自定义模式,根据需求自己编写发球模式的程序。同时它具有记忆功能,能够保存使用者输入的程序以及记录前

3

一使用者的选择模式和命令。在使用者一端装有控制界面,实现对发球机的远程控制。该发球机结构紧凑,底座下有轮子,使用者可方便调整发球机位置,但其高度不能调节。

1.2.2国内乒乓球发球机的研究现状

相对国外而言,国内的乒乓球发球机起步比较晚,但发展很快,从最初的全手动发球机到现在的全自动发球机,甚至有些产品性能超过了国外的同类产品。主要有以下几个典型方面: 1.半自动式乒乓球发球机:

该发球机是福建省的林清云所设计的,其机械结构包括机身壳体、基座、储球斗、发球机构、弧度调节机构、角度摆动机构及电机调速电路。其工作原理是:由于储球斗装于机器上方,乒乓球可通过自身重力落入发球机构,发球机构中的拨叉在电动机的带动下击打落入球道的乒乓球,乒乓球经球道前端的摩擦辊高速切搓后成旋转状飞出球道。

其发球机构由拨叉、电动机和凸轮组成,拨叉由L形臂和直臂两部分组成,与机身底盘间有一弹簧相连,L形臂可摆动到球道的入球端,直臂与双扇结构的凸轮面相接触。通过电动机带动凸轮转动,在弹簧的作用下,拨叉即可做出打击动作,将乒乓球击出。其弧度调节机构可以调节出球的弧线,而角度摆动机构完成出球角度的左右摆动变化,形成丰富的出球线路;电机调速电路即可控制出球频度和旋转强度。该发球机的特点是结构简单,发球速度快,经济实惠;缺点是故障率高,质量差、发球变化少,调节不方便。 2.双蛇牌乒乓球发球机:

该发球机是双蛇公司研发生产的全自动电脑控制操作系列的发球机,它是在研究总结众多发球机的优缺点的基础上,专为乒乓球运动爱好者开发出的具有突破性的创意产品。其主要特点是通过电脑编成实现“一键一功能”,即使用者通过遥控器或者控制面板上的按键来改变发球特性,只要按一下按键,就可以自动发出攻球、前冲弧圈球、削球、长胶球、高吊球性能的球;还可以自动发出上旋球、下旋球、

4

不转球、右侧上、右侧下、左侧上、左侧下、右侧旋、左侧旋九种基本旋转发球方式的球。

该发球装置设计有云台旋转机构,并安装有旋转角度极限装置,可以左右各旋转20度,在训练时,使用者可根据自己的需求进行任意调整,通过细调可以派生出多种多样性能的球,从而使发出的球更接近人工发球,也更具有人性化。发球装置主球道的滑轨设计为三根可更换式的滑轨,从而解决了球在此段摩擦大,运行中阻力大的缺点。其机头摩擦轮设计为组装式,由轮毅、压圈和橡胶组成,其优点是更换橡胶圈方便,成本低,保证射点准确。其电脑控制系统具有记忆功能,使得在关机前处于什么状态,再次开机时会仍然处于该状态。由于其旋转机构需手动调机,使整个装置不能完全实现自动化。 3.许绍发智能乒乓球教练机:

该发球机是由三鼎公司采用生产研制,采用微电脑控制,在一定程度上实现了训练过程的自动化,其桌面分割为多个小方块,可根据程序设定准确地将球射到指定区域。它利用对转双轮原理的特性,借助轮子与球之间的摩擦力来获取能量,使球获得一定的初速度将球发射出去。按照使用者要求可发射各种旋向球和不转球,可任意改变球的落点,落点与旋向可任意组合。有300个训练程序可选择,使用者可根据自己需求来输入所需程序。它比现实市面销售的同类产品领先的关键在于它的可控制性,它抛出的球接近人工打球的速度、旋转弧线。其不足之处是不能像真正的人工发球可根据实际情况来应变发球,由于发球程序模式所限,所发球具有一定的规律性。

尽管乒乓球发球机经过多年发展,己有很大改进,但发球机“打”出的球和人打得球还是许多不同:一是发球机发出来的球和运动员实际打过去的球在性能上不大相同;二是运动员打球时都有一个挥球拍动作,接球者可以借此来判断和反应,而发球机发出的球则很突然,接球者不好判断。

1.3 本课题研究内容与设计步骤 1.3.1本课题研究内容

5

本课题的研究内容包括以下几个部分:研究乒乓球发球机控制系统方案,了解单片机的特性、C语言程序设计、PROTEL仿真环境、基本实验、扩展实验及其使用方法。熟悉芯片各个部分的功能及L298控制电机设计。进行基于单片机控制的乒乓球发球机软件设计,与其他同学配合实现乒乓球发球机控制系统软硬件结合,实现所需要的功能。具体而言:

(1) 了解STC89C51单片机的特性、指令系统、程序设计、Keil uVision开发环境;

(2) 研究、分析乒乓球发球机控制系统设计方案; (3) 分析自动乒乓球发球机的工作原理及工作过程;

(4) 实现基于51单片机控制的控制系统软、硬件联机控制。

1.3.2本课题设计步骤

本课题的研究与设计为时一个学期,经历了选题、选择方案、硬件设计、软件编写、调试等过程,具体的流程如图1.1所示:

6

调脉宽的方式有三种:定频调宽、定宽调频和调宽调频。我们采用了定频调宽方式,因为采用这种方式,电动机在运转时比较稳定;并且在产生PWM脉冲的实现上比较方便。

(5)桥式可逆PWM变换器

PWM变换器的作用是:用脉冲宽度调制的方法,把恒定的直流电源电压调制成频率一定、宽度可变的脉冲电压序列,从而改变平均输出电压的大小,以调节电机转速。

一般采用由达林顿管组成的H型PWM电路。用单片机控制达林顿管使之工作在占空比可调的开关状态,精确调整电动机转速。这种电路由于工作在管子的饱和截止模式下,效率非常高;H型电路保证了可以简单地实现转速和方向的控制;电子开关的速度很快,调速范围广、过载能力大,稳定性也极佳,是一种广泛采用的PWM调速技术。

桥式可逆PWM变换器电路如图2.6所示。电动机M两端电压UAB的极性随开关器件驱动电压的极性变化而变化。

UsVT1Ug1VD1VD3VT3Ug3MGMOTOR DCVT2Ug2VD2VD4VT4Ug4

图2.6 桥式可逆PWM变换器电路

第3章 乒乓球发球机控制器硬件设计

乒乓球发球机控制器硬件设计是由本组同学主要负责,在此我做了相应的辅助工作。本章简单的介绍硬件电路各模块及原理。

17

3.1总体设计

在硬件电路的设计中,配合本组同学做出了如下工作:选用STC89C51单片机作为主控芯片,外围电路包括:电动机驱动电路、键盘及液晶显示电路。系统上电开始工作,液晶屏显示制作者信息,提示利用按键选择工作模式,当用户按下按键后,对应的模块开始运行。STC89C51向驱动电路发出数据,驱动电路接收到高低电平信号后,电机开始运行。于此同时,12864液晶显示接收单片机的控制,显示当前工作模式。系统整体结构框图如图3.1所示。

12864液晶显示STC89C51L298驱动电路L298驱动电路直流电机1,2,3步进电机1按键判别L298驱动电路步进电机2 图3.1系统整体结构框图

3.2单片机的最小系统

单片机最小系统包括了复位电路和时钟晶振电路,功能是先以主振频率为基准发出CPU的时序,对指令进行译码,然后发出各种控制信号,完成一系列定时控制的操作,用来协调单片机内部各功能部件之间的数据传输、数据运算等操作。最小系统电路图如图3.2所示。

18

3.3驱动电路模块

提供12V电压。驱动电路接线如图3.3所示:

图3.2 单片机最小系统电路图

本设计采用3个型号相同的L298驱动电路,电路中给单片机提供5V电压,L298

19

图3.3 电机驱动电路接线图

3.4按键电路模块

按键作为一种不带自锁保护功能的开关,只有在动作的瞬间会接通电路,其余时刻均处于掉电模式。在本设计中,总共用到了五个单列式按键,按键部分的接线图如图3.4所示。

图3.4 键盘接线图

3.5 LCD液晶显示电路模块

在本设计中,液晶显示模块的作用非常重要,主要用来实时监控当前机器的工作状态。LCD12864液晶显示模块电路接线图如图3.5所示:

20

4.1 系统软件设计概述

4.1.1 软件程序编写的原则

图3.5 液晶显示模块电路接线图

题选择单片机C语言作为软件设计语言。

第4章 乒乓球发球机控制器软件设计

善的模块程序结构,从而为软件开发中采用模块化程序设计方法提供了有力的保

障。用C语言来编写目标系统软件,会大大缩短开发周期,且明显地增加软件的可

的一种计算机语言。它有功能丰富的库函数,兼顾了多种高级语言的特点,并具备

C语言是一种结构化的高级语言,其优点是可读性好、移植容易,是普遍使用

汇编语言的功能,而且可以直接实现对系统硬件的控制。此外,C语言程序具有完

读性,便于改进和扩充,从而研制出规模更大、性能更完备的系统。所以本研究课

21

(1)实时性:即能够在对象允许的时间完成对系统的检测、计算、处理和控制。此外,尽可能采用一些设计技巧,使程序尽量简单、紧凑、避免不应有的浪费。同时,对多个处理任务系统应实行中断嵌套或采用多重中断的办法,加快处理速度。

(2)针对性:应用程序的最大特点是具有较强的针对性,即应用程序应根据一个具体系统的要求来设计。

(3)灵活性和通用性:一个好的应用程序,不仅要针对性强,而且要有一定的灵活性和通用性,即稍加改变后就能适应不同系统的要求。为此,在程序设计时采用模块化结构,尽量把公用的程序编写成不同功能的子程序,这样易于设计和修改。

(4)可靠性:在水泵调速系统中,系统的可靠性是至关重要的。只有在硬、软件都非常可靠的情况下,系统才能可靠地正常运行。为了提高系统软件的可靠性,采用一些软件设计技巧,并把调试好的应用软件固化在单片机中。

4.1.2 程序设计方法

目前,单片机C语言最重要的程序设计方法是结构化的程序设计。用结构化方法设计的程序只存在三种基本结构,即顺序结构、分支结构、循环结构,程序代码的空间顺序和程序执行的时间顺序基本一致,程序结构清晰。在编写软件程序的过程中,结构化程序设计应遵循以下原则:

(1)自顶向下,逐步细化。即抓住整个问题的本质特性,采用自顶而下逐层分解的方法,对问题进行抽象,划分出不同的模块,形成不同的层次概念。把一个较大的复杂问题分解成若干相对独立而又简单的小问题,只要解决了这些小问题,整个问题也都解决了。

(2)模块化设计。模块化设计是把复杂的算法或程序,分解成若干相对独立、功能单一,甚至可供其他程序调用的模块。模块化结构不仅使复杂的程序设计简单化,开发周期得以缩短,节省费用,提高了软件的质量,而且还可以有效地防止磨时间错误的扩张,增强整个系统的稳定性与可靠性;同时,还使程序结构具备灵活性,层次分明,条理清晰,便于组装,易于维护。

22

(3)结构化编程。所谓结构化编程是利用高级语言提供的相关语句实现三种基本结构,每个基本结构具有唯一的出口和入口,整个程序由三种基本结构组成,程序中不使用goto之类的语句。

本设计的软件编程选择结构化的程序设计方法,具体说来是采用主函数调用子函数的方法,将各子函数模块化,自顶向下、逐步细化,最终系统整体软件的编程。

4.1.3 软件设计步骤

(1)系统定义:就是清楚地列出系统的各个部分与软件设计有关的特点,并进行定义,以作为软件设计的依据,系统定义是对系统任务的描述。

(2)程序设计:程序设计是制定程序的纲要,也就是将系统定义的问题用程序的方式进行描述、绘制流程图,结构化程序设计、模块化程序设计和自顶向下设计等,都是此步骤的有效方法。

(3)文件编制:文件编制是用流程图、注释、存储器分配说明等方法来描述程序来形成文件,以便用户和操作人员了解。文件编制的好坏,直接影响到程序的使用、维护和扩充。

(4)维护和再设计:当软件投入现场运行时,一方面可能会发生各种现场问题,因而需要进一步对系统软件进行改造和完善;另一方面,用户往往会由于环境或技术条件的变化,提出比原计划更多的要求,因而需要对原系统软件进行改进和扩充,然后再重新固化,以适应情况变化的要求。

4.2 编译软件介绍

随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件。Keil提供了包括编译器、宏汇编、链接定位、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。

Keil Software公司推出的uVision3是一款可用于多种8051MCU的集成开发环境(IDE)。除增加了源代码、功能导航器、模板编辑以及改进的搜索功能外,uVision3

23

还提供了一个配置向导功能,加速了启动代码和配置文件的生成。此外其内置的仿真器可模拟目标MCU,包括指令集、片上外围设备及外部信号等。uVision3提供逻辑分析器,可监控基于MCUI/O引脚和外设状态变化下的程序变量。 使用独立的Keil仿真器时,要注意以下的问题:

(1)仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中插其他频率的晶振。

(2)仿真器上的复位按钮只复位仿真芯片,不复位目标系统。

(3)仿真芯片的31脚(/EA)已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目标系统中使用。

使用Keil编译软件进行程序的编译与调试的步骤为:建立工程文件、选择单片机、建立源文件、保存为.C文件、加载C文件、编译、运行,最后生成HEX文件。

4.3系统各部分流程图 4.3.1 主程序流程

本设计利用STC89C51单片机作为控制机,采用单片机C语言进行程序的编写,将各部分模块化,使用主函数调用子函数的方法,遵循自顶向下、逐步细化的原则,实现了按键扫描、单片机P0口发出数据、控制L298驱动电路、LCD12864液晶显示的功能。

乒乓球发球机控制器的主程序流程图如图4.1所示。单片机上电复位后,首先进行各端口和个芯片的初始化,LCD液晶显示器显示毕设题目和制作者信息;其次利用if-else语句进行按键扫描,对按键判断并依次对每种按键模式作出相应的程序控制。当按键1作用后,液晶显示器显示要选择的发球模式,此时若按键2作用,液晶显示器显示进入随机模式,按键4作用,随机模式发球;若按键2不作用,按键3作用,进入定向模式,按键1作用,左旋,按键4作用,右旋。具体流程如图4.1所示:

24

开始初始化键盘扫描N按键1作用?Y界面1按键3作用?NY按键2作用?界面3NNY界面2N按键1作用?Y按键5作用?5号电机左旋按键4作用?YY直流电机赋参数按键5作用?5号电机右旋NY定时器初始化界面4N按键1作用?开中断Y上旋球按键4作用?NY下旋球结束 图4.1 主程序流程图

当系统开始工作后,液晶显示制作者信息和毕设题目,然后根据选择按键的不同,进入不同的工作模式,液晶显示当前工作模式。

4.3.2 LCD12864流程

25

LCD12864液晶显示器的工作流程包括:初始化、写命令、写数据、显示。LCD12864的控制指令如表4.1所示,读写控制信号如表4.2所示:

表4.1 LCD12864控制指令表 指令 清屏 地址归位 进入点设定 显示开关状态 游标、显示 移位控制 功能设置 CGRAM地址设置 DDRAM地址设置 读BF及AC值 写数据到RAM 读出RAM的值 功能说明 将DDRAM填满“20H”,AC设为“00H” AC=0,游标移到原点 设定游标、指定显示的移位 设置显示、游标及位置 设置游标、显示的移位控 制单元,不影响DDRAM 工作方式设置(初始化指令) 设置CGRAM地址到AC 设置DDRAM地址到AC 读忙标志BF值和地址计数器AC值 将D7~D0写入内部RAM 从内部RAM读取数据到D7~D0 表4.2 读写控制时序表

RS 0 0 1 1 R/W 0 1 0 1 E 下降沿 高电平 下降沿 高电平 功能 写指令 读忙标志或地址AC 写数据 读数据

LCD12864上电后,首先要进行忙碌的检测,执行每条指令之前一定要确认模块的忙碌标志lcd_busy为低电平,表示不忙,可写指令与数据。其次是初始化,初始化包括基本指令、扩充指令的操作、显示开、关坐标以及清除LCD的显示内容。初始化完成之后,要设定显示位置,即输入显示地址(此处要注意显示第二行内容

26

时,因为写入显示地址时要求最高位D7恒定为高电平1,因此地址要加上0x80),LCD12864指定显示位置是通过LCD写命令子程序来实现的,由表4.2可知,此时设置RS、R/W为低电平并且E为下降沿。在位置确定后,在该位置写入数据,通过写数据子程序来实现,此时应该设置RS为高电平、RW为低电平并且E为下降沿。在数据写完之后, LCD12864写入的数据便会显示在液晶屏上。而且液晶显示模块对时间的要求很严格,延时时间的准确把握对液晶显示的精确工作有至关重要的作用,因此软件设计中需要延时程序。LCD12864流程图如图4.2所示:

开 始液晶显示初始化设定显示位置写入显示数据结 束 图4.2 LCD12864程序流程图

4.3.3 按键流程

27

在本设计中,键盘是操作人员与仪表进行交流的输入设备,借助键盘可实现对系统参数的设置。本设计单片机控制系统中,需要功能键较少,因此,可以采用非编码键盘的独立式按键结构。独立式按键是直接用I/O口线构成的单个按键电路,其特点是每个按键单独占用一根I/O,每个按键的工作不会影响其它I/O口线的状态,软件结构简单。本设计中单片机的P1口与键盘相连。 由于按键不具备自锁的功能,按键的动作是瞬间引起的,因此要考虑外界震动引起的误差,在程序中应用到消抖的方法,可以采用微小的延时。按键控制的五种模式是相互独立的,可通过5个嵌套的if语句来任意选择哪个按键作用。按键的流程图如图4.3所示:

28

开始NP1.3=0?YTemp1=1 4.3.4 电机驱动流程 P1.4=0?NYTemp2=2P1.5=0?NYTemp3=3P1.6=0?NYTemp4=4P1.7=0?NYTemp5=5结束 图4.3按键扫描流程图29

4.3.4.1 直流电机驱动流程

直流电动机采用PWM的调速方法,利用定时器中断的方法产生PWM信号,改变其占空比可以实现电动机的调速。本设计中只需对直流电机进行调速,不需要改变转向。

本设计中采用L298驱动直流电机,晶振采用12MHz,1个PWM信号由100次中断产生。

上电后,定时器初始化,定时时间到,允许开中断,开始计数,将数值与预设数值加以比较,根据所计数据和预设数值的关系确定输出电平的高低。若所计数据大于预设数值,则输出高电平;反之,输出低电平,从而实现占空比的调节。直流电机驱动流程图如图4.4所示:

开 始开 定 时 器开 始 计 数比预设数值大?N输 出 低 电 平Y输 出 高 电 平结 束 图4.4直流电机驱动流程图

30

4.3.4.2 步进电机驱动流程

步进电机的转速是由脉冲频率控制的,两个脉冲之间时间间隔越短,电机转的越快,一般通过51单片机定时器进行控制。

本设计中的步进电机的速度是固定不变的,只需要实现电机的正反转控制。同样采用L298驱动,驱动电压为12V。步进电机采用的型号是25BY48L058F,额定电压为12V,额定电阻为40?,采用4相八拍工作方式。系统上电后,定时器初始化,当定时时间达到预设时间时,依次输出预设脉冲,脉冲在软件中是由数组生成的,从而使步进电机按照预设效果依次运行。步进电机驱动流程图如图4.5所示:

开 始开 定 时 器定时时间到?NY依次输出预设脉冲结 束 图4.5步进电机驱动流程图

31

第5章 系统调试

所谓调试,是将编写的程序投入实际的硬件电路中,检验硬件电路的输出正误,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程,从而使得硬件与软件有机的结合起来。

整个调试过程分为三个部分:硬件调试,软件调试,系统联机调试。

5.1 硬件调试

单片机系统的硬件调试和软件调试是不能分开的。通常是先排除明显的硬件故障以后,再和软件结合起来调试以进一步排除故障。可见硬件调试是基础,如果硬件调试不通过,软件调试则是无从做起。

当硬件设计从布线到焊接安装完成之后,就开始进入硬件调试阶段,调试分为以下两步:静态调试和动态调试。

5.1.1 硬件静态调试

硬件静态调试,主要针对以下几点:

(1) 排除逻辑故障:这类故障主要包括错线、开路、短路。排除的方法是首先认真对照原理图,看接线是否有错误。应特别注意电源系统检查,以防止电源短路和极性错误,并重点检查系统总线是否存在相互之间短路或与其它信号线短路,必要时利用数字万用表的短路测试功能。

(2) 排除元器件失效:造成这类错误的原因有两个:一个是元器件买来时就已坏了;另一个是由于安装错误,造成器件烧坏。首先可以采取检查元器件与设计要求的型号、规格和安装是否一致,在保证安装无误后,用替换方法排除错误。 (3) 排除电源故障:电源的故障包括电压值不符合设计要求、电源引出线和插座不对应、电源功率不足、负载能力差等。在通电前,要检查电源电压的幅值和极性,否则很容易造成集成块损坏。其次,加电后检查各插件上引脚的电位(单片机IO口的引脚电压在4.5V~5.0V属于正常情况)。

(4) 解决可靠性差:引起系统不可靠的因素很多,如金属化孔、接插件接触不良会造成系统时好时坏,经不起振动;内部和外部的干扰、电源纹波系数过大、器件

32

负载系数过大等造成逻辑电平不稳定;另外,走线和布局的不合理等也会引起系统可靠性差。针对以上各种情况,分别提供了解决方案。

5.1.2 硬件动态调试

动态调试是在用户系统工作的情况下发现和排除用户系统硬件中存在的器件内部故障,器件间连接错误的一种硬件检查。动态调试借用开发系统资源来调试用户系统中单片机的外围电路,使系统在运行中暴露问题,从而发现故障,排除故障。其方法是由近及远,由分到合的顺序。

由分到合是指,按照逻辑功能将用户系统硬件电路分为若干块,如显示部分,DA部分,比较电路部分等,先分块调试。当调试某块电路时,与该电路无关的器件全部从用户系统中去掉,这样,就可以将故障范围限定在局部电路上。当各块电路调试无故障后,将各块电路逐步加入系统之中,再对各块电路功能及各电路间可能存在的相互联系进行试验,直到所有电路加入系统后各部分电路仍能正确工作为止,由分到合的调试就完成了。

5.2 软件调试

软件调试方法与所选用的软件结构和程序设计技术有关。如果采用模块程序设计技术,则逐个模块调试好后,再进行系统程序总调试;如果采用实时多任务结构程序,一般逐个任务进行调试。本次设计,我们的软件采用的是模块化结构。

软件调试过程如下:

(1) 模块结构程序调试时要一个个子程序分别调试。调试的手段可采用单步运行的方式和断点运行的方式,通过检查用户系统CPU的现场、RAM的内容和I/O口的状态,检测程序执行结果是否符合设计要求。

(2) 各程序模块调试通过以后,可以把有关的功能模块联合起来一起进行整体程序综合调试。在这个阶段发生故障的原因可能是各子程序运行时破坏现场、缓冲单元发生冲突、标志位的建立和清除在设计上失误、堆栈区域溢出等。

(3) 在上述两步调试完成后,除了单步和断点调试,还应进行连续调试。因为这样可以能确定CPU的实时响应问题。

33

(4) 当全部调试完成后,反复运行了多次,观察稳定性,必要时要对延时子程序作适当的修改。

软件调试的界面图如下图5.1所示:

图5.1软件调试界面图

5.3 联机调试

软件调试通过之后就是进行软硬件联机调试,在联机调试中出现了以下问题: (l)步进电机不能正常运行,通电后不断抖动。检查后发现驱动电路所加的驱动电压过小,加大后,电机正常运行。

(2)运行后,直流电机不能运行。经仔细检查后发现将驱动电路输出电平评估错误,输入低电平经驱动电路后输出高电平,因此,直流电机另一端应该与接地端相连接。调整接线后,运行正常。

(3)12864显示不正常,经过检查后发现是软件的延时程序有问题,改变延时时间,就解决问题。

(4)按键操作失灵,经检查后发现焊接时发生短路,纠正后操作正常。

34

5.4 调试结果

通过以上硬件调试、软件调试、联机调试三个阶段的工作后,系统总体上实现了预期的效果。单片机上电复位后,液晶显示制作者信息及毕设题目;按1号键,显示发球模式;按2号键,进入随机模式;按3号键,进入定向模式。本次设计的调试结果如下图所示。

未上电时系统如图5.2所示。

图5.2 系统未上电

上电后,液晶显示制作者信息并提示用户利用按键选择模式。如图5.3(a)和(b)所示。

35

(a)显示制作者信息 (b)提醒用户选择模式

图5.3 系统上电显示图

当用户按下按键后,显示当前模式,如图5.4所示显示当前模式的发球计数。

(a)随机模式 (b)定向模式

(c)定向模式中设定的上旋球发球模式 (d)定向模式中设定的下旋球发球模式

图5.4 显示当前运行模式的发球计数

36

本文来源:https://www.bwwdw.com/article/ihi7.html

Top