您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 飞思卡尔单片机应用实验指导书
飞思卡尔单片机应用实验指导书机械工程学院机械电子工程教研室实验一飞思卡尔嵌入式实验系统入门—GPIO控制实验一、实验目的:熟悉CodeWarrior集成开发环境及飞思卡尔嵌入式实验开发系统掌握AW60的GPIO结构及控制方法掌握CodeWarrior工程结构及创建汇编工程熟悉汇编指令及应用汇编语言编程方法二、实验内容1.运用CodeWarrior新建工程,进行工程程序编辑、编译、下载、调试2.利用飞思卡尔嵌入式实验开发系统根据实验需要进行硬件连接3.根据连接在PTD口上的两个拨动开关的状态,控制接中PTB口上的八个LED处在以下四种不同状态:八个LED亮—灭循环;四个灯交替亮—灭;一个LED左移流水灯;两个LED右移流水灯。实验接线原理图图1-1I/O口实验接线图三、实验步骤1.将飞思卡尔嵌入式实验开发系统实验箱接上电源,写入器BDM接头插接入核心卡BDM座,USB头接入PC机USB口。2.PC机上启动CodeWarrior,新建工程LED.mcp(注意设置工程保存路径)3.观察工程文件结构,查看相应文件。4.在main.asm中编辑工程主文件5.编辑相关子程序6.编译,如果有错误修改,直至编译通过7.链接、下载,调试观察LED灯现象四、思考题1.CodeWarrior建立工程有什么工程框架文件,这些文件的作用?2.嵌入式开发系统有哪些主要元器件?3.如果采用模块化设计方法,将系统初始化、LED灯控制、延时程序等各自形成文件,工程应用这些文件时应注意什么?GNDVcc拨码开关导线接插点PTB0PTB1PTB2PTB3PTB4PTB5PTB6PTB7PTB口Vcc导线接插点PTD0PTD1PTD2PTD3PTD4PTD5PTD6PTD7PTD口4.上拉电阻和下拉电阻分内置的和外接的,内置的电阻一般只有几K或十几K,外接电阻可以是几M、十几M甚至更大。当要求功耗较低时,应该怎样选择内置的还是外接的电阻?5.该实验的开关通过I/O口控制小灯的程序,分别叙述断点调试和单步调试的步骤,其中包含:利用汇编语言时,注意观察寄存器值的变化并记录寄存器中每次的值实验二串口通信(SCI)实验一、实验目的:1.进一步熟悉嵌入式开发系统环境、汇编、C语言、调试方式。2.加强串口通信(SCI)基本原理及编程原理的理解。3.理解C语言工程结构,掌握运用08C建立工程的方法。4.分别运用查询方式、中断方式实现通信。二、实验要求:1.仔细阅读本实验指导书。2.复习有关的串行通信(SCI)的章节3.熟悉AW60串行通信(SCI)的工作方法及编程。4.根据实验内容要求编写好程序,为实验做充分地准备。实验原理图如下:三.实验设备及其连接1.PC机一台2.飞思卡尔嵌入式实验开发系统一台3.串行通信线一根4.万用表一只四.实验内容1.理解串行通信(SCI)原理。2.运行与理解各子程序。3.主程序运行课本的样例程序。4.编制一个查询方式通信程序。将字符通过SCI一个一个地发送,发送完一个字符后,控制接在PTB0~PTB7的8个LED灯显示412356789232电平OUTINMAX232CPE16151413121110912345678+5VGND+5VTTL电平OUTINTTL电平转为232电平1μ×4412356789PC412356789412356789RxDTxD被发送字符的ASCII码。5.编制一个中断方式通信程序。编程要求同上一条。五.编程提示1.按照结构要求写好编程代码和注释。2.计算波特率,SCInInit(SCI初始化子程序)设置SCI比特率寄存器(SCInBDH,SCInBDL),设置允许SCI、正常码输出、8位数据、无校验,即设置SCI控制寄存器1(SCIxC1)相应位,设置是否允许发送与接收、是中断接收还是查询接收,即设置SCI控制寄存器2(SCIxC2)相应位。3.查询方式通信程序的主程序主体是一个死循环,循环体中是不断检测SCI是否发送完毕,即检测SCI状态寄存器1(SCIxS1)第七位是否为1,为1则将字符的ASCII码输出到接在PTB口的LED上,并延时一会。4.中断方式通信程序的主程序也主体是一个死循环,但该循环体是一个空循环体,所有接收和发送数据程序代码放在中断程序中,这里没有检测代码,数据开始发送和接收的条件就是中断的条件。六.实验报告要求1.小结AW60串行通信(SCI)的原理及编程,并画出其流程图和程序代码与硬件接线图。2.小结中断方式和查询方式的编程方法,并画出其流程图和程序代码与硬件接线图。3.回答下列问题(1)串行SCI通信有哪些中断?各在什么情况下发生,作用是什么?(2)如何知道串行口TX发送了信号?提示:方法一,利用万用表在TX端发送0或者255持续0.5秒钟时的电压值。方法二,在TX端发送0或255持续0.5秒钟的波形时的小灯变化。七.参考例程:voidmain(void){unsignedcharSerialBuff[]=Hello!World!;//初始化存放接收数据的数组//1关总中断DisableInterrupts;//禁止总中断//2芯片初始化MCUInit();//3模块初始化SCIInit();//串行口初始化//4开放中断EnableInterrupts;//开放总中断SCISendN(13,SerialBuff);//串口发送“HelloWorld!”//5主循环while(1){if((SCI1S1&SCI1S1_RDRF_MASK)!=0){PTBD=SCI1D;if((SCI1S1&SCI1S1_TDRE_MASK)!=0)SCI1D=PTBD;}elsePTBD=0x00;}}voidMCUInit(void){SOPT=0b01100000;//$70SystemOptionsRegister(writeonce)ICGC2=0b00110000;//$30internalclockgeneration2ICGC1=0b01111000;//$78internalclockgeneration1//等待FLL稳定while(!ICGS1_LOCK);PTBDD=0xff;PTBD=0xff;}voidSCIInit(){unsignedintubgs,baud=9600;unsignedcharsysclk=20;//1.计算波特率并设置:ubgs=fsys/(波特率*16)(其中fsys=sysclk*1000000)ubgs=sysclk*(10000/(baud/100))/16;//理解参考上一行,此处便于CPU运算SCI1BDH=(unsignedchar)((ubgs&0xFF00)8);SCI1BDL=(unsignedchar)(ubgs&0x00FF);//无校验,正常模式(开始信号+8位数据(先发最低位)+停止信号)SCI1C1=0;//允许发送,允许接收,查询方式收发SCI1C2=(0|SCI1C2_TE_MASK|SCI1C2_RE_MASK);}voidSCISend1(unsignedcharch){while(!(SCI1S1&SCI1S1_TDRE_MASK));//判断发送缓冲区是否为空SCI1D=ch;}voidSCISendN(unsignedcharn,unsignedcharch[]){unsignedi;for(i=0;in;i++)SCISend1(ch[i]);}unsignedcharSCIRe1(unsignedchar*p){unsignedintk;unsignedchari;for(k=0;k0x0b;k++)//有时间限制if((SCI1S1&SCI1S1_RDRF_MASK)!=0)//判断接收缓冲区是否满{i=SCI1D;*p=0x00;break;}if(k=0x0b)//接收失败{i=0xff;*p=0x01;}returni;}unsignedcharSCIReN(unsignedn,unsignedcharch[]){unsignedcharm;unsignedcharfp;//接收标志m=0;while(mn){ch[m]=SCIRe1(&fp);if(fp==1){return1;//接收失败}m++;}return0;//接收成功}实验三键盘中断及LED数码块实验一、实验目的:1.熟练运用嵌入式开发系统环境、C语言及调试方式。2.复习串行通信接口(SCI)的内容。3.加强键盘中断基本原理及编程原理的理解。4.理解“行扫描”法的原理并能进行键值识别和键值编码。5.理解键盘接线原理图(如图3-1)。6.理解LED数码块的显示原理,初步掌握LED数码块显示编程方法。实验箱提供一个16键键盘,用于键盘中断信号的输入。系统提供两种接线方式:①当将键盘接入上一排插孔时为固定接线,键盘接线原理图如图3-1所示。②当将键盘接入下一排插孔时为手动接线,连线的位置在键盘的左边。实验箱提供四个LED数码块,PB0~PB7为段码接口,PTD0、PTD1、PTD4、PTD5为位码控制接口。列线n1n2n3n4MCU内部上拉电阻12345678行线m1m2m3m4+5VPTG1PTG0PTG2PTG3PTG4PTD2PTD3PTD7agdfecbhagdfecbhagdfecbhagdfecbhabfCS0CS1CS2cdeghCS3123456789101112PTD3PTB6PTB2PTB7PTB3PTB41K1K1K1KPTB1PTD2PTD1PTB5PTB0PTD0键盘及LED数码块原理图二、实验要求:1.仔细阅读本实验指导书。2.复习有关的键盘中断和串行通信接口(SCI)的章节。3.熟悉AW60键盘模块的工作方法及编程。4.根据实验内容要求编写好程序,为实验做充分地准备。三.实验设备及其连接1.PC机一台2.飞思卡尔嵌入式实验开发系统一台3.串行通信线一根四.实验内容1.理解并运行按键扫描及键值键码发送样例程序(将按键的键值及键码从串行口发送到PC机端的串口工具软件);2.编制一个中断方式的16键键盘程序,使用“行扫描”法识别按键;采用键盘中断方式。PTD7,3,2及PTG4接键盘4根列线,PTG3-0接键盘4根行线。要求按下的一个键的键值和键面定义值(键的ASCII码值)通过串口在PC方软件界面显示,同时用小灯显示按键的键面定义值(键的ASCII码值),PTB7-PTB0口与小灯相连;3.理解并运行LED数码块样例程序(在LED数码块上显示“2011”);4.参考按键及LED数码块样例程序,设计一个按键显示程序。将按键的键码在LED数码块上显示。7段LED显示字型码显示字符hgfedcba字型码共阴极共阳极001111113FC01000011006F9210110115BA4310011114FB0411001106699511011016D92611111017D827000011107F8811111117F80911011116F90A11101117788B11111007C83C011100139C6D10111105EA1E11110017986F1110001718E五.编程提示1.利用构件式方法编程,可以使程序结构清晰,可移植性好;2.矩阵式键盘采用扫描法来确定哪一个键被按下,键盘的接口硬件确定后,每个键的键值就确定了,但每个键的键码可以根据需要定义;3.PTD7,3,2及PTG4-PTG0与键盘中断输入引脚复用,设置键盘中断允许寄存器,当键盘有键被按下时,立即产生中断,中断程序处理按键事件,比如确定哪个键被按下,然后转换为该键的定义值。4.键盘的键面标示码(键码)键盘扫描的键值对应关系通过列表对应起来,即键盘定义表对应表示。当通过“行扫描”法获得某个键的键值时,通过查表法就可以得到它的定义值。六.实验报告要求1.按实验报告格式认真完成实验报告,要求画出工程的总体流程图;2.本实验中用的是键盘中断编程方式,也可以使用查询编程方式,请尽量少修改代码改用查询编程方式重新编写相应的
本文标题:飞思卡尔单片机应用实验指导书
链接地址:https://www.777doc.com/doc-3378111 .html