句尾的分号在应为“ ; ”,当使用中文输入法时为 “ ;”,此时编译后程序会报错; 2. 源文件编写完成后需要存盘,注意在填写完保存名称后要加“.c”后缀,否则无法编译; 3. 当需要使用某些特殊函数(如abs( )取绝对值函数)时,需要在源文件开始部分添加函数所在
的头文件(如:#include
char a; // a的取值为-128~127;
unsigned char a; //a的取值变为0~255;
由于Atmega64是8位单片机,即CPU一次只能处理8位数据(一个字节)。当需要处理
一个int或者unsigned int型 16位数据时,需要进行两次处理,比如:
PA端口要读取一个16字节数据temp,并且把此值赋给无符号整型 pos; unsigned int temp;
unsigned char MB,LB;
PORTA=(unsigned char) ((temp&0xff00)>>8); //读取temp的高八位数据 MB=PORTA; //temp的高八位数据赋给MB;
PORTA=(unsigned char) ((temp&0x00ff)); //读取temp的第八位数据 LB=PORTA; // temp的高八位数据赋给MB;
pos=MB*256+LB;
5. 注意ICCAVR环境下的C语言编程与Turbo C或者VC++编译环境中的C语言在有些方面
有所不同,例如:
unsigned int temp;
PORTA=(unsigned char) ((temp&0xff00)>>8); //读取temp的高八位数据 unsigned char MB;
MB=PORTA; //temp的高八位数据赋给MB;
PORTA=(unsigned char) ((temp&0x00ff)); //读取temp的第八位数据 unsigned char LB;
LB=PORTA; // temp的高八位数据赋给MB;
pos=MB*256+LB;
编译后系统会报错,原因是在ICCAVR中,要使用变量,必须在函数内首先声明变量类型,而上述语法在VC++6.0环境下可以编译运行。
[注]:更为详细的C程序编写语法和技巧请参照相关书籍 [1] C语言程序设计 谭浩强 清华大学出版社
[2] AVR单片机C语言入门指导 沈文 清华大学出版社
1.4 下载:Progisp下载软件
1.4.1 下载前的准备工作:
USB下载线
安装USB下载线驱动:
使用USB下载线下载程序需要事先将驱动程序安装在电脑中。驱动程序见邮箱中所给资源。
在烧入程序之前,须用下载线将单片机和电脑连接起来。 注意:
计算机的USB口通过编程器提供5V电源到开发板上,因此烧写程序的时候不需要接外接电源(如下图电线所示)。
1.4.2 Progisp使用简介
Progisp作为下载软件的操作非常简单,下图是Progisp的软件界面。
Progisp软件界面图
1) 选择“编程器及接口”和“选择芯片”
编程器及接口选择“USBASP”和“USB”,如下图所示。
2) 调入Flash
点击“调入Flash”,将使用ICCAVR生成的*.hex文件调入程序。如下图所示。
3) 点击“自动”烧写程序
最后,点击“自动”将程序烧入单片机,则下载工作完成。如图所示。
如需了解更多的关于Progisp的知识,可以参考所给progisp167文件夹中的progisp.doc文件或上网查找更多信息。
第二章 直线运动单元控制系统硬件设计
现代的运动控制系统五花八门,但主要由三个部分组成:控制器,功率驱动,执行元件。高级的运动控制卡的系统如下图:
典型运动控制系统示意图
这是一个典型的,也是目前运用的较为广泛的控制方式,它的工作分为三个过程: ? 通过PC编程或者操作面板向运动控制器发出指令; ? ?
运动控制器响应并通过D/A的模拟电压或者产生相应的脉冲信号; 驱动器接受模拟电压或者脉冲信号并向电机提供相应的电压。
通过这三个流程,我们便达到了运动控制的目的,同时这三个部分是构成运动控制系统必须的,也是变化多样的。(虽然它们可以构成多种不同的控制系统,但是我们只要研究它们的共性和特点,分析它们的设计方法,那么,我们将为以后进一步学习运动控制系统打下坚实的基础。)
2.1 系统功能说明
本系统的直线运动单元控制器采用两级计算机系统实现。上位机采用通用计算机,下位机采用单片机控制。上位机软件通过PC机串口的发送端发送通信协议给单片机。单片机接收到相关协议后,通过相应的控制算法得到电机驱动信号(PWM),对直流电机进行调速控制。与此同时,单片机通过232串口的发送端将采集的数据上传给上位机PC,上位计算机在应用软件的支持下,对数据进行处理并实时绘制速度、电压和误差响应曲线,显示在屏幕上。
2.2 系统总体设计
2.2.1 应用系统结构设计
根据直线运动单元的运动和控制特点,控制器需要完成串行数据通信、信号采集、功率驱动和开关控制等任务。该直线运动单元控制系统的结构如下图所示: