AW60实验指导书版本v103Word文档下载推荐.docx

上传人:b****6 文档编号:19702893 上传时间:2023-01-09 格式:DOCX 页数:28 大小:2.88MB
下载 相关 举报
AW60实验指导书版本v103Word文档下载推荐.docx_第1页
第1页 / 共28页
AW60实验指导书版本v103Word文档下载推荐.docx_第2页
第2页 / 共28页
AW60实验指导书版本v103Word文档下载推荐.docx_第3页
第3页 / 共28页
AW60实验指导书版本v103Word文档下载推荐.docx_第4页
第4页 / 共28页
AW60实验指导书版本v103Word文档下载推荐.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

AW60实验指导书版本v103Word文档下载推荐.docx

《AW60实验指导书版本v103Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《AW60实验指导书版本v103Word文档下载推荐.docx(28页珍藏版)》请在冰豆网上搜索。

AW60实验指导书版本v103Word文档下载推荐.docx

实验步骤:

(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软件调试的基本方法。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1