AW60实验指导书版本v103Word文档下载推荐.docx
- 文档编号:19702893
- 上传时间:2023-01-09
- 格式:DOCX
- 页数:28
- 大小:2.88MB
AW60实验指导书版本v103Word文档下载推荐.docx
《AW60实验指导书版本v103Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《AW60实验指导书版本v103Word文档下载推荐.docx(28页珍藏版)》请在冰豆网上搜索。
实验步骤:
(1)阅读有关命令及例子;
在CW软件下运行调试程序.
(2)详细记录每一步所用的命令,以及查看结果的方法和具体结果.
5:
实验报告要求:
(1)整理指令集及熟悉其内容并调试运行.
(2)熟悉DEBUG程序及调试方法,运行例子,写出自己所编程序的调试过程.
实验三:
编程环境与数据排序的调试与实现
1、实验目的
掌握Freescale68HC,S,RS08汇编语言设计和调试方法,熟悉CW08、嵌入式微控制器在线实验开发系统的使用方法。
二、实验内容
1.实验环境
PC机、实验平台、CodeWarrior集成开发环境、BDM
2.硬件接线
无
3.实验内容:
(1)利用汇编语言编写程序,把Freescaleaw60内部RAM$70~$7F单元中的16个无符号数按从小到大的顺序排列,结果放到内部RAM$80~$8F单元中,$70~$7F中数的顺序保持不变。
(2)利用C语言编程完成实验内容(选做内容)。
三、实验方案及流程图
1.实验要求:
(1)通过CWIDE或ProEmulator调试程序并查看运行结果。
(预习时完成)
(2)利用CWIDEMon08接口把程序下载到MCU实验平台,通过单步、断点等多种调试方式运行程序并查看运行结果。
(3)完成实验报告的撰写。
2.实验方案:
本实验采用软件设置断点的方法完成程序调试,查验实验结果。
无须进行硬件连线。
实验采用冒泡法进行数据排序,程序流程如图1所示。
N
Y
图1冒泡法排序流程图
四、实验程序清单(注意:
以下程序的地址需要根据题目及AW60的映像存储器的安排调整)
DATA1EQU$50
DATA2EQU$60
N1EQU$80
N2EQU$81
TEMPEQU$82
FLAGEQU$83
ADDRESS1EQU$84
ADDRESS2EQU$86
ORG$0050
DC.B$10,$20,$80,$72,$23,$32,$43,$54,$64,$76,$98,$43,$76,$87,$62,$62
ORG$8000
Main:
MOV#$10,N2
MOV#$01,FLAG
LDHX#DATA1
STHXADDRESS1
LDHX#DATA2
STHXADDRESS2
LOOP:
LDHXADDRESS1
LDA,X
AIX#1
LDHXADDRESS2
STA,X
DBNZN2,LOOP
L1:
MOV#$0F,N2
MOVN2,N1
BCLR0,FLAG
L2:
CMP,X
BCSL3
BSET0,FLAG
STATEMP
AIX#-1
LDATEMP
L3:
DBNZN1,L2
BRCLR0,FLAG,L4
DBNZN2,L1
BRA$
L4:
ORG$FFFE
DC.WMain
END
调试程序中的问题与错误!
实验四、I/O实验(见参考资料嵌入式技术基础与实践指导:
实验一)
熟悉MCU的I/O端口,掌握I/O的
实验五、键盘查询扫描键值读取实验(见参考嵌入式技术基础与实践指导:
实验三)
实验六、数码管LED实验(见参考嵌入式技术基础与实践指导:
实验四)
实验七、中断实验(见参考嵌入式技术基础与实践指导:
实验八、定时器溢出实验(见参考嵌入式技术基础与实践指导:
实验七)
实验九、输入捕捉实验(见参考嵌入式技术基础与实践指导:
实验八)
实验十、输出比较实验(见参考嵌入式技术基础与实践指导:
实验九)
实验十一、PWM直流电机调速实验(见参考嵌入式技术基础与实践指导:
实验十)
实验十二、综合练习
二、软件开发环境
CodeWarrior™开发环境
Metrowerks公司是世界知名的开发工具开发商,为ARM、MOTOROLA等多家公司提供第三方的开发工具,CodeWarriorIDE是Metrowerks公司开发的一款商业化集成软件,可同时支持汇编和C语言,具有很好的性能。
作为学习和研究,可下载学习版本或申请特别版软件。
可在freescale官网上下载最新版本。
评估版(只能免费使用30天)和专业版(对于代码的长度有限制)。
按说明安装好软件后即可开始使用。
(以下演示使用CodeWarriorIDEV6版本)
1、创建新工程
1.启动CodeWarriorIDE
a.在Windows桌面,选择 开始>
程序>
FreescaleCodeWarrior打开菜单
b.选择CodeWarriorIDE启动CodeWarrior集成开发环境。
如图1-1所示。
图1-1CodeWarrior集成开发环境主界面
默认设置自动打开Startup界面如图1-2所示。
图1-2Startup界面
2、点击CreatNewProject或通过菜单选择“File>
NewProject”进入建立微控制器的新工程界面,如图1-3,在列表中,选择相应的芯片型号(如MC9S08AW60)和连接方式(Connection),连接方式默认选择为“FullChipSimulation”;
当使用目标硬件时,选择相应的连接方式。
微控制器型号和连接方式在工程建立后,也可以在工程属性栏根据需求进行修改。
图1-3微控制器新工程建立界面
3、点击下一步进入工程名称、存放路径、开发语言设置界面,输入工程名称、指定工程存放路径、选择相应的开发语言(可多选),如图1-4所示。
图中工程名称为“Demo01.mcp”,存放路径为“C\”,选择的语言为绝对汇编语言(Absoluteassembly)。
这里有一点要特别注意,选择语言若选择觉得汇编,则语言选择变成单选。
选择其他三个时可以多选。
我们最常用的开发语言是C和汇编。
因接下来的例子要用到汇编,因此此处选择绝对汇编选项。
图1-4工程名称、存放路径、开发语言设置界面
4、点击下一步进入工程文件添加、移除界面,如图1-5所示,可以对新工程中的文件进行添加、移除管理。
图1-5工程文件添加、移除界面
5、点击下一步进入快速应用开发设置界面,如图1-6所示,可以选择器件初始化和“ProcessorExpert”工具自动生成初始化代码。
图中选择“None”则不生成任何器件的初始化代码,工程中只包含启动代码(StartupCode)。
图1-6快速应用开发设置界面
6、点击完成系统会根据上面的设置信息创建新工程,新工程窗口如图1-7所示。
图1-7工程窗口
2、工程文件的修改、编译、链接
建立好的工程可根据需要进行修改,然后进行编译、链接。
如编译、链接过程中出现问题,可根据提示进一步修改,直至成功编译、链接。
1、MCU型号和链接方式更改
通过工程上边的下来列表可重新选择连接方式,也可点击下拉列表右边的工具栏中的第一个快捷图标
(ChangeMCU/Connection)或选择菜单“Project>
ChangeMCU/Connection”打开如图1-8所示的界面进行MCU型号和连接方式的重新设置。
图1-8MCU和连接方式设置
2、源文件的修改
在工程文件区域双击“main.asm”可打开文件编辑窗口如图1-9。
根据需要修改程序,完成后选择菜单“File>
Save”,集成开发环境会保存程序修改。
图1-9文件编辑窗口
3、文件的添加、移除
在工程窗口选择相应的文件夹,右击选择“AddFiles”(如图1-10)或选择菜单“Project>
AddFiles”可打开对话框进行工程文件的添加,选择文件夹中的相应文件,右击选择“Remove”或选择菜单“Project>
Remove”可进行文件移除。
(注意!
一般我们在新建工程以后,都习惯于移除Main.asm文件,添加自己编写的文件,这样可减少出错的概率。
)
图1-10文件的添加、移除
4、文件的编译、链接
点击工程下拉列表右边的工具栏中的第四个快捷图标
(Make)或选择菜单“Project>
Make”(如图1-11所示),对工程进行编译链接,如有错误和警告会显示在相应的信息窗口,(如图1-12所示),可根据信息提示进一步修改,直到通过。
图1-11文件的编译、链接
图1-12编译中的错误
3、调试方法和技巧
工程编译、链接通过只表示工程源文件的语法没有问题,并不代表运行结果一定正确,验证工程运行结果需要借助于调试工具(Debug)。
1、进入调试模式
工程编译、链接通过(无错,有警告也能编译通过,但是最好把警告也消除)后,点击工程下拉列表右边的工具栏中的第五个快捷图标
(Debug)或者选择菜单“Project>
Debug(如图1-13所示),”即可进入“FullChipSimulation”调试模式,该调试模式不需要真是的目标硬件支持,程序实际是在PC上模拟运行。
图1-13进入工程的调试模式
CodeWarrior工程调试模式会打开一个名为“Real-TimeSimulator&
Real-TimeDebuger”的新窗口,如图1-14所示。
图1-14工程调试模式窗口
工程调试窗口包括八个子窗口:
源程序(Source)子窗口、汇编语言(Assembly)子窗口、进程(Procedure)子窗口、寄存器(Register)子窗口、存储器(Memory)子窗口、命令(Command)子窗口、数据(Data)子窗口各一个,这些子窗口可以帮助我们方便地进行调试工作,也可以放大、缩小或者关闭。
这八字子窗口分别为:
源程序(Source)子窗口,显示程序源代码,如图1-15所示。
图1-15源程序(Source)子窗口
汇编语言(Assembly)子窗口,显示源代码的相应汇编指令,如图1-16所示。
图1-16汇编语言(Assembly)子窗口
进程(Procedure)子窗口,显示工程中当前调用的进程和函数信息,如图1-17所示。
图1-17进程(Procedure)子窗口
寄存器(Register)子窗口,显示程序运行时相关寄存器的重要信息,包括MCU类型,CPU周期数(Cycles)、程序计数器PC、累加器A、16为地址指针HX、堆栈指针SP以及程序状态字SR(Status)等,如图1-18所示。
图1-18寄存器(Register)子窗口
存储器(Memory)子窗口,显示程序运行时全部地址空间的存储器信息,包括数据存储器、程序存储器、中断向量表等,如图1-19所示。
注意:
程序运行时,运用的存储器单元都要进行初始化,否则会提出错误。
图1-19存储器(Memory)子窗口
命令(Command)子窗口,显示程序调试命令,也可以再次输入相应命令,如图1-20所示。
图1-20命令(Command)子窗口
数据(Data)子窗口,显示程序运行相关的参数信息,如图1-21所示。
图1-21数据(Data)子窗口
2、调试方法和技巧
(1)常用的调试命令
CodeWarrior提供了丰富的工程调试方法,选择“Run”菜单中的命令(如图1-22所示)或点击主菜单下调试工具条
中的快捷图标即可以开始相应的调试,当然,也可以在命令(Command)子窗口输入相应的命令进行调试,但是,我们一般不用这样的方法。
图1-22CodeWarrior调试菜单
CodeWarrior提供的调试命令主要包括:
●菜单“Run>
Start/Continue”或快捷图标
,运行开始/继续;
Restart”,重新开始;
Halt”或快捷图标
,运行停止;
SingleStep”或快捷图标
,单步运行(即每次执行一条指令);
StepOver”或快捷图标
,单步跳过(类似于单步运行,但把子程序当作一条指令运行,而不进入);
StepOut”或快捷图标
,单步跳出(完成当前子程序,从中直接跳出);
ControlPoints”,打开控制点设置窗口,可以根据程序调试设置相应的断点、观察点、标志点等,如图1-23所示:
图1-23控制点设置窗口
(2)全片仿真功能(FullChipSimulation)
CodeWarrior的全片仿真功能能够在没有任何MCU硬件开发平台支持的情况下,在PC上对的所有I/O接口和外围模块提供完全的仿真。
CodeWarrior为每种型号的MCU提供了完全不同的仿真引擎,因此可以准确的模拟任一款MCU的存储器、I/O接口以及外围模块。
CodeWarrior菜单“HCS08FCS”提供了完整丰富的全片仿真命令,如图1-24所示。
图1-24全片仿真菜单
其中这要的命令包括
●“Lode”,加载可执行文件;
●“Reset”或快捷图标
,目标复位;
●“PortPinsModule”,I/O接口模块输入状态设置;
●“ClockModule”,时钟模块参数显示与设置;
●“SPIModule”,SPI输入输出数据显示与设置;
●“IRQModule”,中断引脚状态设置;
●“ADCModule”,ADC数据显示与设置;
●“SCIModule”,SCI输入输出数据显示与设置;
如点击菜单“HCS08FCS>
PortPinsModule>
SetInputPinLevels(INPUTS)”,打开如图1-25所示窗口可以对I/O输入状态进行设置。
图1-25I/O输入状态设置
三、实验二简单历程
1、将个人学号装到0070-0073地址中(此历程以学号为10550166为例)
在汇编语言中,每行中“;
”后面的内容为注释,只是为了解释这一行指令的内容,即使删去,不影响程序运行。
①打开CW程序,依照“二、软件开发环境”介绍的方法,先在D盘目录下建立一个工程,名为test。
②创建一个新的汇编文件,名为test1.asm。
③将以下内容键入此汇编文件中,并保存。
ORG$0870
LDA#$10;
把10、55、01、66这四个数放在地址为0070H-0073H
STA$0070;
的存储单元中去
LDA#$55
STA$0071
LDA#$01
STA$0072
LDA#$66
STA$0073
ORG$FFFE;
复位矢量
④将此汇编文件添加入工程中,并移除工程中的main.asm文件。
⑤点击Debug进行调试。
⑥点击Make进行软件仿真。
⑦单步运行,观察存储器(Memory)子窗口,观看0070H-0073H地址上的数字有什么变化。
2、在1的基础上,将同桌的学号装到0080-0083地址中,然后将二人学号相加的结果放到0070-0073地址上。
(以同桌学号为10550167为例)
①②两步与1相同,不再赘述。
③将以下内容键入此汇编文件中,并保存。
ORG$0870
LDA#$10
STA$0070
LDA#$10
STA$0080;
将10550167分别放入0080H-0083H地址上
STA$0081
STA$0082
LDA#$67
STA$0083
ADC$0073
DAA;
将加运算后的16进制结果转换为10进制结果
LDA$0082
ADC$0072
DAA
LDA$0081
ADC$0071
LDA$0080
ADC$0070
ORG$FFFE;
DC.WMain
④将此汇编文件添加入工程中,并移除工程中的main.asm文件。
⑦单步运行,观察存储器(Memory)子窗口,观看0070H-0073H、0080H-0083H地址上的数字有什么变化。
⑧验证相加的结果是否正确。
3、使用伪指令
如果这个时候,要求改变了,将自己的学号放在0090H-0093H的地址上,将同桌的学号放在0095H-0098H的地址上,然后将相加的结果,放在0090H-0093H地址上。
如果在2的实验历程上进行修改,会很繁琐,我们在编程的时候如果采用伪指令,那么就会使得,编程后期修改起来变得很方便。
而我们经常用的伪指令就是EQU赋值伪指令。
EQU赋值伪指令一般用在程序开头部分,例如:
D1EQU$0070——这就代表在以下的程序中,所有出现$0070的地方都可以用D1代替,我们将2中的实验历程,改成具有伪指令形式。
结果如下:
D1EQU$0070
D2EQU$0080
STAD1
STAD1+1
STAD1+2
STAD1+3
STAD2
STAD2+1
STAD2+2
STAD2+3
ADCD1+3
LDAD2+2
ADCD1+2
LDAD2+1
ADCD1+1
LDAD2
ADCD1
因此,如果是要修改存放学号的地址,只需要改变开头两行的赋值伪指令为,
D1EQU$0090
D2EQU$0095
即可完成任务,这样使得修改更加快捷、方便。
4、调试程序
将一下内容键入创建好的.asm文件中,并尝试调试通过,如果调试遇到错误,请对比前面没有出错的实验历程,修改以下内容:
D2EQU$0095
LDA,#$15
LDA#$57
LDA,#$05
LDA,#$65
LDA,#$16
LDA,#$55
LDA,#$01
DAA
ORG$FFFE;
完成以下四项小内容,你就完成了实验二的操作,也就学会了Codewarrior软件调试的基本方法。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AW60 实验 指导书 版本 v103