实验报告芯片初始化实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

广东技术师范学院实验报告

学院:自动化学院专业:班级:成绩:

姓名:学号:

别:

组员:

实验地点:教学楼603 实验日期:2013.5.22 指导教师签名:

实验二芯片初始化

一、实验目的

1.熟悉codewarrior开发环境,了解其基本操作。

2.掌握建立工程的方法,能够添加、编辑调试工程文件。

3.学会查看芯片数据手册,编写芯片初始化程序。

4.学会在程序中设置断点,观察系统内存和变量。

二、实验内容

本次实验新建一个简单的工程文件,学会芯片的各种初始化,包括锁相环,定时器,串口等。并下载已经编译好的文件到嵌入式控制器中运行。学会在程序中设置断点,观察系统内存和变量,为调试应用程序打下基础。

三、预备知识

C语言的基础知识、程序调试的基础知识和方法。

四、实验设备及工具(包括软件调试工具)

硬件:飞思卡尔嵌入式开发平台、BDM下载仿真器、Pentium100以上PC

机、串口线。

软件:PC机操作系统Windows 98、Windows 2000或Windows XP,codewarrior 集成开发环境

五、实验步骤

1.建立工程,编写测试代码。

根据实验一,建立工程MCUInit。在主文件main.c添加以下指示灯测试代码:

#include /* common defines and macros */

#include "derivative.h" /* derivative-specific definitions */

void main(void) {

/* put your own code here */

uint i,j;

DDRE = 0XFF; //设置PE口为输出

DDRB = 0XFF; //设置PB口为输出

PORTB = 0XFF; //设置初始值

PORTE = 0XFF;

EnableInterrupts; //开启总中断

for(;;) {

for(i=0; i<1000; i++){

for(j=0; j<1000; j++);

}

PORTE = ~PORTE;

// _FEED_COP(); /* feeds the dog */

} /* loop forever */

/* please make sure that you never leave main */

}

调试运行,查看运行效果。

2.初始化锁相环,设置总线频率。

(1)在新工程里面通过File->new text file或点击新建一个文件,保存到工程目录地下的Sources文件夹中,命名为MCUInit.c并将之添加进工程。参考MC9S12XS128芯片技术手册,编写一个锁相环初始化函数XS128_INIT_setbusclk(),将总线时钟频率由外部晶振提供的16MHz设置为32MHz。具体使用到的寄存器有:CLKSEL、REFDV、SYNR、PLLCTL、CRGFLG、POSTDIV等。参考代码如下:

(2)再新建一个文件MCUInit.h,同样保存到工程目录地下的Sources文件夹中,该文件为初始化MCUInit.c的说明头文件。添加进工程并在main.c的开头包含该头文件。在头文件中声明XS128_INIT_setbusclk函数。

(3)在主函数中调用XS128_INIT_setbusclk函数,编译后运行,查看运行效果。对照步骤1中没有设置锁相环LED灯闪烁的频率,理解设置总线时钟频率的意义。修改XS128_INIT_setbusclk函数将总线时钟频率设置成其他值,编译运行并观看效果。

3.初始化PIT定时模块。

(1)在MCUInit.c中编写一个函数PITInit()初始化PIT定时器,查阅MC9S12XS128芯片技术手册,设置一个50ms的定时中断。可能使用到的寄存器有:PITCFLMT、PITCE、PITMUX、PITMTLD0、PITLD0、PITCFLMT、PITTF、PITINTE。参考代码如下:

(2)在说明头文件MCUInit.h中声明该函数。并在主函数调用该定时中断初始化函数。

(3)对于中断函数,我们将使用重新定义的中断矢量表来处理。将中断处理文件isr.c拷贝到我们的Sources文件夹中并添加到工程中。

(4)打开isr.c。在语句“#pragma CODE_SEG __NEAR_SEG NON_BANKED”和“#pragma CODE_SEG DEFAULT”之间为中断处理函数区。在该区中编写一

个定时器中断处理函数(注意在函数名前面加关键字__interrupt),并在后面的中断矢量表中修改对应的入口函数名。

(5)编译调试运行,观看运行结果。

六、实验任务与问题

1、根据实验步骤完成锁相环和PIT定时器的初始化实验。

2、查阅MC9S12XS128芯片技术手册,自行编写串口、PWM输出、AD转化等初始化函数。

3、完成实验报告。

七、实验总结

通过这次实验,我学习了如何进行芯片初始化,明白了一个系统要在新的芯片运行所要进行的前期工作。

相关文档
最新文档