本 科 毕 业 设 计
开始 第 31 页 共 45 页
初始化 按键判断 相应按键子程序 图6.1 系统主流程图
6.1.2定时器T0中断(步进脉冲输出)模块流程
系统上电复位后,先调用初始化子程序,对步进电机各端口,相关参数进行初始化,设置T0工作方式控制字和时间常数。初始化完成后,步进电机处于停止状态,T0定时器处于关闭状态。然后循环调用读键盘子程序和键盘处理子程序,等待中断,以便实现步进电机转动控制。
中断入口 关闭定时器,根据设定速度载入初值 根据系统设定的参数输出相应的控制脉冲到端口 开定时器 返回 图6.2读键盘子程序流程图
本 科 毕 业 设 计
第 32 页 共 45 页
键盘处理子程序开始时要从存放实际键值的参数中取出刚读取到的键值送到累加器A,依次判断累加器A的低四位。若检测到低电平,则说明与该位对应的按键按下,从而转到相应的处理子程序段,完成相应的操作,实现相应的功能后返回。若没有检测到高电平则返回。
步进电机的启停控制通过启停定时器0来实现,因为定时器0控制着脉冲信号的输出,关闭定时器0也就阻止了脉冲信号的输出。
6.2系统软件的编译环境
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil C51开发系统各部分功能和使用。
UVision/I shell集成开发环境 C51编译器 A51编译器 C库文件 LIB51管理库 RTX51实时操作系统 BL51连接 OH51转换器 图6.2.1 C51工具包整体结构图
本 科 毕 业 设 计
第 33 页 共 45 页
Keil C51单片机软件开发系统的整体结构C51工具包的整体结构,如图3.1所示,其中uVision与Ishell分别是C51 for Windows和for DOS的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE 本身或其它编辑器编辑C 或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM 中。 6.2.1 使用Keil软件建立一个工程
Keil是目前进行51单片机开发最常用的编译软件。关于Keil的使用,有很多的资料介绍,这里只介绍其整个编译过程,在最短时间内开始使用Easy 51DP-2开发板。对于Keil更详细的介绍,可以参考一些专门书籍资料。在Keil里,每一个完整的程序,都是以一个工程的形式建立的。一个工程里可以有一个或多个*.c文件和*.h文件,但只可以有一个main()函数。一般的做法是将包含main()函数的C文件加入到工程中,其他文件以#include头文件的形式加到这个C文件里。这样,在编译的时候,其他的文件会被自动的导入到工程里来。
打开Keil软件后,出现(图6.2.2)所示界面。当然,如果Keil在上次关闭时有打开的工程,再一次打开时它会自动加载上一次的工程文件。
本 科 毕 业 设 计
第 34 页 共 45 页
图6.2.2 Keil软件主界面
首先点击Project->New Project…(Project->Open Project…为打开一个已经存在的工程),如图6.2.3所示。
图6.2.3 Keil软件打开新工程界面
点开后,在出现的对话框中选择工程存在路径,单击“保存”后,出现(如图6.2.4所示)界面。在此界面上选择电路板上所用的单片机型号:Atmel AT89S51(或者是AT89S52,视开发板上具体型号而定),单击“确定”。
本 科 毕 业 设 计
第 35 页 共 45 页
图6.2.4 选择电路板上所用的单片机型号
设置完成后,软件会提示“是否将8051上电初始化程序添加入工程?”如图6.2.5所示,这个一般选择“否”。(关于STARTUP.A51的相关内容可查阅相应资料)
图6.2.5 是否将8051上电初始化程序添加入工程
这样,就建立了一个空的51工程。
接下来的事,就是在这个工程里面加入自己的程序代码。点击
,或者File->New,
便建立了一个空的文本框。现在,就可以开始在里面输入你的代码了。
保存时注意:如果是用C语言写的程序,则将文本保存成*.c,如果是用汇编写的程序,则将文本存成*.asm。
到目前为步,我们已经建立了一个工程,也写了一个程序代码。但现在还不能开始编译。因为还没有将程序代码添加到工程里面去。