版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西安邮电大学〔计算机学院〕课程设计试验报告专业名称: 计算机科学与技术班 级: 计科1405学 号: XXXXXXX姓 名: XXX指引教师: XXX试验日期:12111222第一周:开发板硬件装配PACKPACKLCP2132NXP〔飞利浦创立〕ARM7TDMI-S32RISC和应用编程〔IAP〕,16KBRAM,UART,一种带全调制解调器接口。两个I2CSPI32I/OCPU60MHzPLL。板子总体分了电源电路,晶振电路,复位电路,LED串口电路,JTAG调试电路等几某些,如以以下图所示1EasyARM2132开发板完整电路图如以以下图所示1.电源电路:LPC2132DCPOWER11.电源电路:LPC2132DCPOWER15VUSB1N5819如右图所示。电路另一边有一种红色发光二极管,当电源接通后,二极管会点亮。复位电路CMOS2K位串行EEPOM400KHzI2CCAT10251Vcc2:RESETVccRESET〔WP〕。WPnRSTLPC2132RST1CAT1025LPC2132系统时钟电路LPC2132范畴:1~30MHz,Y1-11.0592MHz,PLL调整系统时钟,通过片内PLL60MHzCPUY2-32.768KHZJTAGJTAGJTAGLPC2132按键及显示电路LPC213244LED4LEDDP3V31470RJP1JP12连通时候,LED1一侧与芯片P0.17口就会连通,P0.17口输出P0.17,LED1KEY1KEY2、KEY3一边接地,另一边接了4K7电阻然后与正极相连,还接了JP2跳线组,假设JP212P0.16KEY1时候,P0.16P0.16由于按键检测电路可以编写为检测与否有低电平来推断按键与否按下。UARTUSB用。JP6P0.0CH340GRXDCH340GX1X0接入了X1-12MHz晶振。①焊接最小系统对最小系统进展测试。假设点亮,使用万用表测量U13.29V~3.31V,原3.30V,表白电源电路模块正常。然后用示波器观测晶振引脚波形,查看晶振与否正常。②焊接外接电路板。然后将正负极分别与排针焊接在一起;将蜂鸣器正负极分别于排针焊接;将按键两边与排针焊接在一起。LEDDP3.3VGNDLEDDP3.3VGND开关电路完好。③LED焊接LED电路,将LED1-LED7焊接在开发板上面,然后焊接R4-R7四个测试方法:JP11357LED1-LED4万用表检测与否有短路。④焊接开关34K7R1、R2、R3JP2测试方法:给开发板供电,用万用表检测 KEY1-KEY3电压,正常范畴应当是3.28V-3.31V,当KEY1键按下时候,JP21电压应当为0V;当KEY2键按当KEY3键按下时候,JP24电压应当为0V。⑤焊接串口模块CH340G接在一起,必要格外留神操作。测试方法:给开发板供电,然后USB口输入,如以以下图:⑥JTAG检测方法:JTAGH-JTAGServer,点击搜寻可以检测到芯片。如以以下图:在H-Flasher“FlashSelectionLPC2132,检测到器件类型显示于本窗口。1LEDLEDLED3LED32、硬件调试体会焊接过程中需要足够急躁,不能看到别同窗进度比自己快就急躁,提高自己焊接力气,把握焊接技巧,焊接出最正确,最完善电路板。其次周:软件编程与调试一、调试环境搭建①ADS1.2IDE②File->New,asmforlpc2132板建立一种工程〔ZQL_LIB1〕,指定工程途径〔图例中工程途径为D:\ARM_Lib_Bak\ARM_asm〕。③点击确认<按钮>,创立工程。④ZQL_LIB1main.S,翻开该文献。⑤Edit->Perferences,设立字体和字号。⑥main.S“addtheusercodehere.行下建立顾客汇编程序代码。⑦Erros&Warnings0,此时即可对工程进展仿真。二、调试方法①单步运营;在AXD调试器主窗口,选取Execute->Step〔或快捷键<F10>〕,解决器执行一行代码;②设立断点;在AXD调试器“代码调试窗口”双击目的代码行,假设消灭红色实心圆点,则表达断点设立成功;然后选取Execute->Go全速运营,解决器执行程序停顿在断点行;③运营到光标行;在AXDAXDExecute->RuntoCursorARM存放器和存储单元数值变化,具体操作方法在反面试验中会作具体简介。二、完毕试验内容本人重要负责内容:GPIOGPIO1、GPIO试验目LPC2132工程模板使用。EasyJTAG仿真器安装和使用。③可以在EasyARM教学试验开发平台上运营第一种程序。LPCARM7GPIO把握。试验原理LPC2132系列ARM7微把握器全部GPIO口,均为双向I/O口。引脚可以依照需要配备为I/O口或其他功能,和GPIO有关存放器一共有6个见下表:通过编程把握BEEP〔P0.7〕输出低电平,从而实现蜂鸣器持续发声。试验过程①启动ADS1.2IDEARMExecutableImageforlpc2132工程模板BeepCon_C。usermain.c。DebugInRam生成目的,然后编译链接工程。EasyARMP0.7Beep跳线短接Project->DebugAXDJTAG仿真调试。⑥全速运营程序,程序将会在main.c主函数中停顿〔由于main函数起始处默认设立有断点〕。⑦单击ContextVariable图标按钮〔或者选取ProcessorViews->Variables〕翻开变量观测窗口,通过此窗口可以观测局部变量和全局变量。选取SystemViews->DebuggerInternalsLPCARM7微把握器片内外存放器窗口。⑧可以单步运营程序,可以设立/取消断点;或者全速运营程序,停顿程序运营,观测变量值,推断蜂鸣器把握与否对的。问题分析与解决方法GPIOIO0DIRP0.7无法输出低电平信号,故而蜂鸣器没有发声,添加这行代码后,成功实现功能。2、定期器与中断把握试验目①生疏LPCARM70试验原理01秒定期,把握蜂鸣器蜂鸣。承受中断方式实现定期把握。备注:EasyARM2132试验板上系统时钟默以为11.0592MHz;系统中已定义了符号常量Fpclk=11059200试验过程①启动ADS1.2ARMExecutableImageforlpc2132TimeOut_C。user组中main.c中编写主程序代码。DebugInExram生成目的,然后编译连接工程。④选取【Project】->【Debug】,启动AXD进展JTAG仿真调试。LPC2132P0.7⑥全速运营程序,蜂鸣器会响一秒,停一秒,然后再响一秒……依次循环。代码如下:#include“config.h“#include“config.h“#defineBEEP 1<<7/*P0.7BEEP*//*******************************************************************************************函数名称:IRQ_Timer0**函数功能:定期器0中断效劳程序,取反LED2把握口。**入口参数:无**出口参数:无*******************************************************************************************/void irqIRQ_Timer0(void){if((IO0SET&BEEP)==0)IO0SET=BEEP; /*BEEP*/elseIO0CLR=BEEP;T0IR=0x01; /*去除中断标志*/VICVectAddr=0x00;
/*VIC中断解决完毕*/}/********************************************************************************************函数名称:main**函数功能:使用定期器实现1LED9闪耀。中断方式。**调试说明:需要将跳线JP11BEEP。******************************************************************************************/intmain(void){{PINSEL1=0x00000000;/*GPIO*/IO0DIR =BEEP;/*设立BEEP把握口输出*/IRQEnable;/*IRQ中断使能*//*0初始化*/T0TC=0;/*0*/T0PR=0;/*时钟不分频*/T0MCR =0x03;/*T0MR0匹配后复位T0TC,并产生中断标志*/T0MR0 =Fpclk;/*1Fpclk11059200*/T0TCR =0x01;/*启动定期器*//*0IRQ*/VICIntSelect=0x00;/*IRQ中断*/VICVectCntl0=0x20|0x04;/*设立定期器0中断通道分派最高优先级*/VICVectAddr0=(uint32)IRQ_Timer0;/*设立中断效劳程序地址*/VICIntEnable=1<<0x04;/*0中断*/while(1);return0;}问题分析与解决方法下板后蜂鸣器不发声,检查后觉察是蜂鸣器一边接了低电平,另一边接了P0.7引脚,输出低电平后,俩边都是低,因此蜂鸣器不发声,重接线后恢复正常。3、外中断把握试验目LPC系列ARM7微把握器向量中断把握器及外中断应用技术。试验原理主程序闪耀LED,EINT/停顿BEEP试验过程①跳线LED1、Key1Beep分别连接到P1.18、P0.16P0.7管脚;使用KEY1外中断;②启动ADS1.2ARMExecutableImageforlpc2132TimeEINT_C。③在usermain.c中编写主程序代码;使用系统宏IRQEnableIRQ中断。④装载并使能外中断;DebugInExram生成目的,然后编译连接工程。⑥选取【Project】->【Debug】,启动AXD进展JTAG仿真调试。⑦全速运营程序,LED⑧每一次按键Key,蜂鸣器就会转换静音或鸣响状态。代码如下:#include“config.h“#include“config.h“#define BEEPCON1<<7 //P0.7Beep,低电平蜂鸣#define LED11<<18//P1.18LED1,低电灯亮/*****************************************************************************名称:DelayNS*功能:长软件延时*入口参数:dly---延时参数,值越大,延时越久*出口参数:无****************************************************************************/void DelayNS(uint32 dly){ uint32 i;for(;dly>0;dly--){for(i=0;i<5000;i++);}}/****************************************************************************名称:IRQ_EINT0BEEPCON把握口。入口参数:无出口参数:无****************************************************************************/void irqIRQ_Eint0(void){if((IO0SET&BEEPCON)==0) //BEEPCON管教输出状态IO0SET=BEEPCON;elseIO0CLR=BEEPCON;while((EXTINT&0x01)!=0)EXTINT=0x01; //去除EINT0中断标志VICVectAddr=0x00; //告知VIC中断解决完毕}/****************************************************************************文件名:main.c功能:主程序闪耀LED1;KEY1仿照外中断方式,每次外中断大事反转Beep鸣响状态。说明:****************************************************************************/intmain(void){intx;PINSEL0=0x00000000;//设立管脚连接GPIOPINSEL10x00000001;//设立管脚P0.16为EINT0IO0DIR=BEEPCON;IO1DIR=LED1;
//设立P0.7为输出//设立P1.18为输出EXTMODE = 0x00;IRQEnable;VICDefVectAddr=(int)IRQ_Eint0; //设立EINT0为非向量IRQ中断EXTINT=0x01; //去除EINT0中断标志VICIntEnable=1<<0x0e; //使能EINT0中断while(1){//EINT0中断if(x!=0){IO1SET=LED1;x=0;}else{IO1CLR=LED1;x=1;}DelayNS(100);}}return(0);}问题分析与解决方法LED闪耀正常,但是按键后蜂鸣器没有任何反映,通过一步步排查,最终觉察,引脚定义到了KEY3,但是按键却按下了KEY1,更改引脚定义后,问题解决。4、UART试验目通过试验,把握UART1试验原理0HelloEasyARM2132!”,然后返回上位机显示。试验过程①启动ADS1.2,使用ARMExecutableImageforlpc2132工程模板建立一种工程DataRet_C。②在user组中main.c中编写主程序代码,在工程中config.h文献中参与#include<stdio.h>。DebugInRam生成目的,然后编译连接工程。EasyARM2132JP6TxD0RxD0UART0通信试验。LPC2132CZ2(UART0)PCCOM1连接。PCEasyARMCOM1115200->【发送数据】,在弹动身送数据窗口中点击“高档”即可翻开承受窗口。⑥选取【Project】->【DebugAXDJTAG仿真调试。PCEasyARM软件发送如“HelloEasyARM2132!”字样字符串,EasyARM2132开发板承受到数据后,并将承受到数据回发给PC机。代码如下:#include“config.h”#defineUART_BPS 115200 //串口通信波特率/****************************************************************************名 功 能:长软件延时出口参数:无
延时参数,值越大,延时越久****************************************************************************/void DelayNS(uint32 dly){uint32 i;for(;dly>0;dly--)for(i=0;i<5000;i++);}/***********************************************************************************函数名称:UART0_Init**函数功能:串口初始化,设立为8位数据位,1115200*********************************************************************************/voidUART0_Init(void){uint16Fdiv;U0LCR0x83; //DLAB1,容许设立波特率FdivFpclk/16/UART_BPS; 设立波特率U0DLMFdiv/256;U0DLL=Fdiv%256;U0LCR=0x03;}/***********************************************************************************函数名称:UART0_GetByte**函数功能:从串口承受1字节数据,使用查询方式承受**入口参数:无**出口参数:承受到数据**********************************************************************/uint8UART0_GetByte(void){uint8rcv_dat;while((U0LSR0x01)0); 等待承受标志置位rcv_datU0RBR;return(rcv_dat);}/***********************************************************************************函数名称:UART0_GetStr**函数功能:从串口承受**入口参数:s 指向承受数据数组指针n 承受个数**出口参数:无**********************************************************************/voidUART0_GetStr(uint8*s,uint32n){for(;n>0;n--)*s++=UART0_GetByte;}/***********************************************************************************函数名称:UART0_SendByte**函数功能:向串口发送字节数据
要发送数据**********************************************************************/voidUART0_SendByte(uint8dat){U0THRdat; //写入数据while((U0LSR&0x400); //等待数据发送完毕}/***********************************************************************************函数名称:UART0_SendStr**函数功能:向串口发送一字符串
要发送字符串指针**********************************************************************/voidUART0_SendStr(uint8const*str){while(1){if(*str==‘\0’)break; //遇到完毕符,退出UART0_SendByte(*str++); //发送数据}}/****************************************************************************名称:mainUART0HelloEasyARM2132!”,并发送回上位机显示PCEasyARM.exe。****************************************************************************/intmain(void){uint8snd[32];PINSEL0=0x00000005;UART0_Init;
//设立I/OUART0//串口初始化UART0_GetStr(snd,18); DelayNS(10);UART0_SendStr(snd); DelayNS(10);while(1);while(1);return(0);}问题分析与解决方法代码运营后,PCUSB接口接触不良,接USB解决。5.综合试验:交通灯我负责是蜂鸣器函数,中断效劳程序,GPIO初始化函数,键盘扫描模块。最终效果图如下:蜂鸣器函数模块:定义一种BEEP引脚P0.8P0.8uint32BEEP=1; P0.把握蜂鸣器,低电平有效voidsay{ 蜂鸣器函数IO0CLR=BEEP;DelayNS(10);IO0SET=}中断效劳程序模块:1displaydisplay数,display传入参数就是数码管要显示数字,然后每秒调用一次display函数,实现倒计时。voidTimeInit//中断效劳程序初始化函数{IRQEnable IR中断使能定期器0T0TC=T0PR=时钟不分频T0MCR=0x0;设立T0MR0T0TC,并产生中断标志T0MR0=Fpck1秒钟定期T0TCR=0x0;启动定期器设立定期器0IRQVICIntSelect=0x0 IRQ中断VICVectCntl0=0x200x4 0中断
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年中国虚拟现实VR行业营销创新战略制定与实施研究报告
- 2025-2030年中国指纹识别芯片行业资本规划与股权融资战略制定与实施研究报告
- 2025-2030年中国玩具行业资本规划与股权融资战略制定与实施研究报告
- 2025-2030年中国酒店行业开拓第二增长曲线战略制定与实施研究报告
- 2024年汽车智能座舱投融资研究白皮书
- 织物强力标准
- 关于“卧室装饰灯”的调研问卷
- 福建省2024届高三下学期6月模拟英语试题
- 收购某供水特许经营项目SPV公司股权项目可行性研究报告
- 甲流防控知识培训课件
- 心肺复苏术课件2024新版
- 2023-2024公需科目(数字经济与驱动发展)考试题库及答案
- 重症患者的容量管理课件
- 侵袭性肺部真菌感染的诊断标准以及治疗基本原则
- 与齿轮相关的英语词汇总结
- 单层钢结构工业厂房纵向定位轴线的定位
- 粉体工程第六章粉碎过程及设备
- 洪水计算(推理公式法)
- ap系列火焰光度计说明书
- GMW系列往复式给料机说明书
- 集装箱码头堆场项目可行性研究报告写作范文
评论
0/150
提交评论