XPR1022模块机器人使用说明书.docx
- 文档编号:9215632
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:69
- 大小:1,016.81KB
XPR1022模块机器人使用说明书.docx
《XPR1022模块机器人使用说明书.docx》由会员分享,可在线阅读,更多相关《XPR1022模块机器人使用说明书.docx(69页珍藏版)》请在冰豆网上搜索。
XPR1022模块机器人使用说明书
先进机器人产品与服务
XP-R1022模块化机器人
使用说明书
江苏新科教技术有限公司
目录
一、XP-R1022模块机器人简介1
二、编译器ICCAVR使用入门3
1、ImageCraft的ICCAVR编译器安装3
2、ICCAVR介绍5
3、ICCAVR向导9
4、ICCAVR的IDE环境12
5、菜单解释15
6、C库函数与启动文件21
7、AVR硬件访问的编程36
8、C的运行结构51
9、调试57
10、ICCAVR汇编参考57
三、XP-R1022硬件系统介绍66
一、XP-R1022模块机器人简介
●XP-R1022模块机器人系统及相关组件
◆开发系统的组成
1.以AtmelAtmega16微控器为主芯片的上层控制板
2.以TA8435芯片为中心的驱动板
3.以AtmelAtmega8微控器为主芯片的底层巡线板
4.NOKIA5110LCD显示屏
◆相关组件
1.DC12V-1000mA监控专用电源
2.JTAG仿真器一个
3.步进电机两个
●XP-R1022模块机器人简介
◆XP-R1022简介
XP-R1022模块机器人是大学生机器人创新基地汲取机器人电视大赛、全国电子大赛获奖选手宝贵经验,自主研发的模块化3轮移动平台,此平台2轮驱动,前置金属万向轮,控制简易、运动灵活、机动性能强。
车体采用酚醛树脂覆铜箔板材料,铺设电路的同时作为机体结构,简洁美观而大方,车轮采用聚甲基丙烯酸甲酯轮,轮美观、轻便、耐磨性好、抓地摩擦力大,双行走步进电机,让平台拥有充足动力快速运动。
此平台兼容安装Mega16控制器、Mega8控制器、ArduinoMega控制器、12路舵机控制器与步进电机电机驱动板,非常适合单片机爱好者、各大中小学开展机器人普及教育使用。
Atmega16微控器
轮
全金属万向轮
步进电机
舵机扩展口
5110显示屏
按键
◆性能指标
1.采用AtmelAtmega16处理器的主控板1套
2.行走步进电机驱动板1套
3.循线双路红光传感器1套
4.位置伺服马达2个
5.42行走步进电机两个。
二、
编译器ICCAVR使用入门
1、ImageCraft的ICCAVR编译器安装
1、运行光盘上的SETUP.EXE程序进行安装。
方法一:
a、打开“我的电脑”
b、打开光盘驱动器所对应的盘符
c、双击光盘中文件“SETUP.EXE”的图标
d、按照屏幕提示选定一个安装路径后进行安装
方法二:
a、在“开始”菜单中选择运行项目
b、在运行对话框中填入“drive:
\setup.exe”
注意drive对应你的机器中的光盘驱动器盘符
c、按“确定”键开始安装
d、其余同方法一
注意:
(1)按上述方法进行安装后得到的是一个只可以使用30的未注册版。
对正式版用户还要进行第二步的注册,才可得到一个无时间限制的正式版。
(2)ICCAVR正式版分标准版和专业版,在标准版中有一些功能限制。
如:
代码的压缩、工程和文件的配置检查在标准版中不可以使用。
2、对安装完成的软件进行注册
对首次安装并且使用期未超过30天的用户,可以这样注册:
a、启动ICCAVR编译器的集成环境(IDE)。
b、将正式版中附带的一张名称为“UnlockDisk”的软盘插入你机器的软驱器中。
c、在IDE的“Help”菜单中寻找标题为“ImportingaLicensefromaFloppyDisk”的一项并且进行单击。
d、ICCAVR软件自动进行注册,当注册完成后会提示你注册文件已从软盘移走。
当你确定并再次重新启动ICCAVR后,会发现软件已经完成注册。
对不是首次安装或使用时间已超过30天的用户,可这样注册:
a、对这类用户在程序启动时已不能进入IDE环境,而是出现一个提示你注册的对话框你应该选择“YES”按钮。
b、这时会出现一个注册对话框。
对话框上有一个标题为“ImportingaLicensefromaFloppyDisk”的按钮。
c、将正式版中附带的一张名称为“UnlockDisk”的软盘插入你机器的软盘驱动器中,单击上一步中提到的按钮。
d、ICCAVR软件自动进行注册,当注册完成后会提示你注册文件已从软盘移走。
当你确定并再次重新启动ICCAVR后,会发现软件已经完成注册。
注意:
(1)“UnlockDisk”软盘在注册时应打开写保护,否则无法完成注册。
(2)完成注册后,“UnlockDisk”软盘成为一张空盘,不可以在另一台机器上进行安装和注册。
(3)如果你需要在不同的电脑中使用ICCAVR或在同一台电脑中将ICCAVR重新安装在与原来不同的目录位置时,应该首先在“Help”菜单中选择“TransferringYourLicensetoaFloppyDisk”一项将你的注册文件传送到一张软盘上,然后再按上述方法进行安装注册。
2、ICCAVR介绍
1、ImageCraft的ICCAVR介绍
ImageCraft的ICCAVR是一种使用符合ANSI标准的C语言来开发微控制器(MCU)程序的一个工具它有以下几个主要特点:
ICCAVR是一个综合了编辑器和工程管理器的集成工作环境(IDE),其可在WINDOWS9X/NT下工作。
源文件全部被组织到工程之中,文件的编辑和工程的构筑也在这个环境中完成。
编译错误显示在状态窗口中,并且当你用鼠标单击编译错误时,光标会自动跳转到编辑窗口中引起错误的那一行。
这个工程管理器还能直接产生您希望得到的可以直接使用的INTELHEX格式文件,INTELHEX格式文件可被大多数的编程器所支持用于下载程序到芯片中去。
2、ICCAVR中的文件类型及其扩展名
文件类型是由它们的扩展名决定的,IDE和编译器可以使用以下几种类型的文件。
输入文件:
.c扩展名----表示是C语言源文件
.s扩展名----表示是汇编语言源文件
.h扩展名----表示是C语言的头文件
.prj扩展名----表示是工程文件,这个文件保存由IDE所创建和修改的一个工程的有关信息。
.a扩展名----库文件,它可以由几个库封装在一起。
libcavr.a是一个包含了标准C的库和AVR特殊程序调用的基本库。
如果库被引用,链接器会将其链接到您的模块或文件中。
您也可以创建或修改一个符合你需要的库。
输出文件:
.s对应每个C语言源文件,由编译器在编译时产生的汇编输出文件。
.o由汇编文件汇编产生的目标文件,多个目标文件可以链接成一个可执行文件。
.hexINTELHEX格式文件,其中包含了程序的机器代码。
.eepINTELHEX格式文件,包含了EEPROM的初始化数据。
.cofCOFF格式输出文件,用于在ATMEL的AvrStudio环境下进行程序调试。
.lst列表文件,在这个文件中列举出了目标代码对应的最终地址。
.mp内存映象文件,它包含了您程序中有关符号及其所占内存大小的信息。
.cmdNoICE2.xx调试命令文件。
.noiNoICE3.xx调试命令文件。
.dbgImageCraft调试命令文件。
3、附注和扩充
#pragma(编译附注)
这个编译器接受以下附注:
#pragmainterrupt_handler
这个附注必须在函数之前定义,它说明函数funcl、func2是中断操作函数,所以编译器在中断操作函数中生成中断返回指令reti来代替普通返回指令ret,并且保存和恢复函数所使用的全部寄存器;同样编译器根据中断向量号vectornumber生成中断向量地址。
#pragmactask
这个附注指定了函数不生成挥发寄存器来保存和恢复代码,它的典型应用是在RTOS实时操作系统中让RTOS核直接管理寄存器。
#pragmatext:
改变代码段名称,使其与命令行选项相适应。
#pragmadata.
改变数据段名称,使其与命令行选项相适应。
这个附注在分配全局变量至EEPROM中时必须被使用,读者可参考访问EEPROM的例子。
#pragmaabs_address:
函数与全局数据不使用浮动定位(重定位),而是从
开始分配绝对地址。这在访问中断向量和其它硬件项目时特别有用。
#pragmaend_abs_address
结束绝对定位,使目标程序使用正常浮动定位。
C++注释
如果你迭择了编译扩充(Project->Options->Compiler),你可以在你的源代码中使用C++的//类型的注释。
二进制常数
如果你选择了编译扩充(Project->Options->Compiler),你可以使用0b<1|0>*来指定二进制常数,例如,Obl0101等于十进制数21。
在线汇编
你可以使用asm(“string”)函数来指定在线汇编代码,读者可参考在线汇编。
4、代码转换
IAR或其它ANSIC编译系统的代码转换
IARC编译器作为应用于AVR的第一个C编译器,它有十分丰富的源代码。
当你从IAR编译系统转换到ImageCraft编译系统时,绝大多数符合ANSIC标准的程序代码不需要转换,IARC中10寄存器的定义与ICCAVR也是相同的。
中断操作描述,ICCAVR使用pragma附注描述中断操作函数,而IAR引入了语法扩充(interrupt关键字),下面是一个对照:
在ICCAVR中:
#pragmainterrupt__handlerfunc:
4//4是这个中断的向量号,func为中断处理函数名称,ICCAVR可以使多个中断向量共用一个中断处理函数。
在IAR中:
interrupt[vector_name]func()//vector_name是某一个中断向量的名称,IARC的中断向量地址使用中断名称来代替,以增加程序的可读性。
扩充关键字
IAR引入flash关键字将项目分配进入程序存贮空间(FLASH存贮器),ICCAVR使用const关键字来达到相同的目的。
过程调用转换
在两个编译系统之间函数参数传递使用的寄存器是不同的,这仅影响手工写的汇编函数。
在线汇编、宏等,IAR不支持在线汇编符号,而ICCAVR支持在线汇编。
3、ICCAVR向导
1、起步
自你启动IDE后,首先从Project菜单系统选择Open命令,进入\icc\examples.avr目录并且选择并打开“led”工程,工程管理器显示在这个工程中只有一个文件led.c。
然后从Project菜单中选择Options命令打开工程编译选项,在”Target”标号下选择目标处理器。
然后从Project菜单中选择MakeProject命令,IDE将调用编译器编译这个工程文件,并且在状态窗口中显示所有的信息。
如果没有错误,在与源文件同一个目录(在这个例子中是\icc\examples.avr)中输出一个文件led.hex。
这个文件是INTELHEX格式,大多数能支持AVRMCU的编程器和模拟器都支持这种格式,并且能下载这个程序进入你的目标系统,这样就完成了一个程序的构筑。
如果你希望用支持COFF调试信息的工具来测试你的程序,比如AVRStudio,那么你需要从Project菜单中选择Options命令,在编译标签下选择COFF输出文件格式。
对一些常用的功能,你也可使用工具条或鼠标右键弹出菜单。
例如,你可以茌工程窗口单击鼠标右键选择编译选项。
在工程窗口中双击文件名,IDE将使用编辑器打开这个文件。
按这个方法打开led.c,作为试验可设置一些错误,例如从一行中删除分号“;”。
现在从Project菜单中选择MakeProject命令,IDE首先自动保存已经改变的文件,并且开始编译这个文件。
这时在状态窗口中会显示错误信息,单击状态窗口中错误信息行,或单击其左边的错误符号,光标将移到编辑器中错误行的下面一行上(基本上所有C编译器都是这样)。
开始一个新的工程
从Project菜单中选择New命令,并且浏览至你希望输出工程文件的目录,输出文件的名称取决于你的工程文件名称。
例如,如果你创建一个名称为foo.prj的工程,那么输出文件名称为foo.hex或foo.cof等。
自从创建你自己的工程后,你可以开始写你的源代码(C或汇编格式),并且将这个文件加入到工程文件排列中。
单击工具栏中"Build”图标,可以很容易地构筑这个工程,IDE输出与ATMEL的AVRStudio完全兼容的COFF文件,你可以使用ATMEL的AVRStudio来调试你的代码。
为更容易地使用这个开发工具,你可以使用应用程序向导来生成一堂使用有关硬件的初始化代码。
2、C程序的剖析
一个C程序必须定义一个main调用函数,编译器会将你的程序与启动代码和库函数链接成一个“可执行”文件,因此你也可以在你的目标系统中执行它。
启动代码的用途在启动文件中很详细地被描述了,一个C程序需要设定目标环境,启动代码初始化这个目标使其满足所有的要求。
通常,你的main例程完成一些初始化后,然后是无限循环地运行。
作为例子,让我们看\icc\examples目录中的文件led.c。
#include
/*为使能够看清LED的变化图案,延时程序需要有足够的延时时间*/
voidDelay()
{
unsignedchara,b;
for(a=1;a;a++)
for(b=1;b;b++);
}
voidLED_On(inti)
{
PORTB=~BIT(i);/*低电平输出使LED点亮*/
Delay();
}
voidmain()
{
inti;
DDRB=OxFF;/*定义B口输出*/
PORTB=OxFF;/*B口全部为高电平,对应LED熄灭*/
while
(1)
{
/*LED向前步进*/
for(i=0;i<8;i++)
LED_On(i);
/*LED向后步进*/
for(i=8;i>0;i--)
LED_On(i);
/*LED跳跃*/
for(i=0;i<8;i+=2)
LED_On(i);
for(i=7;1>0;i-=2)
LED_On(i);
}
}
这个main例程是很简单的,在初始化一些IO寄存器后之后,它运行在一个无限循环中,并且在这个循环中改变LED的步进图案。
LED是在LED_On例程中被改变的,
在LEDOn例程中直接写正确的数值到10端口。
因为CPU运行很快,为能够看见图案变化LED_On例程调用了延时例程。
因为延时的实际延时值不能被确定,这一对嵌套循环只能给出延时的近似延时时间;如果这个实际定时时问是重要的,那么这个例程应该使用硬件定时器来完成延时。
其它的例子,8515intr.c程序很简单,但同样清楚地显示了如何用C写一个中断处理过程,这两个例子可以作为你的程序的起点。
4、ICCAVR的IDE环境
1、编译一个单独的文件
正常建立一个输出文件的次序是,你首先应该建立一个工程文件并且定义属于这个工程的所有文件。
然而,我们有时也需要将一个文件单独地编译为目标文件或最终的输出文件。
这时可以这样操作:
从IDE菜单“File”中选择“CompileFile...”命令,来执行“toObject”和“toOutput”中的任意一个。
当你调用这个命令时,文件应该是打开的,并且在编辑窗口中可以编辑的。
编译一个文件为目标文件(toObject),对检查语法错误和编译一个新的启动文件是很有用的。
编译一个文件为输出文件(toOutput),对较小的并且是一个文件的程序较为有用。
注意:
这里使用默认的编译选项。
2、创建一个新的工程
为创建一个新的工程,从菜单“Project”中选择“New”命令,IDE会弹出一个对话框,在对话框中你可以指定工程的名称,这也是你的输出文件的名称。
如果你使用一些已经建立的源文件,你可在菜单“Project”中选择“AddFile(s)”命令。
另外,你可以在菜单“File”中选择“New”命令来建立一个新的源文件来输入你的代码,你可以在菜单“File”中选择"Save”或“SaveAs”命令来保存文件。
然后你可以象上面所述调用“AddFile(s)”命令将文件加入到工程中,也可在当前编辑窗口中单击鼠标右键选择"AddtoProject"将文件加入己打开的工程列表中。
通常你输出源文件在工程同一个目录中,但也可不作这样要求。
工程的编译选项使用菜单中"Project"中的“Options”命令。
3、工程管理
工程管理允许你将多个文件组织进同一个工程,而且定义它们的编译选项,这个特性允许你将工程分解成许多小的模块。
当你处理工程构筑时,只有一个文件被修改和重新编译。
如果一个头文件作了修改,当你编译包含这个头文件的源文件时,IDE会自动重新编译已经改变的头文件。
一个源文件可以写成C或汇编格式的任意一种。
C文件必须使用“.c”扩展名,汇编文件必须使用“.s”扩展名。
你可以将任意文件放在工程列表中,例如你可以将一个工程文档文件放在工程管理窗口中,工程管理器在构筑工程时对源文件以外的文件不予理睬。
对目标器件不同的工程,可以在编译选项中设置有关参数。
当你新建一个工程时,使用默认的编译选项,你可以将现有编译选项设置成默认选项,也可将默认编译选项装入现有工程中。
默认编译选项保存在default.prj文件中。
为避免你的工程目录混乱.你可以指定输出文件和中间文件到一个指定的目录,通常这个目录是你的工程目录的一个子目录。
4、编辑窗口
编辑窗口是你与IDE交流信息的主要区域,在这个窗口中你可以修改相应的文件。
当编译存在错误时,用鼠标单击有关错误信息时,编辑器会自动将光标定位在错误行的位置。
注意:
对C源文件中缺少分号“;”的错误,编辑器定位于其下面一行。
5、应用构筑向导
应用构筑向导是用于创建外围设备初始化代码的一个图形界面。
你可以单击工具条中的"Wizard"按钮或菜单“Tools”中的“ApplicationBuilder”命令来调用它。
应用构筑向导使用编译选项中指定的目标MCU来产生相应的选项和代码。
应用构筑向导显示目标MCU的每一个外围设备子系统,它的使用是很显而易见的。
在这里你可以设置MCU的所具有的中断、内存、定时器、10端口、UART、SPI和模拟量比较器等外围设备,并产生相应的代码。
如果你需要的话,还可产生main()函数。
6、状态窗口
状态窗口显示IDE的状态信息。
7、终端仿真
IDE有一个内置的终端仿真器,注意它不包含任意一个ISP(在系统编程)功能,但它可以作为一个简单的终端,或许可以显示你的目标装置的调试信息,也可下载一个ASCII码文件。
从6.20版本开始,IDE加入了对ISP的支持。
5、菜单解释
1、弹出菜单
在ICCAVR环境中单击右键,那么ICCAVR会根据实际情况弹出相应的工具菜单。
2、FileMenu文件菜单
New:
新建一个文件,你可在编辑窗口是输入文字或代码。
Reopen:
重新打开历史文件,有关历史文件显示的右边的子菜单中。
Open:
打开一个已以经存在的文件用于编辑,文件用浏览窗口选择。
Reload..formDisk:
放弃全部的修改,从磁盘中重新装载当前文件。
Reload...fromBackUP:
从最后一次的备份文件中装载当前文件。
Save:
保存当前文件,如果环境设置中设置了保存备份文件,则将原文件以
Saveas:
将当前文件用另外一个名称来保存。
Close:
关闭当前文件,如果文件有过修改,系统会进行提示。
CompileFile..toObject:
编译当前文件成目标文件。
注意目标文件不可以直接用于对芯片编程或用于调试,其主要用于:
语法检查、为创建新的启动文件或库产生目标文件。
CompileFile…toOutput:
编译当前文件成输出文件,其产生的输出文件可用于编程器和调试器。
SaveAll:
保存所有打开的文件。
CloseAll:
关闭当前打开的所有文件,同样它会提示你保存已经修改文件。
Print:
打印当前文件。
Exit:
退出ICCAVR的IDE环境。
3、EditMenu编辑菜单
Undo:
撤消最后一次的修改。
Redo:
撤消最后一次的Undo。
Cut:
剪切选择的内容到剪帖板。
Copy:
拷贝选择的内容到剪帖板。
Paste:
将剪帖板内容粘帖在当前光标的位置。
Delete:
删除选择的内容。
SelectAll:
选择全部内容。
BlockIndent:
对选择的整块内容右移
BlockOutdent:
对选择的整块内容左移
4、Searchmenu寻找菜单
Find.,在编辑窗口中寻找一个文本。
它有以下选项:
MatchCase-区分大小写
WholeWord-全字匹配
Up/Down-往上或往下
FindinFiles...-在当前打开的文件中或在当前工程的所有文件中或当前目录中的文件中寻找一段文本。
它有以下选项:
CaseSensitive-大小写敏感
WholeWord-全字匹配
RegularExpression-寻找规则的表达式
Replace...-在编辑器中替换文本。
FindAgain-寻找下一个。
GotoLineNumber-转到指定行号。
AddBookmark-添加书签。
DeleteBookmark-删除书签。
NextBookmark-跳转到下一个签。
GotoBookmark-跳转到指定的书签。
5、ViewMenu视图菜单
StatusWindow-如果选中,显示状态窗口。
ProjectMakefile-以只读方式打开makefile文件
OutputListingFile-以只读方式打开列表文件
6、ProjectMenu工程菜单
New...-创建一个新的工程文件。
Open-打开一个已经存在的工程文件。
OpenAllFiles...-打开工程的全部源文件。
CloseAllFiles-关闭全部打开的文件,
Reopen...-重新打开一个最近打开过的工程文件。
MakeProject-解释和编译已经修改的文件为输出文件。
RebuildAll-重新构筑全部文件,注意在版本升级后对原有工程最好全部重新构筑。
AddFile(s)-添加一个文件到工程中,这个文件可以是非源文件。
RemoveSelectedFiles-从工程中删除选择的文件。
Option...-打开工程编译选项对话框。
Close-关闭工程
SaveAs...-将工程换一个名称存盘。
7、ToolsMenu工具菜单
EnvironmentOptions-打开环境和终端仿真器选项对话框
EditorandPrintOptions-打开编辑和打印选项对话框
AVR
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- XPR1022 模块 机器人 使用 说明书
![提示](https://static.bdocx.com/images/bang_tan.gif)